From: Linus Walleij Date: Wed, 9 Mar 2016 10:40:37 +0000 (+0700) Subject: Merge branch 'ib-mfd-regulator-gpio-4.6' of git://git.kernel.org/pub/scm/linux/kernel... X-Git-Tag: v4.6-rc1~108^2~10 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=0bae2f17323a4630c487a9b77c37bebf407424af;p=karo-tx-linux.git Merge branch 'ib-mfd-regulator-gpio-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into devel --- 0bae2f17323a4630c487a9b77c37bebf407424af diff --cc drivers/gpio/gpio-tps65912.c index e72302d2461a,3da3840201de..e7886e712dc7 --- a/drivers/gpio/gpio-tps65912.c +++ b/drivers/gpio/gpio-tps65912.c @@@ -90,54 -105,54 +105,45 @@@ static struct gpio_chip template_chip static int tps65912_gpio_probe(struct platform_device *pdev) { - struct tps65912 *tps65912 = dev_get_drvdata(pdev->dev.parent); - struct tps65912_board *pdata = dev_get_platdata(tps65912->dev); - struct tps65912_gpio_data *tps65912_gpio; + struct tps65912 *tps = dev_get_drvdata(pdev->dev.parent); + struct tps65912_gpio *gpio; int ret; - tps65912_gpio = devm_kzalloc(&pdev->dev, sizeof(*tps65912_gpio), - GFP_KERNEL); - if (tps65912_gpio == NULL) + gpio = devm_kzalloc(&pdev->dev, sizeof(*gpio), GFP_KERNEL); + if (!gpio) return -ENOMEM; - tps65912_gpio->tps65912 = tps65912; - tps65912_gpio->gpio_chip = template_chip; - tps65912_gpio->gpio_chip.parent = &pdev->dev; - if (pdata && pdata->gpio_base) - tps65912_gpio->gpio_chip.base = pdata->gpio_base; + gpio->tps = dev_get_drvdata(pdev->dev.parent); + gpio->gpio_chip = template_chip; + gpio->gpio_chip.parent = tps->dev; - ret = gpiochip_add_data(&gpio->gpio_chip, gpio); + ret = devm_gpiochip_add_data(&pdev->dev, &tps65912_gpio->gpio_chip, + tps65912_gpio); if (ret < 0) { - dev_err(&pdev->dev, "Failed to register gpiochip, %d\n", ret); + dev_err(&pdev->dev, "Could not register gpiochip, %d\n", ret); return ret; } - platform_set_drvdata(pdev, tps65912_gpio); + platform_set_drvdata(pdev, gpio); - return ret; + return 0; } -static int tps65912_gpio_remove(struct platform_device *pdev) -{ - struct tps65912_gpio *gpio = platform_get_drvdata(pdev); - - gpiochip_remove(&gpio->gpio_chip); - - return 0; -} - + static const struct platform_device_id tps65912_gpio_id_table[] = { + { "tps65912-gpio", }, + { /* sentinel */ } + }; + MODULE_DEVICE_TABLE(platform, tps65912_gpio_id_table); + static struct platform_driver tps65912_gpio_driver = { .driver = { .name = "tps65912-gpio", }, .probe = tps65912_gpio_probe, - .remove = tps65912_gpio_remove, + .id_table = tps65912_gpio_id_table, }; + module_platform_driver(tps65912_gpio_driver); - static int __init tps65912_gpio_init(void) - { - return platform_driver_register(&tps65912_gpio_driver); - } - subsys_initcall(tps65912_gpio_init); - - static void __exit tps65912_gpio_exit(void) - { - platform_driver_unregister(&tps65912_gpio_driver); - } - module_exit(tps65912_gpio_exit); - - MODULE_AUTHOR("Margarita Olaya Cabrera "); - MODULE_DESCRIPTION("GPIO interface for TPS65912 PMICs"); + MODULE_AUTHOR("Andrew F. Davis "); + MODULE_DESCRIPTION("TPS65912 GPIO driver"); MODULE_LICENSE("GPL v2"); - MODULE_ALIAS("platform:tps65912-gpio");