mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-29 17:22:07 +00:00
regulator: axp20x: AXP717: set ramp_delay
AXP717 datasheet says that regulator ramp delay is 15.625 us/step,
which is 10mV in our case.
Add a AXP_DESC_RANGES_DELAY macro and update AXP_DESC_RANGES macro to
expand to AXP_DESC_RANGES_DELAY with ramp_delay = 0
For DCDC4, steps is 100mv
Add a AXP_DESC_DELAY macro and update AXP_DESC macro to
expand to AXP_DESC_DELAY with ramp_delay = 0
This patch fix crashes when using CPU DVFS.
Signed-off-by: Philippe Simons <simons.philippe@gmail.com>
Tested-by: Hironori KIKUCHI <kikuchan98@gmail.com>
Tested-by: Chris Morgan <macromorgan@hotmail.com>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Fixes: d2ac3df75c
("regulator: axp20x: add support for the AXP717")
Link: https://patch.msgid.link/20241208124308.5630-1-simons.philippe@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
8099b1f7e3
commit
f07ae52f5c
@ -371,8 +371,8 @@
|
||||
.ops = &axp20x_ops, \
|
||||
}
|
||||
|
||||
#define AXP_DESC(_family, _id, _match, _supply, _min, _max, _step, _vreg, \
|
||||
_vmask, _ereg, _emask) \
|
||||
#define AXP_DESC_DELAY(_family, _id, _match, _supply, _min, _max, _step, _vreg, \
|
||||
_vmask, _ereg, _emask, _ramp_delay) \
|
||||
[_family##_##_id] = { \
|
||||
.name = (_match), \
|
||||
.supply_name = (_supply), \
|
||||
@ -388,9 +388,15 @@
|
||||
.vsel_mask = (_vmask), \
|
||||
.enable_reg = (_ereg), \
|
||||
.enable_mask = (_emask), \
|
||||
.ramp_delay = (_ramp_delay), \
|
||||
.ops = &axp20x_ops, \
|
||||
}
|
||||
|
||||
#define AXP_DESC(_family, _id, _match, _supply, _min, _max, _step, _vreg, \
|
||||
_vmask, _ereg, _emask) \
|
||||
AXP_DESC_DELAY(_family, _id, _match, _supply, _min, _max, _step, _vreg, \
|
||||
_vmask, _ereg, _emask, 0)
|
||||
|
||||
#define AXP_DESC_SW(_family, _id, _match, _supply, _ereg, _emask) \
|
||||
[_family##_##_id] = { \
|
||||
.name = (_match), \
|
||||
@ -419,8 +425,8 @@
|
||||
.ops = &axp20x_ops_fixed \
|
||||
}
|
||||
|
||||
#define AXP_DESC_RANGES(_family, _id, _match, _supply, _ranges, _n_voltages, \
|
||||
_vreg, _vmask, _ereg, _emask) \
|
||||
#define AXP_DESC_RANGES_DELAY(_family, _id, _match, _supply, _ranges, _n_voltages, \
|
||||
_vreg, _vmask, _ereg, _emask, _ramp_delay) \
|
||||
[_family##_##_id] = { \
|
||||
.name = (_match), \
|
||||
.supply_name = (_supply), \
|
||||
@ -436,9 +442,15 @@
|
||||
.enable_mask = (_emask), \
|
||||
.linear_ranges = (_ranges), \
|
||||
.n_linear_ranges = ARRAY_SIZE(_ranges), \
|
||||
.ramp_delay = (_ramp_delay), \
|
||||
.ops = &axp20x_ops_range, \
|
||||
}
|
||||
|
||||
#define AXP_DESC_RANGES(_family, _id, _match, _supply, _ranges, _n_voltages, \
|
||||
_vreg, _vmask, _ereg, _emask) \
|
||||
AXP_DESC_RANGES_DELAY(_family, _id, _match, _supply, _ranges, \
|
||||
_n_voltages, _vreg, _vmask, _ereg, _emask, 0)
|
||||
|
||||
static const int axp209_dcdc2_ldo3_slew_rates[] = {
|
||||
1600,
|
||||
800,
|
||||
@ -781,21 +793,21 @@ static const struct linear_range axp717_dcdc3_ranges[] = {
|
||||
};
|
||||
|
||||
static const struct regulator_desc axp717_regulators[] = {
|
||||
AXP_DESC_RANGES(AXP717, DCDC1, "dcdc1", "vin1",
|
||||
AXP_DESC_RANGES_DELAY(AXP717, DCDC1, "dcdc1", "vin1",
|
||||
axp717_dcdc1_ranges, AXP717_DCDC1_NUM_VOLTAGES,
|
||||
AXP717_DCDC1_CONTROL, AXP717_DCDC_V_OUT_MASK,
|
||||
AXP717_DCDC_OUTPUT_CONTROL, BIT(0)),
|
||||
AXP_DESC_RANGES(AXP717, DCDC2, "dcdc2", "vin2",
|
||||
AXP717_DCDC_OUTPUT_CONTROL, BIT(0), 640),
|
||||
AXP_DESC_RANGES_DELAY(AXP717, DCDC2, "dcdc2", "vin2",
|
||||
axp717_dcdc2_ranges, AXP717_DCDC2_NUM_VOLTAGES,
|
||||
AXP717_DCDC2_CONTROL, AXP717_DCDC_V_OUT_MASK,
|
||||
AXP717_DCDC_OUTPUT_CONTROL, BIT(1)),
|
||||
AXP_DESC_RANGES(AXP717, DCDC3, "dcdc3", "vin3",
|
||||
AXP717_DCDC_OUTPUT_CONTROL, BIT(1), 640),
|
||||
AXP_DESC_RANGES_DELAY(AXP717, DCDC3, "dcdc3", "vin3",
|
||||
axp717_dcdc3_ranges, AXP717_DCDC3_NUM_VOLTAGES,
|
||||
AXP717_DCDC3_CONTROL, AXP717_DCDC_V_OUT_MASK,
|
||||
AXP717_DCDC_OUTPUT_CONTROL, BIT(2)),
|
||||
AXP_DESC(AXP717, DCDC4, "dcdc4", "vin4", 1000, 3700, 100,
|
||||
AXP717_DCDC_OUTPUT_CONTROL, BIT(2), 640),
|
||||
AXP_DESC_DELAY(AXP717, DCDC4, "dcdc4", "vin4", 1000, 3700, 100,
|
||||
AXP717_DCDC4_CONTROL, AXP717_DCDC_V_OUT_MASK,
|
||||
AXP717_DCDC_OUTPUT_CONTROL, BIT(3)),
|
||||
AXP717_DCDC_OUTPUT_CONTROL, BIT(3), 6400),
|
||||
AXP_DESC(AXP717, ALDO1, "aldo1", "aldoin", 500, 3500, 100,
|
||||
AXP717_ALDO1_CONTROL, AXP717_LDO_V_OUT_MASK,
|
||||
AXP717_LDO0_OUTPUT_CONTROL, BIT(0)),
|
||||
|
Loading…
Reference in New Issue
Block a user