diff options
author | Anton Vorontsov <avorontsov@ru.mvista.com> | 2010-06-08 09:48:17 -0400 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2010-07-05 18:14:30 -0400 |
commit | 391c970c0dd1100e3b9e1681f7d0f20aac35455a (patch) | |
tree | 05a42941269f77b22de6b640953df61f2da5d13c /arch/powerpc/platforms/52xx | |
parent | 594fa265e084073443390c5b93d5410fd28e9bcd (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.c | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 3 |
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, |