Skip to content

Commit 7547f9a

Browse files
z3ntustorulf
authored andcommitted
pmdomain: qcom: rpmpd: Add MSM8974+PM8841 power domains
Add the power domains CX & GFX found on devices with MSM8974 and PM8841. Signed-off-by: Luca Weiss <luca@z3ntu.xyz> Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> Link: https://lore.kernel.org/r/20240210-msm8974-rpmpd-v2-2-595e2ff80ea1@z3ntu.xyz Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
1 parent 4af6bc1 commit 7547f9a

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

drivers/pmdomain/qcom/rpmpd.c

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,31 @@ static struct rpmpd cx_s3a_vfl = {
227227
.key = KEY_FLOOR_LEVEL,
228228
};
229229

230+
static struct rpmpd cx_s2b_corner_ao;
231+
static struct rpmpd cx_s2b_corner = {
232+
.pd = { .name = "cx", },
233+
.peer = &cx_s2b_corner_ao,
234+
.res_type = RPMPD_SMPB,
235+
.res_id = 2,
236+
.key = KEY_CORNER,
237+
};
238+
239+
static struct rpmpd cx_s2b_corner_ao = {
240+
.pd = { .name = "cx_ao", },
241+
.peer = &cx_s2b_corner,
242+
.active_only = true,
243+
.res_type = RPMPD_SMPB,
244+
.res_id = 2,
245+
.key = KEY_CORNER,
246+
};
247+
248+
static struct rpmpd cx_s2b_vfc = {
249+
.pd = { .name = "cx_vfc", },
250+
.res_type = RPMPD_SMPB,
251+
.res_id = 2,
252+
.key = KEY_FLOOR_CORNER,
253+
};
254+
230255
/* G(F)X */
231256
static struct rpmpd gfx_s2b_corner = {
232257
.pd = { .name = "gfx", },
@@ -242,6 +267,20 @@ static struct rpmpd gfx_s2b_vfc = {
242267
.key = KEY_FLOOR_CORNER,
243268
};
244269

270+
static struct rpmpd gfx_s4b_corner = {
271+
.pd = { .name = "gfx", },
272+
.res_type = RPMPD_SMPB,
273+
.res_id = 4,
274+
.key = KEY_CORNER,
275+
};
276+
277+
static struct rpmpd gfx_s4b_vfc = {
278+
.pd = { .name = "gfx_vfc", },
279+
.res_type = RPMPD_SMPB,
280+
.res_id = 4,
281+
.key = KEY_FLOOR_CORNER,
282+
};
283+
245284
static struct rpmpd mx_rwmx0_lvl;
246285
static struct rpmpd gx_rwgx0_lvl_ao;
247286
static struct rpmpd gx_rwgx0_lvl = {
@@ -664,6 +703,20 @@ static const struct rpmpd_desc msm8953_desc = {
664703
.max_state = RPM_SMD_LEVEL_TURBO,
665704
};
666705

706+
static struct rpmpd *msm8974_rpmpds[] = {
707+
[MSM8974_VDDCX] = &cx_s2b_corner,
708+
[MSM8974_VDDCX_AO] = &cx_s2b_corner_ao,
709+
[MSM8974_VDDCX_VFC] = &cx_s2b_vfc,
710+
[MSM8974_VDDGFX] = &gfx_s4b_corner,
711+
[MSM8974_VDDGFX_VFC] = &gfx_s4b_vfc,
712+
};
713+
714+
static const struct rpmpd_desc msm8974_desc = {
715+
.rpmpds = msm8974_rpmpds,
716+
.num_pds = ARRAY_SIZE(msm8974_rpmpds),
717+
.max_state = MAX_CORNER_RPMPD_STATE,
718+
};
719+
667720
static struct rpmpd *msm8976_rpmpds[] = {
668721
[MSM8976_VDDCX] = &cx_s2a_lvl,
669722
[MSM8976_VDDCX_AO] = &cx_s2a_lvl_ao,
@@ -857,6 +910,7 @@ static const struct of_device_id rpmpd_match_table[] = {
857910
{ .compatible = "qcom,msm8917-rpmpd", .data = &msm8917_desc },
858911
{ .compatible = "qcom,msm8939-rpmpd", .data = &msm8939_desc },
859912
{ .compatible = "qcom,msm8953-rpmpd", .data = &msm8953_desc },
913+
{ .compatible = "qcom,msm8974-rpmpd", .data = &msm8974_desc },
860914
{ .compatible = "qcom,msm8976-rpmpd", .data = &msm8976_desc },
861915
{ .compatible = "qcom,msm8994-rpmpd", .data = &msm8994_desc },
862916
{ .compatible = "qcom,msm8996-rpmpd", .data = &msm8996_desc },

0 commit comments

Comments
 (0)