ramips: setup GPIO chip functions on the fly
authorGabor Juhos <juhosg@openwrt.org>
Sun, 27 Mar 2011 19:19:51 +0000 (19:19 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Sun, 27 Mar 2011 19:19:51 +0000 (19:19 +0000)
SVN-Revision: 26324

target/linux/ramips/files/arch/mips/ralink/common/gpio.c

index 766d787..81c3a1f 100644 (file)
@@ -147,10 +147,6 @@ static int ramips_gpio_get(struct gpio_chip *chip, unsigned offset)
 static struct ramips_gpio_chip ramips_gpio_chip0 = {
        .chip = {
                .label                  = "ramips-gpio0",
-               .direction_input        = ramips_gpio_direction_input,
-               .direction_output       = ramips_gpio_direction_output,
-               .get                    = ramips_gpio_get,
-               .set                    = ramips_gpio_set,
                .base                   = 0,
                .ngpio                  = RALINK_SOC_GPIO0_COUNT,
        },
@@ -173,10 +169,6 @@ static struct ramips_gpio_chip ramips_gpio_chip0 = {
 static struct ramips_gpio_chip ramips_gpio_chip1 = {
        .chip = {
                .label                  = "ramips-gpio1",
-               .direction_input        = ramips_gpio_direction_input,
-               .direction_output       = ramips_gpio_direction_output,
-               .get                    = ramips_gpio_get,
-               .set                    = ramips_gpio_set,
                .base                   = 32,
                .ngpio                  = RALINK_SOC_GPIO1_COUNT,
        },
@@ -199,10 +191,6 @@ static struct ramips_gpio_chip ramips_gpio_chip1 = {
 static struct ramips_gpio_chip ramips_gpio_chip2 = {
        .chip = {
                .label                  = "ramips-gpio2",
-               .direction_input        = ramips_gpio_direction_input,
-               .direction_output       = ramips_gpio_direction_output,
-               .get                    = ramips_gpio_get,
-               .set                    = ramips_gpio_set,
                .base                   = 64,
                .ngpio                  = RALINK_SOC_GPIO2_COUNT,
        },
@@ -228,6 +216,11 @@ static __init void ramips_gpio_chip_add(struct ramips_gpio_chip *rg)
 
        rg->regs_base = ioremap(rg->map_base, rg->map_size);
 
+       rg->chip.direction_input = ramips_gpio_direction_input;
+       rg->chip.direction_output = ramips_gpio_direction_output;
+       rg->chip.get = ramips_gpio_get;
+       rg->chip.set = ramips_gpio_set;
+
        /* set polarity to low for all lines */
        ramips_gpio_wr(rg, RAMIPS_GPIO_REG_POL, 0);