mirror of
https://github.com/torvalds/linux.git
synced 2026-09-25 17:42:03 +02:00
regulator: qcom-rpmh: Fix PMIC5 BOB bypass mode handling
Currently, when `rpmh_regulator_set_mode_bypass()` helper function
is called to set bypass mode, it sends PMIC4's BOB bypass mode
value for even if its a PMIC5 BOB.
To fix this, introduce new hw_data parameter`pmic_bypass_mode`
to store bypass mode value. Use it to send correct PMIC bypass
mode value that corresponds to PMIC4/5 BOB regulators from the
helper function.
Fixes: 610f29e5cc ("regulator: qcom-rpmh: Update PMIC modes for PMIC5")
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Kamal Wadhwa <kamal.wadhwa@oss.qualcomm.com>
Link: https://patch.msgid.link/20260801-b4-read-rpmh-v5-v6-2-9fcb54928523@oss.qualcomm.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
edbafe65ee
commit
abd14bebb8
|
|
@ -111,6 +111,7 @@ static const struct resource_name_formats vreg_rsc_name_lookup[NUM_REGULATOR_TYP
|
|||
* @hpm_min_load_uA: Minimum load current in microamps that requires
|
||||
* high power mode (HPM) operation. This is used
|
||||
* for LDO hardware type regulators only.
|
||||
* @pmic_bypass_mode: The PMIC bypass mode value.
|
||||
* @pmic_mode_map: Array indexed by regulator framework mode
|
||||
* containing PMIC hardware modes. Must be large
|
||||
* enough to index all framework modes supported
|
||||
|
|
@ -125,6 +126,7 @@ struct rpmh_vreg_hw_data {
|
|||
int n_linear_ranges;
|
||||
int n_voltages;
|
||||
int hpm_min_load_uA;
|
||||
int pmic_bypass_mode;
|
||||
const int *pmic_mode_map;
|
||||
unsigned int (*of_map_mode)(unsigned int mode);
|
||||
};
|
||||
|
|
@ -311,7 +313,7 @@ static int rpmh_regulator_vrm_set_mode_bypass(struct rpmh_vreg *vreg,
|
|||
return pmic_mode;
|
||||
|
||||
if (bypassed)
|
||||
cmd.data = PMIC4_BOB_MODE_PASS;
|
||||
cmd.data = vreg->hw_data->pmic_bypass_mode;
|
||||
else
|
||||
cmd.data = pmic_mode;
|
||||
|
||||
|
|
@ -767,6 +769,7 @@ static const struct rpmh_vreg_hw_data pmic4_bob = {
|
|||
},
|
||||
.n_linear_ranges = 1,
|
||||
.n_voltages = 84,
|
||||
.pmic_bypass_mode = PMIC4_BOB_MODE_PASS,
|
||||
.pmic_mode_map = pmic_mode_map_pmic4_bob,
|
||||
.of_map_mode = rpmh_regulator_pmic4_bob_of_map_mode,
|
||||
};
|
||||
|
|
@ -975,6 +978,7 @@ static const struct rpmh_vreg_hw_data pmic5_bob = {
|
|||
},
|
||||
.n_linear_ranges = 1,
|
||||
.n_voltages = 32,
|
||||
.pmic_bypass_mode = PMIC5_BOB_MODE_PASS,
|
||||
.pmic_mode_map = pmic_mode_map_pmic5_bob,
|
||||
.of_map_mode = rpmh_regulator_pmic4_bob_of_map_mode,
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user