diff options
Diffstat (limited to 'drivers/mfd')
-rw-r--r-- | drivers/mfd/wm8350-core.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/drivers/mfd/wm8350-core.c b/drivers/mfd/wm8350-core.c index cd1f76efed4e..382e38c66914 100644 --- a/drivers/mfd/wm8350-core.c +++ b/drivers/mfd/wm8350-core.c | |||
@@ -1234,6 +1234,15 @@ int wm8350_device_init(struct wm8350 *wm8350, int irq, | |||
1234 | 1234 | ||
1235 | wm8350_reg_write(wm8350, WM8350_SYSTEM_INTERRUPTS_MASK, 0x0); | 1235 | wm8350_reg_write(wm8350, WM8350_SYSTEM_INTERRUPTS_MASK, 0x0); |
1236 | 1236 | ||
1237 | wm8350_client_dev_register(wm8350, "wm8350-codec", | ||
1238 | &(wm8350->codec.pdev)); | ||
1239 | wm8350_client_dev_register(wm8350, "wm8350-gpio", | ||
1240 | &(wm8350->gpio.pdev)); | ||
1241 | wm8350_client_dev_register(wm8350, "wm8350-power", | ||
1242 | &(wm8350->power.pdev)); | ||
1243 | wm8350_client_dev_register(wm8350, "wm8350-rtc", &(wm8350->rtc.pdev)); | ||
1244 | wm8350_client_dev_register(wm8350, "wm8350-wdt", &(wm8350->wdt.pdev)); | ||
1245 | |||
1237 | return 0; | 1246 | return 0; |
1238 | 1247 | ||
1239 | err: | 1248 | err: |
@@ -1247,8 +1256,13 @@ void wm8350_device_exit(struct wm8350 *wm8350) | |||
1247 | int i; | 1256 | int i; |
1248 | 1257 | ||
1249 | for (i = 0; i < ARRAY_SIZE(wm8350->pmic.pdev); i++) | 1258 | for (i = 0; i < ARRAY_SIZE(wm8350->pmic.pdev); i++) |
1250 | if (wm8350->pmic.pdev[i] != NULL) | 1259 | platform_device_unregister(wm8350->pmic.pdev[i]); |
1251 | platform_device_unregister(wm8350->pmic.pdev[i]); | 1260 | |
1261 | platform_device_unregister(wm8350->wdt.pdev); | ||
1262 | platform_device_unregister(wm8350->rtc.pdev); | ||
1263 | platform_device_unregister(wm8350->power.pdev); | ||
1264 | platform_device_unregister(wm8350->gpio.pdev); | ||
1265 | platform_device_unregister(wm8350->codec.pdev); | ||
1252 | 1266 | ||
1253 | free_irq(wm8350->chip_irq, wm8350); | 1267 | free_irq(wm8350->chip_irq, wm8350); |
1254 | flush_work(&wm8350->irq_work); | 1268 | flush_work(&wm8350->irq_work); |