diff options
Diffstat (limited to 'drivers/gpio/gpio-arizona.c')
| -rw-r--r-- | drivers/gpio/gpio-arizona.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/gpio/gpio-arizona.c b/drivers/gpio/gpio-arizona.c index 8740d2eb06f..29bdff55898 100644 --- a/drivers/gpio/gpio-arizona.c +++ b/drivers/gpio/gpio-arizona.c @@ -91,13 +91,13 @@ static struct gpio_chip template_chip = { .get = arizona_gpio_get, .direction_output = arizona_gpio_direction_out, .set = arizona_gpio_set, - .can_sleep = 1, + .can_sleep = true, }; -static int __devinit arizona_gpio_probe(struct platform_device *pdev) +static int arizona_gpio_probe(struct platform_device *pdev) { struct arizona *arizona = dev_get_drvdata(pdev->dev.parent); - struct arizona_pdata *pdata = arizona->dev->platform_data; + struct arizona_pdata *pdata = dev_get_platdata(arizona->dev); struct arizona_gpio *arizona_gpio; int ret; @@ -109,10 +109,14 @@ static int __devinit arizona_gpio_probe(struct platform_device *pdev) arizona_gpio->arizona = arizona; arizona_gpio->gpio_chip = template_chip; arizona_gpio->gpio_chip.dev = &pdev->dev; +#ifdef CONFIG_OF_GPIO + arizona_gpio->gpio_chip.of_node = arizona->dev->of_node; +#endif switch (arizona->type) { case WM5102: case WM5110: + case WM8997: arizona_gpio->gpio_chip.ngpio = 5; break; default: @@ -141,7 +145,7 @@ err: return ret; } -static int __devexit arizona_gpio_remove(struct platform_device *pdev) +static int arizona_gpio_remove(struct platform_device *pdev) { struct arizona_gpio *arizona_gpio = platform_get_drvdata(pdev); @@ -152,7 +156,7 @@ static struct platform_driver arizona_gpio_driver = { .driver.name = "arizona-gpio", .driver.owner = THIS_MODULE, .probe = arizona_gpio_probe, - .remove = __devexit_p(arizona_gpio_remove), + .remove = arizona_gpio_remove, }; module_platform_driver(arizona_gpio_driver); |
