regulator: qcom_spmi: add support for HT_P600
HT_P600 is a LDO PMOS regulator based on LV P600 using HFS430 layout found in PMP8074 and PMS405 PMIC-s. Both PMP8074 and PMS405 define the programmable range as 1.704 to 1.896V but the actual MAX output voltage depends on the exact LDO in each of the PMIC-s. Their usual voltage that they are used is 1.8V. It has a max current of 600mA, voltage step of 8mV. Signed-off-by: Robert Marko <robimarko@gmail.com> Link: https://lore.kernel.org/r/20220704212402.1715182-5-robimarko@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
00f6ebbd01
commit
3d04ae8e3e
|
@ -165,6 +165,7 @@ enum spmi_regulator_subtype {
|
||||||
SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL4 = 0x10,
|
SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL4 = 0x10,
|
||||||
SPMI_REGULATOR_SUBTYPE_HFS430 = 0x0a,
|
SPMI_REGULATOR_SUBTYPE_HFS430 = 0x0a,
|
||||||
SPMI_REGULATOR_SUBTYPE_HT_P150 = 0x35,
|
SPMI_REGULATOR_SUBTYPE_HT_P150 = 0x35,
|
||||||
|
SPMI_REGULATOR_SUBTYPE_HT_P600 = 0x3d,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum spmi_common_regulator_registers {
|
enum spmi_common_regulator_registers {
|
||||||
|
@ -549,6 +550,10 @@ static struct spmi_voltage_range ht_p150_ranges[] = {
|
||||||
SPMI_VOLTAGE_RANGE(0, 1616000, 1616000, 3304000, 3304000, 8000),
|
SPMI_VOLTAGE_RANGE(0, 1616000, 1616000, 3304000, 3304000, 8000),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct spmi_voltage_range ht_p600_ranges[] = {
|
||||||
|
SPMI_VOLTAGE_RANGE(0, 1704000, 1704000, 1896000, 1896000, 8000),
|
||||||
|
};
|
||||||
|
|
||||||
static DEFINE_SPMI_SET_POINTS(pldo);
|
static DEFINE_SPMI_SET_POINTS(pldo);
|
||||||
static DEFINE_SPMI_SET_POINTS(nldo1);
|
static DEFINE_SPMI_SET_POINTS(nldo1);
|
||||||
static DEFINE_SPMI_SET_POINTS(nldo2);
|
static DEFINE_SPMI_SET_POINTS(nldo2);
|
||||||
|
@ -570,6 +575,7 @@ static DEFINE_SPMI_SET_POINTS(ht_lvpldo);
|
||||||
static DEFINE_SPMI_SET_POINTS(ht_nldo);
|
static DEFINE_SPMI_SET_POINTS(ht_nldo);
|
||||||
static DEFINE_SPMI_SET_POINTS(hfs430);
|
static DEFINE_SPMI_SET_POINTS(hfs430);
|
||||||
static DEFINE_SPMI_SET_POINTS(ht_p150);
|
static DEFINE_SPMI_SET_POINTS(ht_p150);
|
||||||
|
static DEFINE_SPMI_SET_POINTS(ht_p600);
|
||||||
|
|
||||||
static inline int spmi_vreg_read(struct spmi_regulator *vreg, u16 addr, u8 *buf,
|
static inline int spmi_vreg_read(struct spmi_regulator *vreg, u16 addr, u8 *buf,
|
||||||
int len)
|
int len)
|
||||||
|
@ -1464,6 +1470,7 @@ static const struct regulator_ops spmi_hfs430_ops = {
|
||||||
|
|
||||||
static const struct spmi_regulator_mapping supported_regulators[] = {
|
static const struct spmi_regulator_mapping supported_regulators[] = {
|
||||||
/* type subtype dig_min dig_max ltype ops setpoints hpm_min */
|
/* type subtype dig_min dig_max ltype ops setpoints hpm_min */
|
||||||
|
SPMI_VREG(LDO, HT_P600, 0, INF, HFS430, hfs430, ht_p600, 10000),
|
||||||
SPMI_VREG(LDO, HT_P150, 0, INF, HFS430, hfs430, ht_p150, 10000),
|
SPMI_VREG(LDO, HT_P150, 0, INF, HFS430, hfs430, ht_p150, 10000),
|
||||||
SPMI_VREG(BUCK, GP_CTL, 0, INF, SMPS, smps, smps, 100000),
|
SPMI_VREG(BUCK, GP_CTL, 0, INF, SMPS, smps, smps, 100000),
|
||||||
SPMI_VREG(BUCK, HFS430, 0, INF, HFS430, hfs430, hfs430, 10000),
|
SPMI_VREG(BUCK, HFS430, 0, INF, HFS430, hfs430, hfs430, 10000),
|
||||||
|
|
Loading…
Reference in New Issue