From 677508fba07647c0b29f41434785383ebd6ea7f3 Mon Sep 17 00:00:00 2001
From: juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Tue, 5 Aug 2008 09:52:23 +0000
Subject: [PATCH] [kernel] modules/gpio_dev: move to drivers/char/ on older
 kernels as well, and create a package for it

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@12133 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 package/kernel/modules/other.mk               | 16 ++++++
 target/linux/generic-2.6/config-2.6.23        |  2 +-
 target/linux/generic-2.6/config-2.6.24        |  2 +-
 target/linux/generic-2.6/config-2.6.25        |  2 +-
 target/linux/generic-2.6/config-2.6.26        |  2 +-
 target/linux/generic-2.6/config-default       |  1 +
 .../files/drivers/{gpio => char}/gpio_dev.c   |  0
 .../generic-2.6/files/drivers/gpio/Kconfig    | 15 -----
 .../generic-2.6/files/drivers/gpio/Makefile   |  1 -
 .../patches-2.6.23/420-gpiodev.patch          | 26 +++++++++
 .../patches-2.6.23/920-gpio_dev.patch         | 29 ----------
 .../patches-2.6.24/420-gpiodev.patch          | 26 +++++++++
 .../patches-2.6.24/920-gpio_dev.patch         | 29 ----------
 .../generic-2.6/patches/420-gpiodev.patch     | 26 +++++++++
 .../pxa/patches-2.6.21/011-proc-gpio.patch    | 55 +++++--------------
 15 files changed, 112 insertions(+), 120 deletions(-)
 rename target/linux/generic-2.6/files/drivers/{gpio => char}/gpio_dev.c (100%)
 delete mode 100644 target/linux/generic-2.6/files/drivers/gpio/Kconfig
 delete mode 100644 target/linux/generic-2.6/files/drivers/gpio/Makefile
 create mode 100644 target/linux/generic-2.6/patches-2.6.23/420-gpiodev.patch
 delete mode 100644 target/linux/generic-2.6/patches-2.6.23/920-gpio_dev.patch
 create mode 100644 target/linux/generic-2.6/patches-2.6.24/420-gpiodev.patch
 delete mode 100644 target/linux/generic-2.6/patches-2.6.24/920-gpio_dev.patch
 create mode 100644 target/linux/generic-2.6/patches/420-gpiodev.patch

diff --git a/package/kernel/modules/other.mk b/package/kernel/modules/other.mk
index 925f87b9e7..3b8a3b3146 100644
--- a/package/kernel/modules/other.mk
+++ b/package/kernel/modules/other.mk
@@ -432,6 +432,22 @@ endef
 $(eval $(call KernelPackage,ledtrig-morse))
 
 
+define KernelPackage/gpio-dev
+  SUBMENU:=$(OTHER_MENU)
+  TITLE:=Generic GPIO char device support
+  DEPENDS:=@GPIO_SUPPORT
+  KCONFIG:=CONFIG_GPIO_DEVICE
+  FILES:=$(LINUX_DIR)/drivers/char/gpio_dev.$(LINUX_KMOD_SUFFIX)
+  AUTOLOAD:=$(call AutoLoad,40,gpio_dev)
+endef
+
+define KernelPackage/gpio-dev/description
+  Kernel module to allows control of GPIO pins using a character device.
+endef
+
+$(eval $(call KernelPackage,gpio-dev))
+
+
 define KernelPackage/nsc-gpio
   SUBMENU:=$(OTHER_MENU)
   TITLE:=Natsemi GPIO support
diff --git a/target/linux/generic-2.6/config-2.6.23 b/target/linux/generic-2.6/config-2.6.23
index 2f479f1ff3..0d9352b759 100644
--- a/target/linux/generic-2.6/config-2.6.23
+++ b/target/linux/generic-2.6/config-2.6.23
@@ -355,6 +355,7 @@ CONFIG_GENERIC_HWEIGHT=y
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_GENERIC_TIME=y
 # CONFIG_GFS2_FS is not set
