summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-08-14 21:07:46 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-08-14 21:07:46 +0000
commit9bdf47af77748a50a2afe598bcb3b3c79eee6a1b (patch)
treea661638dd6f786fe3cb979b2da250da6dcef05ab
parentb917bcd23526e37a01f04fb8cb85d40f68e9f9ee (diff)
ixp4xx: fix GPIOLIB support
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22650 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--target/linux/ixp4xx/patches-2.6.32/402-ixp4xx_gpiolib.patch21
-rw-r--r--target/linux/ixp4xx/patches-2.6.33/402-ixp4xx_gpiolib.patch21
-rw-r--r--target/linux/ixp4xx/patches-2.6.34/402-ixp4xx_gpiolib.patch21
-rw-r--r--target/linux/ixp4xx/patches-2.6.35/402-ixp4xx_gpiolib.patch21
4 files changed, 64 insertions, 20 deletions
diff --git a/target/linux/ixp4xx/patches-2.6.32/402-ixp4xx_gpiolib.patch b/target/linux/ixp4xx/patches-2.6.32/402-ixp4xx_gpiolib.patch
index b3f1336f5..2d2cec550 100644
--- a/target/linux/ixp4xx/patches-2.6.32/402-ixp4xx_gpiolib.patch
+++ b/target/linux/ixp4xx/patches-2.6.32/402-ixp4xx_gpiolib.patch
@@ -8,7 +8,7 @@
#include <asm/mach/map.h>
#include <asm/mach/irq.h>
-@@ -375,12 +376,39 @@ static struct platform_device *ixp46x_de
+@@ -375,12 +376,50 @@ static struct platform_device *ixp46x_de
unsigned long ixp4xx_exp_bus_size;
EXPORT_SYMBOL(ixp4xx_exp_bus_size);
@@ -17,7 +17,6 @@
+ gpio_line_config(gpio, IXP4XX_GPIO_IN);
+ return 0;
+}
-+EXPORT_SYMBOL(ixp4xx_gpio_direction_input);
+
+static int ixp4xx_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, int level)
+{
@@ -25,14 +24,26 @@
+ gpio_line_config(gpio, IXP4XX_GPIO_OUT);
+ return 0;
+}
-+EXPORT_SYMBOL(ixp4xx_gpio_direction_output);
++
++static int ixp4xx_gpio_get_value(struct gpio_chip *chip, unsigned gpio)
++{
++ int value;
++
++ gpio_line_get(gpio, &value);
++ return value;
++}
++
++static void ixp4xx_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value)
++{
++ gpio_line_set(gpio, value);
++}
+
+static struct gpio_chip ixp4xx_gpio_chip = {
+ .label = "IXP4XX_GPIO_CHIP",
+ .direction_input = ixp4xx_gpio_direction_input,
+ .direction_output = ixp4xx_gpio_direction_output,
-+ .get = gpio_get_value,
-+ .set = gpio_set_value,
++ .get = ixp4xx_gpio_get_value,
++ .set = ixp4xx_gpio_set_value,
+ .base = 0,
+ .ngpio = 16,
+};
diff --git a/target/linux/ixp4xx/patches-2.6.33/402-ixp4xx_gpiolib.patch b/target/linux/ixp4xx/patches-2.6.33/402-ixp4xx_gpiolib.patch
index 5b0a63a25..1b1b91065 100644
--- a/target/linux/ixp4xx/patches-2.6.33/402-ixp4xx_gpiolib.patch
+++ b/target/linux/ixp4xx/patches-2.6.33/402-ixp4xx_gpiolib.patch
@@ -8,7 +8,7 @@
#include <asm/mach/map.h>
#include <asm/mach/irq.h>
-@@ -375,12 +376,39 @@ static struct platform_device *ixp46x_de
+@@ -375,12 +376,50 @@ static struct platform_device *ixp46x_de
unsigned long ixp4xx_exp_bus_size;
EXPORT_SYMBOL(ixp4xx_exp_bus_size);
@@ -17,7 +17,6 @@
+ gpio_line_config(gpio, IXP4XX_GPIO_IN);
+ return 0;
+}
-+EXPORT_SYMBOL(ixp4xx_gpio_direction_input);
+
+static int ixp4xx_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, int level)
+{
@@ -25,14 +24,26 @@
+ gpio_line_config(gpio, IXP4XX_GPIO_OUT);
+ return 0;
+}
-+EXPORT_SYMBOL(ixp4xx_gpio_direction_output);
++
++static int ixp4xx_gpio_get_value(struct gpio_chip *chip, unsigned gpio)
++{
++ int value;
++
++ gpio_line_get(gpio, &value);
++ return value;
++}
++
++static void ixp4xx_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value)
++{
++ gpio_line_set(gpio, value);
++}
+
+static struct gpio_chip ixp4xx_gpio_chip = {
+ .label = "IXP4XX_GPIO_CHIP",
+ .direction_input = ixp4xx_gpio_direction_input,
+ .direction_output = ixp4xx_gpio_direction_output,
-+ .get = gpio_get_value,
-+ .set = gpio_set_value,
++ .get = ixp4xx_gpio_get_value,
++ .set = ixp4xx_gpio_set_value,
+ .base = 0,
+ .ngpio = 16,
+};
diff --git a/target/linux/ixp4xx/patches-2.6.34/402-ixp4xx_gpiolib.patch b/target/linux/ixp4xx/patches-2.6.34/402-ixp4xx_gpiolib.patch
index 0ec3a9154..5fb5edba4 100644
--- a/target/linux/ixp4xx/patches-2.6.34/402-ixp4xx_gpiolib.patch
+++ b/target/linux/ixp4xx/patches-2.6.34/402-ixp4xx_gpiolib.patch
@@ -8,7 +8,7 @@
#include <asm/mach/map.h>
#include <asm/mach/irq.h>
-@@ -375,12 +376,39 @@ static struct platform_device *ixp46x_de
+@@ -375,12 +376,50 @@ static struct platform_device *ixp46x_de
unsigned long ixp4xx_exp_bus_size;
EXPORT_SYMBOL(ixp4xx_exp_bus_size);
@@ -17,7 +17,6 @@
+ gpio_line_config(gpio, IXP4XX_GPIO_IN);
+ return 0;
+}
-+EXPORT_SYMBOL(ixp4xx_gpio_direction_input);
+
+static int ixp4xx_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, int level)
+{
@@ -25,14 +24,26 @@
+ gpio_line_config(gpio, IXP4XX_GPIO_OUT);
+ return 0;
+}
-+EXPORT_SYMBOL(ixp4xx_gpio_direction_output);
++
++static int ixp4xx_gpio_get_value(struct gpio_chip *chip, unsigned gpio)
++{
++ int value;
++
++ gpio_line_get(gpio, &value);
++ return value;
++}
++
++static void ixp4xx_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value)
++{
++ gpio_line_set(gpio, value);
++}
+
+static struct gpio_chip ixp4xx_gpio_chip = {
+ .label = "IXP4XX_GPIO_CHIP",
+ .direction_input = ixp4xx_gpio_direction_input,
+ .direction_output = ixp4xx_gpio_direction_output,
-+ .get = gpio_get_value,
-+ .set = gpio_set_value,
++ .get = ixp4xx_gpio_get_value,
++ .set = ixp4xx_gpio_set_value,
+ .base = 0,
+ .ngpio = 16,
+};
diff --git a/target/linux/ixp4xx/patches-2.6.35/402-ixp4xx_gpiolib.patch b/target/linux/ixp4xx/patches-2.6.35/402-ixp4xx_gpiolib.patch
index bfe22272f..522550713 100644
--- a/target/linux/ixp4xx/patches-2.6.35/402-ixp4xx_gpiolib.patch
+++ b/target/linux/ixp4xx/patches-2.6.35/402-ixp4xx_gpiolib.patch
@@ -8,7 +8,7 @@
#include <asm/mach/map.h>
#include <asm/mach/irq.h>
-@@ -374,12 +375,39 @@ static struct platform_device *ixp46x_de
+@@ -374,12 +375,50 @@ static struct platform_device *ixp46x_de
unsigned long ixp4xx_exp_bus_size;
EXPORT_SYMBOL(ixp4xx_exp_bus_size);
@@ -17,7 +17,6 @@
+ gpio_line_config(gpio, IXP4XX_GPIO_IN);
+ return 0;
+}
-+EXPORT_SYMBOL(ixp4xx_gpio_direction_input);
+
+static int ixp4xx_gpio_direction_output(struct gpio_chip *chip, unsigned gpio, int level)
+{
@@ -25,14 +24,26 @@
+ gpio_line_config(gpio, IXP4XX_GPIO_OUT);
+ return 0;
+}
-+EXPORT_SYMBOL(ixp4xx_gpio_direction_output);
++
++static int ixp4xx_gpio_get_value(struct gpio_chip *chip, unsigned gpio)
++{
++ int value;
++
++ gpio_line_get(gpio, &value);
++ return value;
++}
++
++static void ixp4xx_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value)
++{
++ gpio_line_set(gpio, value);
++}
+
+static struct gpio_chip ixp4xx_gpio_chip = {
+ .label = "IXP4XX_GPIO_CHIP",
+ .direction_input = ixp4xx_gpio_direction_input,
+ .direction_output = ixp4xx_gpio_direction_output,
-+ .get = gpio_get_value,
-+ .set = gpio_set_value,
++ .get = ixp4xx_gpio_get_value,
++ .set = ixp4xx_gpio_set_value,
+ .base = 0,
+ .ngpio = 16,
+};