aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpio/gpio-zevio.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpio/gpio-zevio.c b/drivers/gpio/gpio-zevio.c
index f769cd53f4e4..6f02d7c4cc57 100644
--- a/drivers/gpio/gpio-zevio.c
+++ b/drivers/gpio/gpio-zevio.c
@@ -181,6 +181,8 @@ static int zevio_gpio_probe(struct platform_device *pdev)
181 if (!controller) 181 if (!controller)
182 return -ENOMEM; 182 return -ENOMEM;
183 183
184 platform_set_drvdata(pdev, controller);
185
184 /* Copy our reference */ 186 /* Copy our reference */
185 controller->chip.gc = zevio_gpio_chip; 187 controller->chip.gc = zevio_gpio_chip;
186 controller->chip.gc.dev = &pdev->dev; 188 controller->chip.gc.dev = &pdev->dev;
@@ -202,6 +204,15 @@ static int zevio_gpio_probe(struct platform_device *pdev)
202 return 0; 204 return 0;
203} 205}
204 206
207static int zevio_gpio_remove(struct platform_device *pdev)
208{
209 struct zevio_gpio *controller = platform_get_drvdata(pdev);
210
211 of_mm_gpiochip_remove(&controller->chip);
212
213 return 0;
214}
215
205static const struct of_device_id zevio_gpio_of_match[] = { 216static const struct of_device_id zevio_gpio_of_match[] = {
206 { .compatible = "lsi,zevio-gpio", }, 217 { .compatible = "lsi,zevio-gpio", },
207 { }, 218 { },
@@ -215,6 +226,7 @@ static struct platform_driver zevio_gpio_driver = {
215 .of_match_table = zevio_gpio_of_match, 226 .of_match_table = zevio_gpio_of_match,
216 }, 227 },
217 .probe = zevio_gpio_probe, 228 .probe = zevio_gpio_probe,
229 .remove = zevio_gpio_remove,
218}; 230};
219module_platform_driver(zevio_gpio_driver); 231module_platform_driver(zevio_gpio_driver);
220 232