regulator: Fix set and get current limit for wm831x_buckv
PATCH 1/1 regulator: Fix set and get current limit for wm831x_buckv
WM831X_DC1_HC_THR_MASK is 0x0070.
We need to do proper shift for setting and getting current limit.
Signed-off-by Axel Lin <[email protected]>
--- drivers/regulator/wm831x-dcdc.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-)
drivers/regulator/wm831x-dcdc.c +4 -2
@@ -386,7 +386,8 @@ static int wm831x_buckv_set_current_limit(struct regulator_dev *rdev,if (i ==ARRAY_SIZE (wm831x_dcdc_ilim))return -EINVAL ; -return wm831x_set_bits (wm831x, reg,WM831X_DC1_HC_THR_MASK , i); +return wm831x_set_bits (wm831x, reg,WM831X_DC1_HC_THR_MASK , + i <<WM831X_DC1_HC_THR_SHIFT ); }static int wm831x_buckv_get_current_limit (struct regulator_dev *rdev)
@@ -400,7 +401,8 @@ static int wm831x_buckv_get_current_limit(struct regulator_dev *rdev)if (val <0 )return val; -return wm831x_dcdc_ilim[val &WM831X_DC1_HC_THR_MASK ]; + val = (val &WM831X_DC1_HC_THR_MASK ) >>WM831X_DC1_HC_THR_SHIFT ; +return wm831x_dcdc_ilim[val]; }static struct regulator_ops wm831x_buckv_ops = {
Signature · 1 line
1.7.5.4
Mark Brown
AppliedQuoted 2 lines · Axel Lin
WM831X_DC1_HC_THR_MASKis0x0070.
We need to do proper shift for setting and getting current limit.
Applied, thanks.