diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-04-15 07:38:52 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2012-04-16 14:53:03 -0400 |
commit | ca8c361b4aadcf4379c09fc3de3606cab671722a (patch) | |
tree | 0735e1393a50af63256179098515128c91a3fca0 /drivers/regulator/wm831x-ldo.c | |
parent | 3d138fccc4066e00419d2638081011ea6da3f6a7 (diff) |
regulator: wm831x-ldo: Use generic regmap enable/disable operations
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Diffstat (limited to 'drivers/regulator/wm831x-ldo.c')
-rw-r--r-- | drivers/regulator/wm831x-ldo.c | 59 |
1 files changed, 15 insertions, 44 deletions
diff --git a/drivers/regulator/wm831x-ldo.c b/drivers/regulator/wm831x-ldo.c index 364b7d8ac54d..932eff845207 100644 --- a/drivers/regulator/wm831x-ldo.c +++ b/drivers/regulator/wm831x-ldo.c | |||
@@ -46,41 +46,6 @@ struct wm831x_ldo { | |||
46 | * Shared | 46 | * Shared |
47 | */ | 47 | */ |
48 | 48 | ||
49 | static int wm831x_ldo_is_enabled(struct regulator_dev *rdev) | ||
50 | { | ||
51 | struct wm831x_ldo *ldo = rdev_get_drvdata(rdev); | ||
52 | struct wm831x *wm831x = ldo->wm831x; | ||
53 | int mask = 1 << rdev_get_id(rdev); | ||
54 | int reg; | ||
55 | |||
56 | reg = wm831x_reg_read(wm831x, WM831X_LDO_ENABLE); | ||
57 | if (reg < 0) | ||
58 | return reg; | ||
59 | |||
60 | if (reg & mask) | ||
61 | return 1; | ||
62 | else | ||
63 | return 0; | ||
64 | } | ||
65 | |||
66 | static int wm831x_ldo_enable(struct regulator_dev *rdev) | ||
67 | { | ||
68 | struct wm831x_ldo *ldo = rdev_get_drvdata(rdev); | ||
69 | struct wm831x *wm831x = ldo->wm831x; | ||
70 | int mask = 1 << rdev_get_id(rdev); | ||
71 | |||
72 | return wm831x_set_bits(wm831x, WM831X_LDO_ENABLE, mask, mask); | ||
73 | } | ||
74 | |||
75 | static int wm831x_ldo_disable(struct regulator_dev *rdev) | ||
76 | { | ||
77 | struct wm831x_ldo *ldo = rdev_get_drvdata(rdev); | ||
78 | struct wm831x *wm831x = ldo->wm831x; | ||
79 | int mask = 1 << rdev_get_id(rdev); | ||
80 | |||
81 | return wm831x_set_bits(wm831x, WM831X_LDO_ENABLE, mask, 0); | ||
82 | } | ||
83 | |||
84 | static irqreturn_t wm831x_ldo_uv_irq(int irq, void *data) | 49 | static irqreturn_t wm831x_ldo_uv_irq(int irq, void *data) |
85 | { | 50 | { |
86 | struct wm831x_ldo *ldo = data; | 51 | struct wm831x_ldo *ldo = data; |
@@ -285,9 +250,9 @@ static struct regulator_ops wm831x_gp_ldo_ops = { | |||
285 | .get_status = wm831x_gp_ldo_get_status, | 250 | .get_status = wm831x_gp_ldo_get_status, |
286 | .get_optimum_mode = wm831x_gp_ldo_get_optimum_mode, | 251 | .get_optimum_mode = wm831x_gp_ldo_get_optimum_mode, |
287 | 252 | ||
288 | .is_enabled = wm831x_ldo_is_enabled, | 253 | .is_enabled = regulator_is_enabled_regmap, |
289 | .enable = wm831x_ldo_enable, | 254 | .enable = regulator_enable_regmap, |
290 | .disable = wm831x_ldo_disable, | 255 | .disable = regulator_disable_regmap, |
291 | }; | 256 | }; |
292 | 257 | ||
293 | static __devinit int wm831x_gp_ldo_probe(struct platform_device *pdev) | 258 | static __devinit int wm831x_gp_ldo_probe(struct platform_device *pdev) |
@@ -336,6 +301,8 @@ static __devinit int wm831x_gp_ldo_probe(struct platform_device *pdev) | |||
336 | ldo->desc.owner = THIS_MODULE; | 301 | ldo->desc.owner = THIS_MODULE; |
337 | ldo->desc.vsel_reg = ldo->base + WM831X_LDO_ON_CONTROL; | 302 | ldo->desc.vsel_reg = ldo->base + WM831X_LDO_ON_CONTROL; |
338 | ldo->desc.vsel_mask = WM831X_LDO1_ON_VSEL_MASK; | 303 | ldo->desc.vsel_mask = WM831X_LDO1_ON_VSEL_MASK; |
304 | ldo->desc.enable_reg = WM831X_LDO_ENABLE; | ||
305 | ldo->desc.enable_mask = 1 << id; | ||
339 | 306 | ||
340 | config.dev = pdev->dev.parent; | 307 | config.dev = pdev->dev.parent; |
341 | config.init_data = pdata->ldo[id]; | 308 | config.init_data = pdata->ldo[id]; |
@@ -541,9 +508,9 @@ static struct regulator_ops wm831x_aldo_ops = { | |||
541 | .set_mode = wm831x_aldo_set_mode, | 508 | .set_mode = wm831x_aldo_set_mode, |
542 | .get_status = wm831x_aldo_get_status, | 509 | .get_status = wm831x_aldo_get_status, |
543 | 510 | ||
544 | .is_enabled = wm831x_ldo_is_enabled, | 511 | .is_enabled = regulator_is_enabled_regmap, |
545 | .enable = wm831x_ldo_enable, | 512 | .enable = regulator_enable_regmap, |
546 | .disable = wm831x_ldo_disable, | 513 | .disable = regulator_disable_regmap, |
547 | }; | 514 | }; |
548 | 515 | ||
549 | static __devinit int wm831x_aldo_probe(struct platform_device *pdev) | 516 | static __devinit int wm831x_aldo_probe(struct platform_device *pdev) |
@@ -592,6 +559,8 @@ static __devinit int wm831x_aldo_probe(struct platform_device *pdev) | |||
592 | ldo->desc.owner = THIS_MODULE; | 559 | ldo->desc.owner = THIS_MODULE; |
593 | ldo->desc.vsel_reg = ldo->base + WM831X_LDO_ON_CONTROL; | 560 | ldo->desc.vsel_reg = ldo->base + WM831X_LDO_ON_CONTROL; |
594 | ldo->desc.vsel_mask = WM831X_LDO7_ON_VSEL_MASK; | 561 | ldo->desc.vsel_mask = WM831X_LDO7_ON_VSEL_MASK; |
562 | ldo->desc.enable_reg = WM831X_LDO_ENABLE; | ||
563 | ldo->desc.enable_mask = 1 << id; | ||
595 | 564 | ||
596 | config.dev = pdev->dev.parent; | 565 | config.dev = pdev->dev.parent; |
597 | config.init_data = pdata->ldo[id]; | 566 | config.init_data = pdata->ldo[id]; |
@@ -726,9 +695,9 @@ static struct regulator_ops wm831x_alive_ldo_ops = { | |||
726 | .set_suspend_voltage = wm831x_alive_ldo_set_suspend_voltage, | 695 | .set_suspend_voltage = wm831x_alive_ldo_set_suspend_voltage, |
727 | .get_status = wm831x_alive_ldo_get_status, | 696 | .get_status = wm831x_alive_ldo_get_status, |
728 | 697 | ||
729 | .is_enabled = wm831x_ldo_is_enabled, | 698 | .is_enabled = regulator_is_enabled_regmap, |
730 | .enable = wm831x_ldo_enable, | 699 | .enable = regulator_enable_regmap, |
731 | .disable = wm831x_ldo_disable, | 700 | .disable = regulator_disable_regmap, |
732 | }; | 701 | }; |
733 | 702 | ||
734 | static __devinit int wm831x_alive_ldo_probe(struct platform_device *pdev) | 703 | static __devinit int wm831x_alive_ldo_probe(struct platform_device *pdev) |
@@ -778,6 +747,8 @@ static __devinit int wm831x_alive_ldo_probe(struct platform_device *pdev) | |||
778 | ldo->desc.owner = THIS_MODULE; | 747 | ldo->desc.owner = THIS_MODULE; |
779 | ldo->desc.vsel_reg = ldo->base + WM831X_ALIVE_LDO_ON_CONTROL; | 748 | ldo->desc.vsel_reg = ldo->base + WM831X_ALIVE_LDO_ON_CONTROL; |
780 | ldo->desc.vsel_mask = WM831X_LDO11_ON_VSEL_MASK; | 749 | ldo->desc.vsel_mask = WM831X_LDO11_ON_VSEL_MASK; |
750 | ldo->desc.enable_reg = WM831X_LDO_ENABLE; | ||
751 | ldo->desc.enable_mask = 1 << id; | ||
781 | 752 | ||
782 | config.dev = pdev->dev.parent; | 753 | config.dev = pdev->dev.parent; |
783 | config.init_data = pdata->ldo[id]; | 754 | config.init_data = pdata->ldo[id]; |