aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/wm831x-core.c20
-rw-r--r--drivers/mfd/wm831x-i2c.c2
-rw-r--r--drivers/mfd/wm831x-spi.c2
3 files changed, 11 insertions, 13 deletions
diff --git a/drivers/mfd/wm831x-core.c b/drivers/mfd/wm831x-core.c
index f5e54fae8ada..838056c3493a 100644
--- a/drivers/mfd/wm831x-core.c
+++ b/drivers/mfd/wm831x-core.c
@@ -1631,7 +1631,7 @@ int wm831x_device_init(struct wm831x *wm831x, unsigned long id, int irq)
1631 ret = wm831x_reg_read(wm831x, WM831X_PARENT_ID); 1631 ret = wm831x_reg_read(wm831x, WM831X_PARENT_ID);
1632 if (ret < 0) { 1632 if (ret < 0) {
1633 dev_err(wm831x->dev, "Failed to read parent ID: %d\n", ret); 1633 dev_err(wm831x->dev, "Failed to read parent ID: %d\n", ret);
1634 goto err_regmap; 1634 goto err;
1635 } 1635 }
1636 switch (ret) { 1636 switch (ret) {
1637 case 0x6204: 1637 case 0x6204:
@@ -1640,20 +1640,20 @@ int wm831x_device_init(struct wm831x *wm831x, unsigned long id, int irq)
1640 default: 1640 default:
1641 dev_err(wm831x->dev, "Device is not a WM831x: ID %x\n", ret); 1641 dev_err(wm831x->dev, "Device is not a WM831x: ID %x\n", ret);
1642 ret = -EINVAL; 1642 ret = -EINVAL;
1643 goto err_regmap; 1643 goto err;
1644 } 1644 }
1645 1645
1646 ret = wm831x_reg_read(wm831x, WM831X_REVISION); 1646 ret = wm831x_reg_read(wm831x, WM831X_REVISION);
1647 if (ret < 0) { 1647 if (ret < 0) {
1648 dev_err(wm831x->dev, "Failed to read revision: %d\n", ret); 1648 dev_err(wm831x->dev, "Failed to read revision: %d\n", ret);
1649 goto err_regmap; 1649 goto err;
1650 } 1650 }
1651 rev = (ret & WM831X_PARENT_REV_MASK) >> WM831X_PARENT_REV_SHIFT; 1651 rev = (ret & WM831X_PARENT_REV_MASK) >> WM831X_PARENT_REV_SHIFT;
1652 1652
1653 ret = wm831x_reg_read(wm831x, WM831X_RESET_ID); 1653 ret = wm831x_reg_read(wm831x, WM831X_RESET_ID);
1654 if (ret < 0) { 1654 if (ret < 0) {
1655 dev_err(wm831x->dev, "Failed to read device ID: %d\n", ret); 1655 dev_err(wm831x->dev, "Failed to read device ID: %d\n", ret);
1656 goto err_regmap; 1656 goto err;
1657 } 1657 }
1658 1658
1659 /* Some engineering samples do not have the ID set, rely on 1659 /* Some engineering samples do not have the ID set, rely on
@@ -1728,7 +1728,7 @@ int wm831x_device_init(struct wm831x *wm831x, unsigned long id, int irq)
1728 default: 1728 default:
1729 dev_err(wm831x->dev, "Unknown WM831x device %04x\n", ret); 1729 dev_err(wm831x->dev, "Unknown WM831x device %04x\n", ret);
1730 ret = -EINVAL; 1730 ret = -EINVAL;
1731 goto err_regmap; 1731 goto err;
1732 } 1732 }
1733 1733
1734 /* This will need revisiting in future but is OK for all 1734 /* This will need revisiting in future but is OK for all
@@ -1742,7 +1742,7 @@ int wm831x_device_init(struct wm831x *wm831x, unsigned long id, int irq)
1742 ret = wm831x_reg_read(wm831x, WM831X_SECURITY_KEY); 1742 ret = wm831x_reg_read(wm831x, WM831X_SECURITY_KEY);
1743 if (ret < 0) { 1743 if (ret < 0) {
1744 dev_err(wm831x->dev, "Failed to read security key: %d\n", ret); 1744 dev_err(wm831x->dev, "Failed to read security key: %d\n", ret);
1745 goto err_regmap; 1745 goto err;
1746 } 1746 }
1747 if (ret != 0) { 1747 if (ret != 0) {
1748 dev_warn(wm831x->dev, "Security key had non-zero value %x\n", 1748 dev_warn(wm831x->dev, "Security key had non-zero value %x\n",
@@ -1755,7 +1755,7 @@ int wm831x_device_init(struct wm831x *wm831x, unsigned long id, int irq)
1755 ret = pdata->pre_init(wm831x); 1755 ret = pdata->pre_init(wm831x);
1756 if (ret != 0) { 1756 if (ret != 0) {
1757 dev_err(wm831x->dev, "pre_init() failed: %d\n", ret); 1757 dev_err(wm831x->dev, "pre_init() failed: %d\n", ret);
1758 goto err_regmap; 1758 goto err;
1759 } 1759 }
1760 } 1760 }
1761 1761
@@ -1778,7 +1778,7 @@ int wm831x_device_init(struct wm831x *wm831x, unsigned long id, int irq)
1778 1778
1779 ret = wm831x_irq_init(wm831x, irq); 1779 ret = wm831x_irq_init(wm831x, irq);
1780 if (ret != 0) 1780 if (ret != 0)
1781 goto err_regmap; 1781 goto err;
1782 1782
1783 wm831x_auxadc_init(wm831x); 1783 wm831x_auxadc_init(wm831x);
1784 1784
@@ -1874,9 +1874,8 @@ int wm831x_device_init(struct wm831x *wm831x, unsigned long id, int irq)
1874 1874
1875err_irq: 1875err_irq:
1876 wm831x_irq_exit(wm831x); 1876 wm831x_irq_exit(wm831x);
1877err_regmap: 1877err:
1878 mfd_remove_devices(wm831x->dev); 1878 mfd_remove_devices(wm831x->dev);
1879 regmap_exit(wm831x->regmap);
1880 return ret; 1879 return ret;
1881} 1880}
1882 1881
@@ -1887,7 +1886,6 @@ void wm831x_device_exit(struct wm831x *wm831x)
1887 if (wm831x->irq_base) 1886 if (wm831x->irq_base)
1888 free_irq(wm831x->irq_base + WM831X_IRQ_AUXADC_DATA, wm831x); 1887 free_irq(wm831x->irq_base + WM831X_IRQ_AUXADC_DATA, wm831x);
1889 wm831x_irq_exit(wm831x); 1888 wm831x_irq_exit(wm831x);
1890 regmap_exit(wm831x->regmap);
1891} 1889}
1892 1890
1893int wm831x_device_suspend(struct wm831x *wm831x) 1891int wm831x_device_suspend(struct wm831x *wm831x)
diff --git a/drivers/mfd/wm831x-i2c.c b/drivers/mfd/wm831x-i2c.c
index cb15609b0a48..2b29caebc9cf 100644
--- a/drivers/mfd/wm831x-i2c.c
+++ b/drivers/mfd/wm831x-i2c.c
@@ -37,7 +37,7 @@ static int wm831x_i2c_probe(struct i2c_client *i2c,
37 i2c_set_clientdata(i2c, wm831x); 37 i2c_set_clientdata(i2c, wm831x);
38 wm831x->dev = &i2c->dev; 38 wm831x->dev = &i2c->dev;
39 39
40 wm831x->regmap = regmap_init_i2c(i2c, &wm831x_regmap_config); 40 wm831x->regmap = devm_regmap_init_i2c(i2c, &wm831x_regmap_config);
41 if (IS_ERR(wm831x->regmap)) { 41 if (IS_ERR(wm831x->regmap)) {
42 ret = PTR_ERR(wm831x->regmap); 42 ret = PTR_ERR(wm831x->regmap);
43 dev_err(wm831x->dev, "Failed to allocate register map: %d\n", 43 dev_err(wm831x->dev, "Failed to allocate register map: %d\n",
diff --git a/drivers/mfd/wm831x-spi.c b/drivers/mfd/wm831x-spi.c
index 62ef3254105f..745c87945664 100644
--- a/drivers/mfd/wm831x-spi.c
+++ b/drivers/mfd/wm831x-spi.c
@@ -40,7 +40,7 @@ static int __devinit wm831x_spi_probe(struct spi_device *spi)
40 dev_set_drvdata(&spi->dev, wm831x); 40 dev_set_drvdata(&spi->dev, wm831x);
41 wm831x->dev = &spi->dev; 41 wm831x->dev = &spi->dev;
42 42
43 wm831x->regmap = regmap_init_spi(spi, &wm831x_regmap_config); 43 wm831x->regmap = devm_regmap_init_spi(spi, &wm831x_regmap_config);
44 if (IS_ERR(wm831x->regmap)) { 44 if (IS_ERR(wm831x->regmap)) {
45 ret = PTR_ERR(wm831x->regmap); 45 ret = PTR_ERR(wm831x->regmap);
46 dev_err(wm831x->dev, "Failed to allocate register map: %d\n", 46 dev_err(wm831x->dev, "Failed to allocate register map: %d\n",