Assume that the -f argument is /dev/gpioc0 if it is not passed.

hrs@ provided this verison of the patch and showed me where all the needed
changes were to be made outside of gpioctl.c

Approved by:	re (hrs)
MFC after:	2 weeks
This commit is contained in:
Sean Bruno 2013-09-17 11:48:47 +00:00
parent 66c2c71f16
commit 22e3858c24
3 changed files with 14 additions and 9 deletions

View File

@ -50,6 +50,7 @@
#define _PATH_CSHELL "/bin/csh"
#define _PATH_CSMAPPER "/usr/share/i18n/csmapper"
#define _PATH_DEFTAPE "/dev/sa0"
#define _PATH_DEVGPIOC "/dev/gpioc"
#define _PATH_DEVNULL "/dev/null"
#define _PATH_DEVZERO "/dev/zero"
#define _PATH_DRUM "/dev/drum"

View File

@ -36,20 +36,20 @@
.Sh SYNOPSIS
.Nm
.Cm -l
.Fl f Ar ctldev
.Op Fl f Ar ctldev
.Op Fl v
.Nm
.Cm -t
.Fl f Ar ctldev
.Op Fl f Ar ctldev
.Ar pin
.Nm
.Cm -c
.Fl f Ar ctldev
.Op Fl f Ar ctldev
.Ar pin
.Ar flag
.Op flag ...
.Nm
.Cm -f Ar ctldev
.Op Cm -f Ar ctldev
.Ar pin
.Ar [0|1]
.Sh DESCRIPTION
@ -83,6 +83,8 @@ Inverted output pin
.El
.It Fl f Ar ctldev
GPIO controller device to use
If not specified, defaults to
.Pa /dev/gpioc0
.It Fl l
list available pins
.It Fl t Ar pin

View File

@ -30,6 +30,7 @@ __FBSDID("$FreeBSD$");
#include <fcntl.h>
#include <getopt.h>
#include <paths.h>
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
@ -63,10 +64,10 @@ static void
usage(void)
{
fprintf(stderr, "Usage:\n");
fprintf(stderr, "\tgpioctl -f ctldev -l [-v]\n");
fprintf(stderr, "\tgpioctl -f ctldev -t pin\n");
fprintf(stderr, "\tgpioctl -f ctldev -c pin flag ...\n");
fprintf(stderr, "\tgpioctl -f ctldev pin [0|1]\n");
fprintf(stderr, "\tgpioctl [-f ctldev] -l [-v]\n");
fprintf(stderr, "\tgpioctl [-f ctldev] -t pin\n");
fprintf(stderr, "\tgpioctl [-f ctldev] -c pin flag ...\n");
fprintf(stderr, "\tgpioctl [-f ctldev] pin [0|1]\n");
exit(1);
}
@ -185,6 +186,7 @@ main(int argc, char **argv)
int i;
struct gpio_pin pin;
struct gpio_req req;
char defctlfile[] = _PATH_DEVGPIOC "0";
char *ctlfile = NULL;
int pinn, pinv, fd, ch;
int flags, flag, ok;
@ -226,7 +228,7 @@ main(int argc, char **argv)
printf("%d/%s\n", i, argv[i]);
if (ctlfile == NULL)
fail("No gpioctl device provided\n");
ctlfile = defctlfile;
fd = open(ctlfile, O_RDONLY);
if (fd < 0) {