aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2015-02-09 14:24:00 +0000
committerJohn Crispin <blogic@openwrt.org>2015-02-09 14:24:00 +0000
commit66b84f777af7094bf0874f271035c38dd52b37d1 (patch)
tree7d3a196886d35b526e7fd1f7ba77427ba9425cbd /target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch
parent68814e38a3e6aa64fe8dd8dd459cfe37389124e3 (diff)
downloadupstream-66b84f777af7094bf0874f271035c38dd52b37d1.tar.gz
upstream-66b84f777af7094bf0874f271035c38dd52b37d1.tar.bz2
upstream-66b84f777af7094bf0874f271035c38dd52b37d1.zip
ixp4xx: add v3.18 support
Signed-off-by: Your Name <blogic@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@44363 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch')
-rw-r--r--target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch b/target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch
new file mode 100644
index 0000000000..0477b3863d
--- /dev/null
+++ b/target/linux/ixp4xx/patches-3.18/030-gpio_line_config.patch
@@ -0,0 +1,65 @@
+--- a/arch/arm/mach-ixp4xx/common.c
++++ b/arch/arm/mach-ixp4xx/common.c
+@@ -84,22 +84,7 @@ void __init ixp4xx_map_io(void)
+ /*
+ * GPIO-functions
+ */
+-/*
+- * The following converted to the real HW bits the gpio_line_config
+- */
+-/* GPIO pin types */
+-#define IXP4XX_GPIO_OUT 0x1
+-#define IXP4XX_GPIO_IN 0x2
+-
+-/* GPIO signal types */
+-#define IXP4XX_GPIO_LOW 0
+-#define IXP4XX_GPIO_HIGH 1
+-
+-/* GPIO Clocks */
+-#define IXP4XX_GPIO_CLK_0 14
+-#define IXP4XX_GPIO_CLK_1 15
+-
+-static void gpio_line_config(u8 line, u32 direction)
++void gpio_line_config(u8 line, u32 direction)
+ {
+ if (direction == IXP4XX_GPIO_IN)
+ *IXP4XX_GPIO_GPOER |= (1 << line);
+@@ -107,12 +92,12 @@ static void gpio_line_config(u8 line, u3
+ *IXP4XX_GPIO_GPOER &= ~(1 << line);
+ }
+
+-static void gpio_line_get(u8 line, int *value)
++void gpio_line_get(u8 line, int *value)
+ {
+ *value = (*IXP4XX_GPIO_GPINR >> line) & 0x1;
+ }
+
+-static void gpio_line_set(u8 line, int value)
++void gpio_line_set(u8 line, int value)
+ {
+ if (value == IXP4XX_GPIO_HIGH)
+ *IXP4XX_GPIO_GPOUTR |= (1 << line);
+--- a/arch/arm/mach-ixp4xx/include/mach/platform.h
++++ b/arch/arm/mach-ixp4xx/include/mach/platform.h
+@@ -131,5 +131,21 @@ struct pci_sys_data;
+ extern int ixp4xx_setup(int nr, struct pci_sys_data *sys);
+ extern struct pci_ops ixp4xx_ops;
+
++/* GPIO pin types */
++#define IXP4XX_GPIO_OUT 0x1
++#define IXP4XX_GPIO_IN 0x2
++
++/* GPIO signal types */
++#define IXP4XX_GPIO_LOW 0
++#define IXP4XX_GPIO_HIGH 1
++
++/* GPIO Clocks */
++#define IXP4XX_GPIO_CLK_0 14
++#define IXP4XX_GPIO_CLK_1 15
++
++void gpio_line_config(u8 line, u32 direction);
++void gpio_line_get(u8 line, int *value);
++void gpio_line_set(u8 line, int value);
++
+ #endif // __ASSEMBLY__
+