2012-06-07 02:38:39

by Axel Lin

[permalink] [raw]
Subject: [PATCH RFC/RFT] regulator: da903x: Don't read/write to DA9030_INVAL/DA9034_INVAL address

For fixed voltage, DA9030_LDO13 and DA9034_LDO5, the info->vol_reg is
DA9030_INVAL/DA9034_INVAL.
It does not make sense to read/write to DA9030_INVAL/DA9034_INVAL address.

Signed-off-by: Axel Lin <[email protected]>
---
Because we use [list|map]_voltage_linear for fixed voltage where uV_step is 0,
this patch also needs below patch:
[PATCH RFC 1/2] regulator: core: Allow uV_step to be 0 for linear mapping if fixed voltage

drivers/regulator/da903x.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/regulator/da903x.c b/drivers/regulator/da903x.c
index 1005f5f..36c5b92 100644
--- a/drivers/regulator/da903x.c
+++ b/drivers/regulator/da903x.c
@@ -107,6 +107,9 @@ static int da903x_set_voltage_sel(struct regulator_dev *rdev, unsigned selector)
struct device *da9034_dev = to_da903x_dev(rdev);
uint8_t val, mask;

+ if (rdev->desc->n_voltages == 1)
+ return -EINVAL;
+
val = selector << info->vol_shift;
mask = ((1 << info->vol_nbits) - 1) << info->vol_shift;

@@ -120,6 +123,9 @@ static int da903x_get_voltage_sel(struct regulator_dev *rdev)
uint8_t val, mask;
int ret;

+ if (rdev->desc->n_voltages == 1)
+ return 0;
+
ret = da903x_read(da9034_dev, info->vol_reg, &val);
if (ret)
return ret;
--
1.7.9.5



2012-06-08 00:53:37

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH RFC/RFT] regulator: da903x: Don't read/write to DA9030_INVAL/DA9034_INVAL address

On Thu, Jun 07, 2012 at 10:38:30AM +0800, Axel Lin wrote:
> For fixed voltage, DA9030_LDO13 and DA9034_LDO5, the info->vol_reg is
> DA9030_INVAL/DA9034_INVAL.
> It does not make sense to read/write to DA9030_INVAL/DA9034_INVAL address.

Applied, thanks.


Attachments:
(No filename) (254.00 B)
signature.asc (836.00 B)
Digital signature
Download all attachments