diff options
author | John Crispin <blogic@openwrt.org> | 2012-10-11 11:58:09 +0000 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2012-10-11 11:58:09 +0000 |
commit | 44090b37e4d39ed3f093610ea3b2dc5b649467b9 (patch) | |
tree | f085577e3586c3f135b1a383104e0d4755a98cc5 /target | |
parent | f202215a282b80861055fbc068a8525f079cc8c4 (diff) | |
download | master-187ad058-44090b37e4d39ed3f093610ea3b2dc5b649467b9.tar.gz master-187ad058-44090b37e4d39ed3f093610ea3b2dc5b649467b9.tar.bz2 master-187ad058-44090b37e4d39ed3f093610ea3b2dc5b649467b9.zip |
[kernel] gpiodev/gpioctl RIP
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33725 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target')
-rw-r--r-- | target/linux/at91/9260/profiles/001-flexibity-xwrt.mk | 2 | ||||
-rw-r--r-- | target/linux/at91/9260/profiles/002-flexibity-luci.mk | 2 | ||||
-rw-r--r-- | target/linux/at91/config-default | 1 | ||||
-rw-r--r-- | target/linux/atheros/Makefile | 2 | ||||
-rw-r--r-- | target/linux/atheros/config-3.3 | 1 | ||||
-rw-r--r-- | target/linux/generic/config-3.3 | 1 | ||||
-rw-r--r-- | target/linux/generic/files/drivers/char/gpio_dev.c | 181 | ||||
-rw-r--r-- | target/linux/generic/files/include/linux/gpio_dev.h | 42 | ||||
-rw-r--r-- | target/linux/generic/patches-3.3/835-gpiodev.patch | 27 | ||||
-rw-r--r-- | target/linux/ixp4xx/config-3.3 | 1 | ||||
-rw-r--r-- | target/linux/mpc83xx/config-3.3 | 1 | ||||
-rw-r--r-- | target/linux/omap35xx/config-2.6.32 | 1 | ||||
-rw-r--r-- | target/linux/orion/dns323/config-3.3 | 1 | ||||
-rw-r--r-- | target/linux/s3c24xx/openmoko-gta02/config-2.6.30 | 1 |
14 files changed, 3 insertions, 261 deletions
diff --git a/target/linux/at91/9260/profiles/001-flexibity-xwrt.mk b/target/linux/at91/9260/profiles/001-flexibity-xwrt.mk index b1c5269292..fcd06999fd 100644 --- a/target/linux/at91/9260/profiles/001-flexibity-xwrt.mk +++ b/target/linux/at91/9260/profiles/001-flexibity-xwrt.mk @@ -13,7 +13,7 @@ define Profile/flexibity-xwrt usb-modem-nokia-5800 wpa-cli wpa-supplicant motion badblocks blkid cifsmount disktype dosfsck dosfslabel e2fsprogs \ fuse-utils mkdosfs nfs-utils ntfs-3g ntfs-3g-utils reiserfsprogs resize2fs sysfsutils tune2fs uuidgen certtool \ gnutls-utils picocom setterm unrar unzip sqlite3-cli alsa-utils anyremote bluez-utils bzip2 comgt crypto-tools \ - file flock gdbserver gnupg gpioctl gsm-utils gzip huaweiaktbbo hwclock i2c-tools input-utils ldd lsof mdadm \ + file flock gdbserver gnupg gsm-utils gzip huaweiaktbbo hwclock i2c-tools input-utils ldd lsof mdadm \ module-init-tools mount-utils openssl-util procps psmisc px5g screen strace stress sysstat uboot-envtools \ usb-modeswitch usb-modeswitch-data usbutils lua endef diff --git a/target/linux/at91/9260/profiles/002-flexibity-luci.mk b/target/linux/at91/9260/profiles/002-flexibity-luci.mk index 433239be65..7985990014 100644 --- a/target/linux/at91/9260/profiles/002-flexibity-luci.mk +++ b/target/linux/at91/9260/profiles/002-flexibity-luci.mk @@ -13,7 +13,7 @@ define Profile/flexibity-luci usb-modem-nokia-5800 wpa-cli wpa-supplicant motion badblocks blkid cifsmount disktype dosfsck dosfslabel e2fsprogs \ fuse-utils mkdosfs nfs-utils ntfs-3g ntfs-3g-utils reiserfsprogs resize2fs sysfsutils tune2fs uuidgen certtool \ gnutls-utils picocom setterm unrar unzip sqlite3-cli alsa-utils anyremote bluez-utils bzip2 comgt crypto-tools \ - file flock gdbserver gnupg gpioctl gsm-utils gzip huaweiaktbbo hwclock i2c-tools input-utils ldd lsof mdadm \ + file flock gdbserver gnupg gsm-utils gzip huaweiaktbbo hwclock i2c-tools input-utils ldd lsof mdadm \ module-init-tools mount-utils openssl-util procps psmisc px5g screen strace stress sysstat uboot-envtools \ usb-modeswitch usb-modeswitch-data usbutils lua endef diff --git a/target/linux/at91/config-default b/target/linux/at91/config-default index c30edb4585..97c98989a7 100644 --- a/target/linux/at91/config-default +++ b/target/linux/at91/config-default @@ -73,7 +73,6 @@ CONFIG_GENERIC_GPIO=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GPIOLIB=y -CONFIG_GPIO_DEVICE=y CONFIG_GPIO_SYSFS=y # CONFIG_HAMRADIO is not set CONFIG_HARDIRQS_SW_RESEND=y diff --git a/target/linux/atheros/Makefile b/target/linux/atheros/Makefile index ce2a90dc96..1fe2179854 100644 --- a/target/linux/atheros/Makefile +++ b/target/linux/atheros/Makefile @@ -15,7 +15,7 @@ LINUX_VERSION:=3.3.8 include $(INCLUDE_DIR)/target.mk -DEFAULT_PACKAGES += wpad-mini kmod-ath5k gpioctl swconfig +DEFAULT_PACKAGES += wpad-mini kmod-ath5k swconfig define Target/Description Build firmware images for Atheros SoC boards diff --git a/target/linux/atheros/config-3.3 b/target/linux/atheros/config-3.3 index 524965f5dd..9f68b4e62f 100644 --- a/target/linux/atheros/config-3.3 +++ b/target/linux/atheros/config-3.3 @@ -39,7 +39,6 @@ CONFIG_GENERIC_GPIO=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GPIOLIB=y -CONFIG_GPIO_DEVICE=y CONFIG_GPIO_SYSFS=y # CONFIG_HAMRADIO is not set CONFIG_HARDWARE_WATCHPOINTS=y diff --git a/target/linux/generic/config-3.3 b/target/linux/generic/config-3.3 index e21e17f70d..d52a3a542e 100644 --- a/target/linux/generic/config-3.3 +++ b/target/linux/generic/config-3.3 @@ -801,7 +801,6 @@ CONFIG_GENERIC_TIME=y # CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_BT8XX is not set # CONFIG_GPIO_CS5535 is not set -# CONFIG_GPIO_DEVICE is not set # CONFIG_GPIO_GENERIC_PLATFORM is not set # CONFIG_GPIO_IT8761E is not set # CONFIG_GPIO_LANGWELL is not set diff --git a/target/linux/generic/files/drivers/char/gpio_dev.c b/target/linux/generic/files/drivers/char/gpio_dev.c deleted file mode 100644 index c741573026..0000000000 --- a/target/linux/generic/files/drivers/char/gpio_dev.c +++ /dev/null @@ -1,181 +0,0 @@ -/* - * character device wrapper for generic gpio layer - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA02111-1307USA - * - * Feedback, Bugs... blogic@openwrt.org - * - * dpg 20100106 - */ - -#include <linux/module.h> -#include <linux/errno.h> -#include <linux/init.h> -#include <asm/uaccess.h> -#include <asm/io.h> -#include <asm/gpio.h> -#include <asm/atomic.h> -#include <linux/init.h> -#include <linux/genhd.h> -#include <linux/device.h> -#include <linux/platform_device.h> -#include <linux/gpio_dev.h> -#include <linux/fs.h> - -#define DRVNAME "gpiodev" -#define DEVNAME "gpio" - -static int dev_major; -static struct class *gpiodev_class; - - -/* third argument of user space ioctl ('arg' here) contains the <pin> */ -static int -gpio_ioctl(struct file *file, unsigned int cmd, unsigned long arg) -{ - int retval = 0; - - switch (cmd) - { - case GPIO_GET: - retval = gpio_get_value(arg); - break; - case GPIO_SET: - gpio_set_value(arg, 1); - break; - case GPIO_CLEAR: - gpio_set_value(arg, 0); - break; - case GPIO_DIR_IN: - retval = gpio_direction_input(arg); - break; - case GPIO_DIR_OUT: - retval = gpio_direction_output(arg, 0); - break; - case GPIO_DIR_HIGH: - retval = gpio_direction_output(arg, 1); - break; - case GPIO_REQUEST: - /* should be first ioctl operation on <pin> */ - retval = gpio_request(arg, DRVNAME); - break; - case GPIO_FREE: - /* should be last ioctl operation on <pin> */ - /* may be needed first if previous user missed this ioctl */ - gpio_free(arg); - break; - case GPIO_CAN_SLEEP: - retval = gpio_cansleep(arg); - break; - default: - retval = -EINVAL; - /* = -ENOTTY; // correct return but ... */ - break; - } - return retval; -} - -/* Allow co-incident opens */ -static int -gpio_open(struct inode *inode, struct file *file) -{ - int result = 0; - unsigned int dev_minor = MINOR(inode->i_rdev); - - if (dev_minor != 0) - { - printk(KERN_ERR DRVNAME ": trying to access unknown minor device -> %d\n", dev_minor); - result = -ENODEV; - goto out; - } -out: - return result; -} - -static int -gpio_close(struct inode * inode, struct file * file) -{ - /* could track all <pin>s requested by this fd and gpio_free() - * them here - */ - return 0; -} - -struct file_operations gpio_fops = { - unlocked_ioctl: gpio_ioctl, - open: gpio_open, - release: gpio_close -}; - -static int -gpio_probe(struct platform_device *dev) -{ - int result = 0; - - dev_major = register_chrdev(0, DEVNAME, &gpio_fops); - if (!dev_major) - { - printk(KERN_ERR DRVNAME ": Error whilst opening %s \n", DEVNAME); - result = -ENODEV; - goto out; - } - gpiodev_class = class_create(THIS_MODULE, DRVNAME); - device_create(gpiodev_class, NULL, MKDEV(dev_major, 0), dev, DEVNAME); - printk(KERN_INFO DRVNAME ": gpio device registered with major %d\n", dev_major); -out: - return result; -} - -static int -gpio_remove(struct platform_device *dev) -{ - device_destroy(gpiodev_class, MKDEV(dev_major, 0)); - class_destroy(gpiodev_class); - unregister_chrdev(dev_major, DEVNAME); - return 0; -} - -static struct -platform_driver gpio_driver = { - .probe = gpio_probe, - .remove = gpio_remove, - .driver = { - .name = "GPIODEV", - .owner = THIS_MODULE, - }, -}; - -static int __init -gpio_mod_init(void) -{ - int ret = platform_driver_register(&gpio_driver); - if (ret) - printk(KERN_INFO DRVNAME ": Error registering platfom driver!\n"); - - return ret; -} - -static void __exit -gpio_mod_exit(void) -{ - platform_driver_unregister(&gpio_driver); -} - -module_init (gpio_mod_init); -module_exit (gpio_mod_exit); - -MODULE_LICENSE("GPL"); -MODULE_AUTHOR("John Crispin / OpenWrt +"); -MODULE_DESCRIPTION("Character device for for generic gpio api"); diff --git a/target/linux/generic/files/include/linux/gpio_dev.h b/target/linux/generic/files/include/linux/gpio_dev.h deleted file mode 100644 index a2a4b51c78..0000000000 --- a/target/linux/generic/files/include/linux/gpio_dev.h +++ /dev/null @@ -1,42 +0,0 @@ -#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 diff --git a/target/linux/generic/patches-3.3/835-gpiodev.patch b/target/linux/generic/patches-3.3/835-gpiodev.patch deleted file mode 100644 index f41d5a6850..0000000000 --- a/target/linux/generic/patches-3.3/835-gpiodev.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- a/drivers/char/Kconfig -+++ b/drivers/char/Kconfig -@@ -511,6 +511,14 @@ config NSC_GPIO - pc8736x_gpio drivers. If those drivers are built as - modules, this one will be too, named nsc_gpio - -+config GPIO_DEVICE -+ tristate "GPIO device support" -+ depends on GENERIC_GPIO -+ help -+ Say Y to enable Linux GPIO device support. This allows control of -+ GPIO pins using a character device -+ -+ - config RAW_DRIVER - tristate "RAW driver (/dev/raw/rawN)" - depends on BLOCK ---- a/drivers/char/Makefile -+++ b/drivers/char/Makefile -@@ -47,6 +47,7 @@ obj-$(CONFIG_NWFLASH) += nwflash.o - obj-$(CONFIG_SCx200_GPIO) += scx200_gpio.o - obj-$(CONFIG_PC8736x_GPIO) += pc8736x_gpio.o - obj-$(CONFIG_NSC_GPIO) += nsc_gpio.o -+obj-$(CONFIG_GPIO_DEVICE) += gpio_dev.o - obj-$(CONFIG_GPIO_TB0219) += tb0219.o - obj-$(CONFIG_TELCLOCK) += tlclk.o - diff --git a/target/linux/ixp4xx/config-3.3 b/target/linux/ixp4xx/config-3.3 index 20dc4926d9..abe6c6d8ee 100644 --- a/target/linux/ixp4xx/config-3.3 +++ b/target/linux/ixp4xx/config-3.3 @@ -58,7 +58,6 @@ CONFIG_GENERIC_GPIO=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GPIOLIB=y -CONFIG_GPIO_DEVICE=y CONFIG_GPIO_GW_I2C_PLD=y CONFIG_GPIO_SYSFS=y # CONFIG_HAMRADIO is not set diff --git a/target/linux/mpc83xx/config-3.3 b/target/linux/mpc83xx/config-3.3 index 925274c47f..04f78ff231 100644 --- a/target/linux/mpc83xx/config-3.3 +++ b/target/linux/mpc83xx/config-3.3 @@ -106,7 +106,6 @@ CONFIG_GEN_RTC=y # CONFIG_GEN_RTC_X is not set CONFIG_GIANFAR=y CONFIG_GPIOLIB=y -CONFIG_GPIO_DEVICE=y CONFIG_GPIO_MPC8XXX=y CONFIG_GPIO_SYSFS=y # CONFIG_HAMRADIO is not set diff --git a/target/linux/omap35xx/config-2.6.32 b/target/linux/omap35xx/config-2.6.32 index cea215c6cf..f05758a701 100644 --- a/target/linux/omap35xx/config-2.6.32 +++ b/target/linux/omap35xx/config-2.6.32 @@ -394,7 +394,6 @@ CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_TIME=y -# CONFIG_GPIO_DEVICE is not set CONFIG_GPIOLIB=y # CONFIG_GPIO_MAX7301 is not set # CONFIG_GPIO_MAX732X is not set diff --git a/target/linux/orion/dns323/config-3.3 b/target/linux/orion/dns323/config-3.3 index b0daf7f223..cc5b4a679c 100644 --- a/target/linux/orion/dns323/config-3.3 +++ b/target/linux/orion/dns323/config-3.3 @@ -19,7 +19,6 @@ CONFIG_EXT2_FS=y CONFIG_EXT3_FS=y CONFIG_EXT4_FS=y CONFIG_FS_MBCACHE=y -CONFIG_GPIO_DEVICE=y CONFIG_INPUT=y CONFIG_INPUT_EVDEV=y CONFIG_INPUT_KEYBOARD=y diff --git a/target/linux/s3c24xx/openmoko-gta02/config-2.6.30 b/target/linux/s3c24xx/openmoko-gta02/config-2.6.30 index df5b6cafed..5e18640f3f 100644 --- a/target/linux/s3c24xx/openmoko-gta02/config-2.6.30 +++ b/target/linux/s3c24xx/openmoko-gta02/config-2.6.30 @@ -101,7 +101,6 @@ CONFIG_GENERIC_FIND_LAST_BIT=y CONFIG_GENERIC_GPIO=y CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y # CONFIG_GENERIC_TIME is not set -CONFIG_GPIO_DEVICE=y CONFIG_GPIOLIB=y CONFIG_GPIO_SYSFS=y # CONFIG_HAMRADIO is not set |