Message ID | 20240703091651.2820236-6-quic_varada@quicinc.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Enable CPR for IPQ9574 | expand |
On 3.07.2024 11:16 AM, Varadarajan Narayanan wrote: > From: Praveenkumar I <quic_ipkumar@quicinc.com> > > Add the APC power domain definitions used in IPQ9574. > > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > Signed-off-by: Praveenkumar I <quic_ipkumar@quicinc.com> > Signed-off-by: Varadarajan Narayanan <quic_varada@quicinc.com> > --- > v4: Add Reviewed-by: Dmitry Baryshkov > v3: Fix patch author > v2: Fix Signed-off-by order > --- > drivers/pmdomain/qcom/rpmpd.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/drivers/pmdomain/qcom/rpmpd.c b/drivers/pmdomain/qcom/rpmpd.c > index 5e6280b4cf70..947d6a9c3897 100644 > --- a/drivers/pmdomain/qcom/rpmpd.c > +++ b/drivers/pmdomain/qcom/rpmpd.c > @@ -38,6 +38,7 @@ static struct qcom_smd_rpm *rpmpd_smd_rpm; > #define KEY_FLOOR_CORNER 0x636676 /* vfc */ > #define KEY_FLOOR_LEVEL 0x6c6676 /* vfl */ > #define KEY_LEVEL 0x6c766c76 /* vlvl */ > +#define RPM_KEY_UV 0x00007675 /* "uv" */ The "uv" key is handled in qcom_smd-regulator.c.. I'm assuming on this platform, it accepts level idx instead of the regulator properties and this is intentional? Konrad
On Tue, Jul 09, 2024 at 11:52:19AM +0200, Konrad Dybcio wrote: > On 3.07.2024 11:16 AM, Varadarajan Narayanan wrote: > > From: Praveenkumar I <quic_ipkumar@quicinc.com> > > > > Add the APC power domain definitions used in IPQ9574. > > > > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > Signed-off-by: Praveenkumar I <quic_ipkumar@quicinc.com> > > Signed-off-by: Varadarajan Narayanan <quic_varada@quicinc.com> > > --- > > v4: Add Reviewed-by: Dmitry Baryshkov > > v3: Fix patch author > > v2: Fix Signed-off-by order > > --- > > drivers/pmdomain/qcom/rpmpd.c | 19 +++++++++++++++++++ > > 1 file changed, 19 insertions(+) > > > > diff --git a/drivers/pmdomain/qcom/rpmpd.c b/drivers/pmdomain/qcom/rpmpd.c > > index 5e6280b4cf70..947d6a9c3897 100644 > > --- a/drivers/pmdomain/qcom/rpmpd.c > > +++ b/drivers/pmdomain/qcom/rpmpd.c > > @@ -38,6 +38,7 @@ static struct qcom_smd_rpm *rpmpd_smd_rpm; > > #define KEY_FLOOR_CORNER 0x636676 /* vfc */ > > #define KEY_FLOOR_LEVEL 0x6c6676 /* vfl */ > > #define KEY_LEVEL 0x6c766c76 /* vlvl */ > > +#define RPM_KEY_UV 0x00007675 /* "uv" */ > > The "uv" key is handled in qcom_smd-regulator.c.. I'm assuming on this > platform, it accepts level idx instead of the regulator properties > and this is intentional? IPQ9574 RPM accepts regulator properties (uv) and not the level idx. Hence added the "uv" key in the rpmpd.c Thanks Praveen/Varada
On Wed, 24 Jul 2024 at 07:27, Varadarajan Narayanan <quic_varada@quicinc.com> wrote: > > On Tue, Jul 09, 2024 at 11:52:19AM +0200, Konrad Dybcio wrote: > > On 3.07.2024 11:16 AM, Varadarajan Narayanan wrote: > > > From: Praveenkumar I <quic_ipkumar@quicinc.com> > > > > > > Add the APC power domain definitions used in IPQ9574. > > > > > > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > > Signed-off-by: Praveenkumar I <quic_ipkumar@quicinc.com> > > > Signed-off-by: Varadarajan Narayanan <quic_varada@quicinc.com> > > > --- > > > v4: Add Reviewed-by: Dmitry Baryshkov > > > v3: Fix patch author > > > v2: Fix Signed-off-by order > > > --- > > > drivers/pmdomain/qcom/rpmpd.c | 19 +++++++++++++++++++ > > > 1 file changed, 19 insertions(+) > > > > > > diff --git a/drivers/pmdomain/qcom/rpmpd.c b/drivers/pmdomain/qcom/rpmpd.c > > > index 5e6280b4cf70..947d6a9c3897 100644 > > > --- a/drivers/pmdomain/qcom/rpmpd.c > > > +++ b/drivers/pmdomain/qcom/rpmpd.c > > > @@ -38,6 +38,7 @@ static struct qcom_smd_rpm *rpmpd_smd_rpm; > > > #define KEY_FLOOR_CORNER 0x636676 /* vfc */ > > > #define KEY_FLOOR_LEVEL 0x6c6676 /* vfl */ > > > #define KEY_LEVEL 0x6c766c76 /* vlvl */ > > > +#define RPM_KEY_UV 0x00007675 /* "uv" */ > > > > The "uv" key is handled in qcom_smd-regulator.c.. I'm assuming on this > > platform, it accepts level idx instead of the regulator properties > > and this is intentional? > > IPQ9574 RPM accepts regulator properties (uv) and not the level idx. > Hence added the "uv" key in the rpmpd.c Does it expect the actual voltage? If so, then it is not a power domain and it should be modelled as a regulator instead.
diff --git a/drivers/pmdomain/qcom/rpmpd.c b/drivers/pmdomain/qcom/rpmpd.c index 5e6280b4cf70..947d6a9c3897 100644 --- a/drivers/pmdomain/qcom/rpmpd.c +++ b/drivers/pmdomain/qcom/rpmpd.c @@ -38,6 +38,7 @@ static struct qcom_smd_rpm *rpmpd_smd_rpm; #define KEY_FLOOR_CORNER 0x636676 /* vfc */ #define KEY_FLOOR_LEVEL 0x6c6676 /* vfl */ #define KEY_LEVEL 0x6c766c76 /* vlvl */ +#define RPM_KEY_UV 0x00007675 /* "uv" */ #define MAX_CORNER_RPMPD_STATE 6 @@ -644,6 +645,23 @@ static const struct rpmpd_desc mdm9607_desc = { .max_state = RPM_SMD_LEVEL_TURBO, }; +static struct rpmpd apc_s1_lvl = { + .pd = { .name = "apc", }, + .res_type = RPMPD_SMPA, + .res_id = 1, + .key = RPM_KEY_UV, +}; + +static struct rpmpd *ipq9574_rpmpds[] = { + [IPQ9574_VDDAPC] = &apc_s1_lvl, +}; + +static const struct rpmpd_desc ipq9574_desc = { + .rpmpds = ipq9574_rpmpds, + .num_pds = ARRAY_SIZE(ipq9574_rpmpds), + .max_state = RPM_SMD_LEVEL_TURBO_HIGH, +}; + static struct rpmpd *msm8226_rpmpds[] = { [MSM8226_VDDCX] = &cx_s1a_corner, [MSM8226_VDDCX_AO] = &cx_s1a_corner_ao, @@ -931,6 +949,7 @@ static const struct rpmpd_desc qcm2290_desc = { }; static const struct of_device_id rpmpd_match_table[] = { + { .compatible = "qcom,ipq9574-rpmpd", .data = &ipq9574_desc }, { .compatible = "qcom,mdm9607-rpmpd", .data = &mdm9607_desc }, { .compatible = "qcom,msm8226-rpmpd", .data = &msm8226_desc }, { .compatible = "qcom,msm8909-rpmpd", .data = &msm8916_desc },