diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-06-26 20:42:58 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2010-06-26 20:42:58 +0000 |
commit | da1bb88a2b900f0392b731ec47c5e1bff956fd8f (patch) | |
tree | 597146471e3eeafb4ba55e802e80b896770808ff /target/linux/generic/files/include/linux/gpio_dev.h | |
parent | 6117c04c9416b295347fb45c37e430f01df1d0d9 (diff) | |
download | upstream-da1bb88a2b900f0392b731ec47c5e1bff956fd8f.tar.gz upstream-da1bb88a2b900f0392b731ec47c5e1bff956fd8f.tar.bz2 upstream-da1bb88a2b900f0392b731ec47c5e1bff956fd8f.zip |
rename target/linux/generic-2.6 to generic
SVN-Revision: 21952
Diffstat (limited to 'target/linux/generic/files/include/linux/gpio_dev.h')
-rw-r--r-- | target/linux/generic/files/include/linux/gpio_dev.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/target/linux/generic/files/include/linux/gpio_dev.h b/target/linux/generic/files/include/linux/gpio_dev.h new file mode 100644 index 0000000000..a2a4b51c78 --- /dev/null +++ b/target/linux/generic/files/include/linux/gpio_dev.h @@ -0,0 +1,42 @@ +#ifndef _GPIO_DEV_H__ +#define _GPIO_DEV_H__ + +/********************************************************************* + * + * This Linux kernel header is expanded from the original driver + * (gpio_dev) by John Crispin. It provides an ioctl based interface to + * GPIO pins via the /dev/gpio char device and gpiolib within the kernel. + * The third argument to each ioctl is the GPIO pin number. + * + * This driver has been tested with lk 2.6.31 and works. The original + * driver fails quietly with this version. The protocol is now a bit + * different: the ioctl(fd, GPIO_REQUEST, <pin>) should be called + * after the open("/dev/gpio", O_RDWR) to determine if the <pin> is + * already in use. If the ioctl is successful (i.e. returns 0 for not + * in use) then the <pin> is claimed by this driver and + * ioctl(fd, GPIO_FREE, <pin>) should be called prior to close(fd) . + * + * See <kernel_source>/Documentation/gpio.txt + * Note that kernel designers prefer the use of the sysfs gpio interface. + * This char driver is easier to use from code and faster. + ********************************************************************/ + +/* This header can be included in both the user and kernel spaces */ +/* The _IO macro is defined in sys/ioctl.h */ + +#define IOC_GPIODEV_MAGIC 'B' + +#define GPIO_GET _IO(IOC_GPIODEV_MAGIC, 10) +#define GPIO_SET _IO(IOC_GPIODEV_MAGIC, 11) +#define GPIO_CLEAR _IO(IOC_GPIODEV_MAGIC, 12) +#define GPIO_DIR_IN _IO(IOC_GPIODEV_MAGIC, 13) +#define GPIO_DIR_OUT _IO(IOC_GPIODEV_MAGIC, 14) + /* Sets the direction out and clears the <pin> (low) */ + +#define GPIO_DIR_HIGH _IO(IOC_GPIODEV_MAGIC, 15) + /* Sets the direction out and sets the <pin> (high) */ +#define GPIO_REQUEST _IO(IOC_GPIODEV_MAGIC, 16) +#define GPIO_FREE _IO(IOC_GPIODEV_MAGIC, 17) +#define GPIO_CAN_SLEEP _IO(IOC_GPIODEV_MAGIC, 18) + +#endif |