diff options
author | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-10-05 10:12:53 +0000 |
---|---|---|
committer | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2012-10-05 10:12:53 +0000 |
commit | 5c105d9f3fd086aff195d3849dcf847d6b0bd927 (patch) | |
tree | 1229a11f725bfa58aa7c57a76898553bb5f6654a /target/linux/generic/files/include/linux/gpio_dev.h | |
download | openwrt-5c105d9f3fd086aff195d3849dcf847d6b0bd927.tar.gz openwrt-5c105d9f3fd086aff195d3849dcf847d6b0bd927.zip |
branch Attitude Adjustment
git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@33625 3c298f89-4303-0410-b956-a3cf2f4a3e73
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 000000000..a2a4b51c7 --- /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 |