hc
2024-09-20 a36159eec6ca17402b0e146b86efaf76568dc353
kernel/drivers/regulator/rk806-regulator.c
....@@ -759,7 +759,7 @@
759759 struct rk806 *rk806 = pdata->rk806;
760760 int rid = rdev_get_id(rdev);
761761 int gpio_level, pid;
762
- unsigned int val;
762
+ int ret, val;
763763 int mode;
764764
765765 mode = get_dvs_mode(rdev);
....@@ -770,7 +770,12 @@
770770 return rk806_field_read(rk806, pdata->dvs_field[rid].sleep_en);
771771 }
772772
773
- val = rk806_field_read(rk806, pdata->dvs_field[rid].en_reg);
773
+ ret = rk806_field_read(rk806, pdata->dvs_field[rid].en_reg);
774
+ if (ret < 0)
775
+ return ret;
776
+
777
+ val = ret;
778
+
774779 return (val & rdev->desc->enable_val) != 0;
775780 }
776781
....@@ -942,6 +947,20 @@
942947 .set_suspend_disable = rk806_set_suspend_disable,
943948 };
944949
950
+static const struct regulator_ops rk806_ops_ldo6 = {
951
+ .list_voltage = regulator_list_voltage_linear_range,
952
+ .map_voltage = regulator_map_voltage_linear_range,
953
+
954
+ .get_voltage_sel = rk806_get_voltage_sel_regmap,
955
+ .set_voltage = rk806_set_voltage,
956
+ .set_voltage_time_sel = regulator_set_voltage_time_sel,
957
+
958
+ .set_ramp_delay = rk806_set_ramp_delay,
959
+
960
+ .set_suspend_voltage = rk806_set_suspend_voltage_range,
961
+ .resume = rk806_regulator_resume,
962
+};
963
+
945964 #define RK806_REGULATOR(_name, _supply_name, _id, _ops,\
946965 _n_voltages, _vr, _er, _lr, ctrl_bit)\
947966 [_id] = {\
....@@ -1033,7 +1052,7 @@
10331052 RK806_LDO_SEL_CNT, RK806_PLDO5_ON_VSEL,
10341053 RK806_POWER_EN5, rk806_ldo_voltage_ranges, 1),
10351054
1036
- RK806_REGULATOR("PLDO_REG6", "vcca", RK806_ID_PLDO6, rk806_ops_ldo,
1055
+ RK806_REGULATOR("PLDO_REG6", "vcca", RK806_ID_PLDO6, rk806_ops_ldo6,
10371056 RK806_LDO_SEL_CNT, RK806_PLDO6_ON_VSEL,
10381057 RK806_POWER_EN4, rk806_ldo_voltage_ranges, 0),
10391058 };