Lines Matching +full:0 +full:- +full:mon
1 // SPDX-License-Identifier: GPL-2.0-only
3 * gpio-event-mon - monitor GPIO line events from userspace
8 * gpio-event-mon -n <device-name> -o <offset>
26 #include "gpio-utils.h"
38 int i = 0; in monitor_device()
41 if (ret < 0) in monitor_device()
42 return -ENOMEM; in monitor_device()
44 cfd = open(chrdev_name, 0); in monitor_device()
45 if (cfd == -1) { in monitor_device()
46 ret = -errno; in monitor_device()
52 "gpio-event-mon"); in monitor_device()
53 if (ret < 0) in monitor_device()
59 values.mask = 0; in monitor_device()
60 values.bits = 0; in monitor_device()
61 for (i = 0; i < num_lines; i++) in monitor_device()
64 if (ret < 0) { in monitor_device()
72 fprintf(stdout, "Monitoring line %d on %s\n", lines[0], device_name); in monitor_device()
74 gpiotools_test_bit(values.bits, 0)); in monitor_device()
76 fprintf(stdout, "Monitoring lines %d", lines[0]); in monitor_device()
77 for (i = 1; i < num_lines - 1; i++) in monitor_device()
81 gpiotools_test_bit(values.bits, 0)); in monitor_device()
82 for (i = 1; i < num_lines - 1; i++) in monitor_device()
93 if (ret == -1) { in monitor_device()
94 if (errno == -EAGAIN) { in monitor_device()
98 ret = -errno; in monitor_device()
107 ret = -EIO; in monitor_device()
131 if (close(lfd) == -1) in monitor_device()
134 if (close(cfd) == -1) in monitor_device()
143 fprintf(stderr, "Usage: gpio-event-mon [options]...\n" in print_usage()
144 "Listen to events on GPIO lines, 0->1 1->0\n" in print_usage()
145 " -n <name> Listen on GPIOs on a named device (must be stated)\n" in print_usage()
146 " -o <n> Offset of line to monitor (may be repeated)\n" in print_usage()
147 " -d Set line as open drain\n" in print_usage()
148 " -s Set line as open source\n" in print_usage()
149 " -r Listen for rising edges\n" in print_usage()
150 " -f Listen for falling edges\n" in print_usage()
151 " -b <n> Debounce the line with period n microseconds\n" in print_usage()
152 " [-c <n>] Do <n> loops (optional, infinite loop if not stated)\n" in print_usage()
153 " -? This helptext\n" in print_usage()
156 "gpio-event-mon -n gpiochip0 -o 4 -r -f -b 10000\n" in print_usage()
168 unsigned int num_lines = 0; in main()
169 unsigned int loops = 0; in main()
172 unsigned long debounce_period_us = 0; in main()
174 memset(&config, 0, sizeof(config)); in main()
176 while ((c = getopt(argc, argv, "c:n:o:b:dsrf?")) != -1) { in main()
187 return -1; in main()
209 return -1; in main()
216 for (i = 0; i < num_lines; i++) in main()
222 if (!device_name || num_lines == 0) { in main()
224 return -1; in main()