+CONFIG_GPIO_DEVICE=m
 # CONFIG_HAMACHI is not set
 CONFIG_HAMRADIO=y
 # CONFIG_HAPPYMEAL is not set
@@ -1754,4 +1755,3 @@ CONFIG_ZLIB_DEFLATE=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZONE_DMA=y
 CONFIG_ZONE_DMA_FLAG=1
-# CONFIG_GPIO_DEVICE is not set
diff --git a/target/linux/generic-2.6/config-2.6.24 b/target/linux/generic-2.6/config-2.6.24
index c9036f97e3..f6d0a46c75 100644
--- a/target/linux/generic-2.6/config-2.6.24
+++ b/target/linux/generic-2.6/config-2.6.24
@@ -365,6 +365,7 @@ CONFIG_GENERIC_HWEIGHT=y
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_GENERIC_TIME=y
 # CONFIG_GFS2_FS is not set
+CONFIG_GPIO_DEVICE=m
 # CONFIG_HAMACHI is not set
 CONFIG_HAMRADIO=y
 # CONFIG_HAPPYMEAL is not set
@@ -1806,4 +1807,3 @@ CONFIG_ZLIB_DEFLATE=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZONE_DMA=y
 CONFIG_ZONE_DMA_FLAG=1
-# CONFIG_GPIO_DEVICE is not set
diff --git a/target/linux/generic-2.6/config-2.6.25 b/target/linux/generic-2.6/config-2.6.25
index 097b5a6750..41836c7d6b 100644
--- a/target/linux/generic-2.6/config-2.6.25
+++ b/target/linux/generic-2.6/config-2.6.25
@@ -375,6 +375,7 @@ CONFIG_GENERIC_HWEIGHT=y
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_GENERIC_TIME=y
 # CONFIG_GFS2_FS is not set
+CONFIG_GPIO_DEVICE=m
 # CONFIG_GROUP_SCHED is not set
 # CONFIG_HAMACHI is not set
 CONFIG_HAMRADIO=y
@@ -1856,4 +1857,3 @@ CONFIG_ZLIB_DEFLATE=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZONE_DMA=y
 CONFIG_ZONE_DMA_FLAG=1
-# CONFIG_GPIO_DEVICE is not set
diff --git a/target/linux/generic-2.6/config-2.6.26 b/target/linux/generic-2.6/config-2.6.26
index daffb987b0..7582e47d18 100644
--- a/target/linux/generic-2.6/config-2.6.26
+++ b/target/linux/generic-2.6/config-2.6.26
@@ -387,6 +387,7 @@ CONFIG_GENERIC_HWEIGHT=y
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_GENERIC_TIME=y
 # CONFIG_GFS2_FS is not set
+CONFIG_GPIO_DEVICE=m
 # CONFIG_GROUP_SCHED is not set
 # CONFIG_HAMACHI is not set
 CONFIG_HAMRADIO=y
@@ -1900,4 +1901,3 @@ CONFIG_ZLIB_DEFLATE=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZONE_DMA=y
 CONFIG_ZONE_DMA_FLAG=1
-# CONFIG_GPIO_DEVICE is not set
diff --git a/target/linux/generic-2.6/config-default b/target/linux/generic-2.6/config-default
index eb3e738faf..1908e5aade 100644
--- a/target/linux/generic-2.6/config-default
+++ b/target/linux/generic-2.6/config-default
@@ -327,6 +327,7 @@ CONFIG_GENERIC_HWEIGHT=y
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_GENERIC_TIME=y
 # CONFIG_GFS2_FS is not set
+CONFIG_GPIO_DEVICE=m
 # CONFIG_HAMACHI is not set
 CONFIG_HAMRADIO=y
 # CONFIG_HAPPYMEAL is not set
