diff options
Diffstat (limited to 'drivers/gpio')
-rw-r--r-- | drivers/gpio/timbgpio.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpio/timbgpio.c b/drivers/gpio/timbgpio.c index 58c8f30352dd..ffcd815b8b8b 100644 --- a/drivers/gpio/timbgpio.c +++ b/drivers/gpio/timbgpio.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/module.h> | 23 | #include <linux/module.h> |
24 | #include <linux/gpio.h> | 24 | #include <linux/gpio.h> |
25 | #include <linux/platform_device.h> | 25 | #include <linux/platform_device.h> |
26 | #include <linux/mfd/core.h> | ||
26 | #include <linux/irq.h> | 27 | #include <linux/irq.h> |
27 | #include <linux/io.h> | 28 | #include <linux/io.h> |
28 | #include <linux/timb_gpio.h> | 29 | #include <linux/timb_gpio.h> |
@@ -228,7 +229,7 @@ static int __devinit timbgpio_probe(struct platform_device *pdev) | |||
228 | struct gpio_chip *gc; | 229 | struct gpio_chip *gc; |
229 | struct timbgpio *tgpio; | 230 | struct timbgpio *tgpio; |
230 | struct resource *iomem; | 231 | struct resource *iomem; |
231 | struct timbgpio_platform_data *pdata = pdev->dev.platform_data; | 232 | struct timbgpio_platform_data *pdata = mfd_get_data(pdev); |
232 | int irq = platform_get_irq(pdev, 0); | 233 | int irq = platform_get_irq(pdev, 0); |
233 | 234 | ||
234 | if (!pdata || pdata->nr_pins > 32) { | 235 | if (!pdata || pdata->nr_pins > 32) { |
@@ -319,14 +320,13 @@ err_mem: | |||
319 | static int __devexit timbgpio_remove(struct platform_device *pdev) | 320 | static int __devexit timbgpio_remove(struct platform_device *pdev) |
320 | { | 321 | { |
321 | int err; | 322 | int err; |
322 | struct timbgpio_platform_data *pdata = pdev->dev.platform_data; | ||
323 | struct timbgpio *tgpio = platform_get_drvdata(pdev); | 323 | struct timbgpio *tgpio = platform_get_drvdata(pdev); |
324 | struct resource *iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 324 | struct resource *iomem = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
325 | int irq = platform_get_irq(pdev, 0); | 325 | int irq = platform_get_irq(pdev, 0); |
326 | 326 | ||
327 | if (irq >= 0 && tgpio->irq_base > 0) { | 327 | if (irq >= 0 && tgpio->irq_base > 0) { |
328 | int i; | 328 | int i; |
329 | for (i = 0; i < pdata->nr_pins; i++) { | 329 | for (i = 0; i < tgpio->gpio.ngpio; i++) { |
330 | set_irq_chip(tgpio->irq_base + i, NULL); | 330 | set_irq_chip(tgpio->irq_base + i, NULL); |
331 | set_irq_chip_data(tgpio->irq_base + i, NULL); | 331 | set_irq_chip_data(tgpio->irq_base + i, NULL); |
332 | } | 332 | } |