Skip to content

Commit

Permalink
regulator: qcom_smd: Add MP5496 regulators
Browse files Browse the repository at this point in the history
IPQ6018 SoC uses the PMIC MP5496. SMPA2 and LDOA2 regulator controls the
APSS and SDCC voltage scaling respectively. Add support for the same.

Signed-off-by: Kathiravan T <kathirav@codeaurora.org>
Link: https://lore.kernel.org/r/1592889472-6843-5-git-send-email-kathirav@codeaurora.org
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
Kathiravan T authored and Mark Brown committed Jul 1, 2020
1 parent bfa29ac commit 47894c8
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions drivers/regulator/qcom_smd-regulator.c
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,15 @@ static const struct regulator_ops rpm_bob_ops = {
.set_voltage = rpm_reg_set_voltage,
};

static const struct regulator_ops rpm_mp5496_ops = {
.enable = rpm_reg_enable,
.disable = rpm_reg_disable,
.is_enabled = rpm_reg_is_enabled,
.list_voltage = regulator_list_voltage_linear_range,

.set_voltage = rpm_reg_set_voltage,
};

static const struct regulator_desc pma8084_hfsmps = {
.linear_ranges = (struct linear_range[]) {
REGULATOR_LINEAR_RANGE(375000, 0, 95, 12500),
Expand Down Expand Up @@ -586,6 +595,24 @@ static const struct regulator_desc pms405_pldo600 = {
.ops = &rpm_smps_ldo_ops,
};

static const struct regulator_desc mp5496_smpa2 = {
.linear_ranges = (struct linear_range[]) {
REGULATOR_LINEAR_RANGE(725000, 0, 27, 12500),
},
.n_linear_ranges = 1,
.n_voltages = 28,
.ops = &rpm_mp5496_ops,
};

static const struct regulator_desc mp5496_ldoa2 = {
.linear_ranges = (struct linear_range[]) {
REGULATOR_LINEAR_RANGE(1800000, 0, 60, 25000),
},
.n_linear_ranges = 1,
.n_voltages = 61,
.ops = &rpm_mp5496_ops,
};

struct rpm_regulator_data {
const char *name;
u32 type;
Expand All @@ -594,6 +621,12 @@ struct rpm_regulator_data {
const char *supply;
};

static const struct rpm_regulator_data rpm_mp5496_regulators[] = {
{ "s2", QCOM_SMD_RPM_SMPA, 2, &mp5496_smpa2, "s2" },
{ "l2", QCOM_SMD_RPM_LDOA, 2, &mp5496_ldoa2, "l2" },
{}
};

static const struct rpm_regulator_data rpm_pm8841_regulators[] = {
{ "s1", QCOM_SMD_RPM_SMPB, 1, &pm8x41_hfsmps, "vdd_s1" },
{ "s2", QCOM_SMD_RPM_SMPB, 2, &pm8841_ftsmps, "vdd_s2" },
Expand Down Expand Up @@ -892,6 +925,7 @@ static const struct rpm_regulator_data rpm_pms405_regulators[] = {
};

static const struct of_device_id rpm_of_match[] = {
{ .compatible = "qcom,rpm-mp5496-regulators", .data = &rpm_mp5496_regulators },
{ .compatible = "qcom,rpm-pm8841-regulators", .data = &rpm_pm8841_regulators },
{ .compatible = "qcom,rpm-pm8916-regulators", .data = &rpm_pm8916_regulators },
{ .compatible = "qcom,rpm-pm8941-regulators", .data = &rpm_pm8941_regulators },
Expand Down

0 comments on commit 47894c8

Please sign in to comment.