diff --git a/target/linux/generic-2.6/files/drivers/gpio/gpio_dev.c b/target/linux/generic-2.6/files/drivers/char/gpio_dev.c
similarity index 100%
rename from target/linux/generic-2.6/files/drivers/gpio/gpio_dev.c
rename to target/linux/generic-2.6/files/drivers/char/gpio_dev.c
diff --git a/target/linux/generic-2.6/files/drivers/gpio/Kconfig b/target/linux/generic-2.6/files/drivers/gpio/Kconfig
deleted file mode 100644
index d97fc1b4f1..0000000000
--- a/target/linux/generic-2.6/files/drivers/gpio/Kconfig
+++ /dev/null
@@ -1,15 +0,0 @@
-menuconfig NEW_GPIO
-	bool "GPIO Support"
-	depends on GENERIC_GPIO
-	help
-	  Say Y to enable Linux GPIO device support.  This allows control of 
-	  GPIO pins using a character device 
-
-if NEW_GPIO
-
-config GPIO_DEVICE
-	tristate "GPIO device support"
-	help
-	  This option enables the gpio character device 
-
-endif # NEW_GPIO
diff --git a/target/linux/generic-2.6/files/drivers/gpio/Makefile b/target/linux/generic-2.6/files/drivers/gpio/Makefile
deleted file mode 100644
index 166c5c7434..0000000000
--- a/target/linux/generic-2.6/files/drivers/gpio/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_GPIO_DEVICE)	+= gpio_dev.o
diff --git a/target/linux/generic-2.6/patches-2.6.23/420-gpiodev.patch b/target/linux/generic-2.6/patches-2.6.23/420-gpiodev.patch
new file mode 100644
index 0000000000..1508685b65
--- /dev/null
+++ b/target/linux/generic-2.6/patches-2.6.23/420-gpiodev.patch
@@ -0,0 +1,26 @@
+--- a/drivers/char/Kconfig
++++ b/drivers/char/Kconfig
+@@ -970,6 +970,13 @@
+ 
+ 	  If compiled as a module, it will be called cs5535_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 GPIO_VR41XX
+ 	tristate "NEC VR4100 series General-purpose I/O Unit support"
+ 	depends on CPU_VR41XX
+--- a/drivers/char/Makefile
++++ b/drivers/char/Makefile
+@@ -93,6 +93,7 @@
+ obj-$(CONFIG_PC8736x_GPIO)	+= pc8736x_gpio.o
+ obj-$(CONFIG_NSC_GPIO)		+= nsc_gpio.o
+ obj-$(CONFIG_CS5535_GPIO)	+= cs5535_gpio.o
++obj-$(CONFIG_GPIO_DEVICE)	+= gpio_dev.o
+ obj-$(CONFIG_GPIO_VR41XX)	+= vr41xx_giu.o
+ obj-$(CONFIG_GPIO_TB0219)	+= tb0219.o
+ obj-$(CONFIG_TELCLOCK)		+= tlclk.o
diff --git a/target/linux/generic-2.6/patches-2.6.23/920-gpio_dev.patch b/target/linux/generic-2.6/patches-2.6.23/920-gpio_dev.patch
deleted file mode 100644
index dcbfaf588b..0000000000
--- a/target/linux/generic-2.6/patches-2.6.23/920-gpio_dev.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -1039,6 +1039,8 @@
- 
- source "drivers/leds/Kconfig"
- 
-+source "drivers/gpio/Kconfig"
-+
- source "drivers/media/Kconfig"
- 
- source "drivers/video/Kconfig"
---- a/drivers/Kconfig
-+++ b/drivers/Kconfig
-@@ -76,6 +76,8 @@
- 
- source "drivers/leds/Kconfig"
- 
-+source "drivers/gpio/Kconfig"
-+
- source "drivers/infiniband/Kconfig"
- 
- source "drivers/edac/Kconfig"
---- a/drivers/Makefile
-+++ b/drivers/Makefile
-@@ -89,3 +89,4 @@
- obj-$(CONFIG_HID)		+= hid/
- obj-$(CONFIG_PPC_PS3)		+= ps3/
- obj-$(CONFIG_OF)		+= of/
-+obj-$(CONFIG_GPIO_DEVICE)	+= gpio/
diff --git a/target/linux/generic-2.6/patches-2.6.24/420-gpiodev.patch b/target/linux/generic-2.6/patches-2.6.24/420-gpiodev.patch
new file mode 100644
index 0000000000..98187413b3
--- /dev/null
+++ b/target/linux/generic-2.6/patches-2.6.24/420-gpiodev.patch
@@ -0,0 +1,26 @@
+--- a/drivers/char/Kconfig
++++ b/drivers/char/Kconfig
+@@ -946,6 +946,13 @@
+ 
+ 	  If compiled as a module, it will be called cs5535_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 GPIO_VR41XX
+ 	tristate "NEC VR4100 series General-purpose I/O Unit support"
+ 	depends on CPU_VR41XX
+--- a/drivers/char/Makefile
++++ b/drivers/char/Makefile
+@@ -93,6 +93,7 @@
+ obj-$(CONFIG_PC8736x_GPIO)	+= pc8736x_gpio.o
+ obj-$(CONFIG_NSC_GPIO)		+= nsc_gpio.o
+ obj-$(CONFIG_CS5535_GPIO)	+= cs5535_gpio.o
++obj-$(CONFIG_GPIO_DEVICE)	+= gpio_dev.o
+ obj-$(CONFIG_GPIO_VR41XX)	+= vr41xx_giu.o
+ obj-$(CONFIG_GPIO_TB0219)	+= tb0219.o
+ obj-$(CONFIG_TELCLOCK)		+= tlclk.o
diff --git a/target/linux/generic-2.6/patches-2.6.24/920-gpio_dev.patch b/target/linux/generic-2.6/patches-2.6.24/920-gpio_dev.patch
deleted file mode 100644
index e0a8aa3f55..0000000000
--- a/target/linux/generic-2.6/patches-2.6.24/920-gpio_dev.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -1054,6 +1054,8 @@
- 
- source "drivers/mfd/Kconfig"
- 
-+source "drivers/gpio/Kconfig"
-+
- source "drivers/media/Kconfig"
- 
- source "drivers/video/Kconfig"
---- a/drivers/Kconfig
-+++ b/drivers/Kconfig
-@@ -78,6 +78,8 @@
- 
- source "drivers/leds/Kconfig"
- 
-+source "drivers/gpio/Kconfig"
-+
- source "drivers/infiniband/Kconfig"
- 
- source "drivers/edac/Kconfig"
---- a/drivers/Makefile
-+++ b/drivers/Makefile
-@@ -91,3 +91,4 @@
- obj-$(CONFIG_OF)		+= of/
- obj-$(CONFIG_SSB)		+= ssb/
- obj-$(CONFIG_VIRTIO)		+= virtio/
-+obj-$(CONFIG_GPIO_DEVICE)	+= gpio/
diff --git a/target/linux/generic-2.6/patches/420-gpiodev.patch b/target/linux/generic-2.6/patches/420-gpiodev.patch
new file mode 100644
index 0000000000..a4f2236f70
--- /dev/null
+++ b/target/linux/generic-2.6/patches/420-gpiodev.patch
@@ -0,0 +1,26 @@
+--- a/drivers/char/Kconfig
++++ b/drivers/char/Kconfig
+@@ -984,6 +984,13 @@
+ 
+ 	  If compiled as a module, it will be called cs5535_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 GPIO_VR41XX
+ 	tristate "NEC VR4100 series General-purpose I/O Unit support"
+ 	depends on CPU_VR41XX
+--- a/drivers/char/Makefile
++++ b/drivers/char/Makefile
+@@ -90,6 +90,7 @@
+ obj-$(CONFIG_PC8736x_GPIO)	+= pc8736x_gpio.o
+ obj-$(CONFIG_NSC_GPIO)		+= nsc_gpio.o
+ obj-$(CONFIG_CS5535_GPIO)	+= cs5535_gpio.o
++obj-$(CONFIG_GPIO_DEVICE)	+= gpio_dev.o
+ obj-$(CONFIG_GPIO_VR41XX)	+= vr41xx_giu.o
+ obj-$(CONFIG_TANBAC_TB0219)	+= tb0219.o
+ obj-$(CONFIG_TELCLOCK)		+= tlclk.o
diff --git a/target/linux/pxa/patches-2.6.21/011-proc-gpio.patch b/target/linux/pxa/patches-2.6.21/011-proc-gpio.patch
index 8b4383cd51..479a070b55 100644
--- a/target/linux/pxa/patches-2.6.21/011-proc-gpio.patch
+++ b/target/linux/pxa/patches-2.6.21/011-proc-gpio.patch
@@ -1,8 +1,6 @@
-Index: linux-2.6.21.7/arch/arm/Kconfig
-===================================================================
---- linux-2.6.21.7.orig/arch/arm/Kconfig
-+++ linux-2.6.21.7/arch/arm/Kconfig
-@@ -505,6 +505,8 @@ config PCI_HOST_VIA82C505
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -505,6 +505,8 @@
  	depends on PCI && ARCH_SHARK
  	default y
  
