diff options
Diffstat (limited to 'drivers/mfd/rc5t583.c')
-rw-r--r-- | drivers/mfd/rc5t583.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/mfd/rc5t583.c b/drivers/mfd/rc5t583.c index 44afae0a69ce..cdc1df7fa0e9 100644 --- a/drivers/mfd/rc5t583.c +++ b/drivers/mfd/rc5t583.c | |||
@@ -75,6 +75,7 @@ static struct deepsleep_control_data deepsleep_data[] = { | |||
75 | (RC5T583_EXT_PWRREQ1_CONTROL | RC5T583_EXT_PWRREQ2_CONTROL) | 75 | (RC5T583_EXT_PWRREQ1_CONTROL | RC5T583_EXT_PWRREQ2_CONTROL) |
76 | 76 | ||
77 | static struct mfd_cell rc5t583_subdevs[] = { | 77 | static struct mfd_cell rc5t583_subdevs[] = { |
78 | {.name = "rc5t583-gpio",}, | ||
78 | {.name = "rc5t583-regulator",}, | 79 | {.name = "rc5t583-regulator",}, |
79 | {.name = "rc5t583-rtc", }, | 80 | {.name = "rc5t583-rtc", }, |
80 | {.name = "rc5t583-key", } | 81 | {.name = "rc5t583-key", } |
@@ -267,7 +268,7 @@ static int __devinit rc5t583_i2c_probe(struct i2c_client *i2c, | |||
267 | rc5t583->dev = &i2c->dev; | 268 | rc5t583->dev = &i2c->dev; |
268 | i2c_set_clientdata(i2c, rc5t583); | 269 | i2c_set_clientdata(i2c, rc5t583); |
269 | 270 | ||
270 | rc5t583->regmap = regmap_init_i2c(i2c, &rc5t583_regmap_config); | 271 | rc5t583->regmap = devm_regmap_init_i2c(i2c, &rc5t583_regmap_config); |
271 | if (IS_ERR(rc5t583->regmap)) { | 272 | if (IS_ERR(rc5t583->regmap)) { |
272 | ret = PTR_ERR(rc5t583->regmap); | 273 | ret = PTR_ERR(rc5t583->regmap); |
273 | dev_err(&i2c->dev, "regmap initialization failed: %d\n", ret); | 274 | dev_err(&i2c->dev, "regmap initialization failed: %d\n", ret); |
@@ -276,7 +277,7 @@ static int __devinit rc5t583_i2c_probe(struct i2c_client *i2c, | |||
276 | 277 | ||
277 | ret = rc5t583_clear_ext_power_req(rc5t583, pdata); | 278 | ret = rc5t583_clear_ext_power_req(rc5t583, pdata); |
278 | if (ret < 0) | 279 | if (ret < 0) |
279 | goto err_irq_init; | 280 | return ret; |
280 | 281 | ||
281 | if (i2c->irq) { | 282 | if (i2c->irq) { |
282 | ret = rc5t583_irq_init(rc5t583, i2c->irq, pdata->irq_base); | 283 | ret = rc5t583_irq_init(rc5t583, i2c->irq, pdata->irq_base); |
@@ -299,8 +300,6 @@ static int __devinit rc5t583_i2c_probe(struct i2c_client *i2c, | |||
299 | err_add_devs: | 300 | err_add_devs: |
300 | if (irq_init_success) | 301 | if (irq_init_success) |
301 | rc5t583_irq_exit(rc5t583); | 302 | rc5t583_irq_exit(rc5t583); |
302 | err_irq_init: | ||
303 | regmap_exit(rc5t583->regmap); | ||
304 | return ret; | 303 | return ret; |
305 | } | 304 | } |
306 | 305 | ||
@@ -310,7 +309,6 @@ static int __devexit rc5t583_i2c_remove(struct i2c_client *i2c) | |||
310 | 309 | ||
311 | mfd_remove_devices(rc5t583->dev); | 310 | mfd_remove_devices(rc5t583->dev); |
312 | rc5t583_irq_exit(rc5t583); | 311 | rc5t583_irq_exit(rc5t583); |
313 | regmap_exit(rc5t583->regmap); | ||
314 | return 0; | 312 | return 0; |
315 | } | 313 | } |
316 | 314 | ||