aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/52xx
diff options
context:
space:
mode:
authorAnton Vorontsov <avorontsov@ru.mvista.com>2010-06-08 09:48:17 -0400
committerGrant Likely <grant.likely@secretlab.ca>2010-07-05 18:14:30 -0400
commit391c970c0dd1100e3b9e1681f7d0f20aac35455a (patch)
tree05a42941269f77b22de6b640953df61f2da5d13c /arch/powerpc/platforms/52xx
parent594fa265e084073443390c5b93d5410fd28e9bcd (diff)
of/gpio: add default of_xlate function if device has a node pointer
Implement generic OF gpio hooks and thus make device-enabled GPIO chips (i.e. the ones that have gpio_chip->dev specified) automatically attach to the OpenFirmware subsystem. Which means that now we can handle I2C and SPI GPIO chips almost* transparently. * "Almost" because some chips still require platform data, and for these chips OF-glue is still needed, though with this change the glue will be much smaller. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca> Cc: David Brownell <dbrownell@users.sourceforge.net> Cc: Bill Gatliff <bgat@billgatliff.com> Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Jean Delvare <khali@linux-fr.org> Cc: Andrew Morton <akpm@linux-foundation.org> CC: linux-kernel@vger.kernel.org CC: devicetree-discuss@lists.ozlabs.org
Diffstat (limited to 'arch/powerpc/platforms/52xx')
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_gpio.c2
-rw-r--r--arch/powerpc/platforms/52xx/mpc52xx_gpt.c3
2 files changed, 0 insertions, 5 deletions
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpio.c b/arch/powerpc/platforms/52xx/mpc52xx_gpio.c
index fd0912eeffe2..0855e804fc0d 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpio.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpio.c
@@ -161,7 +161,6 @@ static int __devinit mpc52xx_wkup_gpiochip_probe(struct of_device *ofdev,
161 161
162 gc = &chip->mmchip.gc; 162 gc = &chip->mmchip.gc;
163 163
164 gc->of_gpio_n_cells = 2;
165 gc->ngpio = 8; 164 gc->ngpio = 8;
166 gc->direction_input = mpc52xx_wkup_gpio_dir_in; 165 gc->direction_input = mpc52xx_wkup_gpio_dir_in;
167 gc->direction_output = mpc52xx_wkup_gpio_dir_out; 166 gc->direction_output = mpc52xx_wkup_gpio_dir_out;
@@ -325,7 +324,6 @@ static int __devinit mpc52xx_simple_gpiochip_probe(struct of_device *ofdev,
325 324
326 gc = &chip->mmchip.gc; 325 gc = &chip->mmchip.gc;
327 326
328 gc->of_gpio_n_cells = 2;
329 gc->ngpio = 32; 327 gc->ngpio = 32;
330 gc->direction_input = mpc52xx_simple_gpio_dir_in; 328 gc->direction_input = mpc52xx_simple_gpio_dir_in;
331 gc->direction_output = mpc52xx_simple_gpio_dir_out; 329 gc->direction_output = mpc52xx_simple_gpio_dir_out;
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
index 6e82bd27132c..5d7d607617cd 100644
--- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
+++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c
@@ -348,10 +348,7 @@ mpc52xx_gpt_gpio_setup(struct mpc52xx_gpt_priv *gpt, struct device_node *node)
348 gpt->gc.get = mpc52xx_gpt_gpio_get; 348 gpt->gc.get = mpc52xx_gpt_gpio_get;
349 gpt->gc.set = mpc52xx_gpt_gpio_set; 349 gpt->gc.set = mpc52xx_gpt_gpio_set;
350 gpt->gc.base = -1; 350 gpt->gc.base = -1;
351 gpt->gc.of_gpio_n_cells = 2;
352 gpt->gc.of_xlate = of_gpio_simple_xlate;
353 gpt->gc.of_node = node; 351 gpt->gc.of_node = node;
354 of_node_get(node);
355 352
356 /* Setup external pin in GPIO mode */ 353 /* Setup external pin in GPIO mode */
357 clrsetbits_be32(&gpt->regs->mode, MPC52xx_GPT_MODE_MS_MASK, 354 clrsetbits_be32(&gpt->regs->mode, MPC52xx_GPT_MODE_MS_MASK,