@@ -11,38 +9,16 @@ Index: linux-2.6.21.7/arch/arm/Kconfig
  source "drivers/pci/Kconfig"
  
  source "drivers/pcmcia/Kconfig"
-Index: linux-2.6.21.7/drivers/Makefile
-===================================================================
---- linux-2.6.21.7.orig/drivers/Makefile
-+++ linux-2.6.21.7/drivers/Makefile
-@@ -81,3 +81,4 @@ obj-$(CONFIG_GENERIC_TIME)	+= clocksourc
+--- a/drivers/Makefile
++++ b/drivers/Makefile
+@@ -81,3 +81,4 @@
  obj-$(CONFIG_DMA_ENGINE)	+= dma/
  obj-$(CONFIG_HID)		+= hid/
  obj-$(CONFIG_PPC_PS3)		+= ps3/
 +obj-$(CONFIG_PROC_GPIO)		+= gpio/
-Index: linux-2.6.21.7/drivers/gpio/Kconfig
-===================================================================
---- linux-2.6.21.7.orig/drivers/gpio/Kconfig
-+++ linux-2.6.21.7/drivers/gpio/Kconfig
-@@ -2,14 +2,27 @@ menuconfig NEW_GPIO
- 	bool "GPIO Support"
- 	depends on GENERIC_GPIO
- 	help
--	  Say Y to enable Linux GPIO device support.  This allows control of 
--	  GPIO pins using a character device 
-+	  Say Y to enable Linux GPIO device support.  This allows control of
-+	  GPIO pins using a character device
- 
- if NEW_GPIO
- 
- config GPIO_DEVICE
- 	tristate "GPIO device support"
- 	help
--	  This option enables the gpio character device 
-+	  This option enables the gpio character device
- 
- endif # NEW_GPIO
-+
+--- /dev/null
++++ b/drivers/gpio/Kconfig
+@@ -0,0 +1,13 @@
 +config PROC_GPIO
 +	tristate "GPIO /proc interface"
 +	depends on PXA25x || PXA27x
@@ -55,19 +31,14 @@ Index: linux-2.6.21.7/drivers/gpio/Kconfig
 +	depends on PROC_GPIO
 +	help
 +	  This enables printk logging of activity done through /proc/gpio
-Index: linux-2.6.21.7/drivers/gpio/Makefile
-===================================================================
---- linux-2.6.21.7.orig/drivers/gpio/Makefile
-+++ linux-2.6.21.7/drivers/gpio/Makefile
-@@ -1 +1,4 @@
- obj-$(CONFIG_GPIO_DEVICE)	+= gpio_dev.o
 +
+--- /dev/null
++++ b/drivers/gpio/Makefile
+@@ -0,0 +1,2 @@
 +# Expose GPIOs under /proc
 +obj-$(CONFIG_PROC_GPIO)		+= proc_gpio.o
-Index: linux-2.6.21.7/drivers/gpio/proc_gpio.c
-===================================================================
 --- /dev/null
-+++ linux-2.6.21.7/drivers/gpio/proc_gpio.c
++++ b/drivers/gpio/proc_gpio.c
 @@ -0,0 +1,276 @@
 +/*
 + *
-- 
GitLab