mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	iio: iio_generic_buffer: Add --trigger-num option
Signed-off-by: Crestez Dan Leonard <leonard.crestez@intel.com> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
		
							parent
							
								
									de397db8ab
								
							
						
					
					
						commit
						7c7e9dad70
					
				
					 1 changed files with 29 additions and 5 deletions
				
			
		| 
						 | 
					@ -254,7 +254,9 @@ void print_usage(void)
 | 
				
			||||||
		"  --device-name -n <name>\n"
 | 
							"  --device-name -n <name>\n"
 | 
				
			||||||
		"  --device-num -N <num>\n"
 | 
							"  --device-num -N <num>\n"
 | 
				
			||||||
		"        Set device by name or number (mandatory)\n"
 | 
							"        Set device by name or number (mandatory)\n"
 | 
				
			||||||
		"  -t <name>  Set trigger name\n"
 | 
							"  --trigger-name -t <name>\n"
 | 
				
			||||||
 | 
							"  --trigger-num -T <num>\n"
 | 
				
			||||||
 | 
							"        Set trigger by name or number\n"
 | 
				
			||||||
		"  -w <n>     Set delay between reads in us (event-less mode)\n");
 | 
							"  -w <n>     Set delay between reads in us (event-less mode)\n");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -320,6 +322,8 @@ void register_cleanup(void)
 | 
				
			||||||
static const struct option longopts[] = {
 | 
					static const struct option longopts[] = {
 | 
				
			||||||
	{ "device-name",	1, 0, 'n' },
 | 
						{ "device-name",	1, 0, 'n' },
 | 
				
			||||||
	{ "device-num",		1, 0, 'N' },
 | 
						{ "device-num",		1, 0, 'N' },
 | 
				
			||||||
 | 
						{ "trigger-name",	1, 0, 't' },
 | 
				
			||||||
 | 
						{ "trigger-num",	1, 0, 'T' },
 | 
				
			||||||
	{ },
 | 
						{ },
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -348,7 +352,7 @@ int main(int argc, char **argv)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	register_cleanup();
 | 
						register_cleanup();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	while ((c = getopt_long(argc, argv, "ac:egl:n:N:t:w:", longopts, NULL)) != -1) {
 | 
						while ((c = getopt_long(argc, argv, "ac:egl:n:N:t:T:w:", longopts, NULL)) != -1) {
 | 
				
			||||||
		switch (c) {
 | 
							switch (c) {
 | 
				
			||||||
		case 'a':
 | 
							case 'a':
 | 
				
			||||||
			autochannels = AUTOCHANNELS_ENABLED;
 | 
								autochannels = AUTOCHANNELS_ENABLED;
 | 
				
			||||||
| 
						 | 
					@ -391,6 +395,12 @@ int main(int argc, char **argv)
 | 
				
			||||||
		case 't':
 | 
							case 't':
 | 
				
			||||||
			trigger_name = strdup(optarg);
 | 
								trigger_name = strdup(optarg);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
 | 
							case 'T':
 | 
				
			||||||
 | 
								errno = 0;
 | 
				
			||||||
 | 
								trig_num = strtoul(optarg, &dummy, 10);
 | 
				
			||||||
 | 
								if (errno)
 | 
				
			||||||
 | 
									return -errno;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
		case 'w':
 | 
							case 'w':
 | 
				
			||||||
			errno = 0;
 | 
								errno = 0;
 | 
				
			||||||
			timedelay = strtoul(optarg, &dummy, 10);
 | 
								timedelay = strtoul(optarg, &dummy, 10);
 | 
				
			||||||
| 
						 | 
					@ -444,7 +454,23 @@ int main(int argc, char **argv)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!notrigger) {
 | 
						if (notrigger) {
 | 
				
			||||||
 | 
							printf("trigger-less mode selected\n");
 | 
				
			||||||
 | 
						} if (trig_num > 0) {
 | 
				
			||||||
 | 
							char *trig_dev_name;
 | 
				
			||||||
 | 
							ret = asprintf(&trig_dev_name, "%strigger%d", iio_dir, trig_num);
 | 
				
			||||||
 | 
							if (ret < 0) {
 | 
				
			||||||
 | 
								return -ENOMEM;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							trigger_name = malloc(IIO_MAX_NAME_LENGTH);
 | 
				
			||||||
 | 
							ret = read_sysfs_string("name", trig_dev_name, trigger_name);
 | 
				
			||||||
 | 
							free(trig_dev_name);
 | 
				
			||||||
 | 
							if (ret < 0) {
 | 
				
			||||||
 | 
								fprintf(stderr, "Failed to read trigger%d name from\n", trig_num);
 | 
				
			||||||
 | 
								return ret;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							printf("iio trigger number being used is %d\n", trig_num);
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
		if (!trigger_name) {
 | 
							if (!trigger_name) {
 | 
				
			||||||
			/*
 | 
								/*
 | 
				
			||||||
			 * Build the trigger name. If it is device associated
 | 
								 * Build the trigger name. If it is device associated
 | 
				
			||||||
| 
						 | 
					@ -481,8 +507,6 @@ int main(int argc, char **argv)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		printf("iio trigger number being used is %d\n", trig_num);
 | 
							printf("iio trigger number being used is %d\n", trig_num);
 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		printf("trigger-less mode selected\n");
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue