@@ -105,6 +105,24 @@ static struct rpmpd cx_s1a_corner_ao = {
105105 .key = KEY_CORNER ,
106106};
107107
108+ static struct rpmpd cx_s1a_lvl_ao ;
109+ static struct rpmpd cx_s1a_lvl = {
110+ .pd = { .name = "cx" , },
111+ .peer = & cx_s1a_lvl_ao ,
112+ .res_type = RPMPD_SMPA ,
113+ .res_id = 1 ,
114+ .key = KEY_LEVEL ,
115+ };
116+
117+ static struct rpmpd cx_s1a_lvl_ao = {
118+ .pd = { .name = "cx_ao" , },
119+ .peer = & cx_s1a_lvl ,
120+ .active_only = true,
121+ .res_type = RPMPD_SMPA ,
122+ .res_id = 1 ,
123+ .key = KEY_LEVEL ,
124+ };
125+
108126static struct rpmpd cx_s2a_corner_ao ;
109127static struct rpmpd cx_s2a_corner = {
110128 .pd = { .name = "cx" , },
@@ -180,6 +198,13 @@ static struct rpmpd cx_s1a_vfc = {
180198 .key = KEY_FLOOR_CORNER ,
181199};
182200
201+ static struct rpmpd cx_s1a_vfl = {
202+ .pd = { .name = "cx_vfl" , },
203+ .res_type = RPMPD_SMPA ,
204+ .res_id = 1 ,
205+ .key = KEY_FLOOR_LEVEL ,
206+ };
207+
183208static struct rpmpd cx_s2a_vfc = {
184209 .pd = { .name = "cx_vfc" , },
185210 .res_type = RPMPD_SMPA ,
@@ -239,6 +264,24 @@ static struct rpmpd gx_rwgx0_lvl_ao = {
239264};
240265
241266/* MX */
267+ static struct rpmpd mx_l2a_lvl_ao ;
268+ static struct rpmpd mx_l2a_lvl = {
269+ .pd = { .name = "mx" , },
270+ .peer = & mx_l2a_lvl_ao ,
271+ .res_type = RPMPD_LDOA ,
272+ .res_id = 2 ,
273+ .key = KEY_LEVEL ,
274+ };
275+
276+ static struct rpmpd mx_l2a_lvl_ao = {
277+ .pd = { .name = "mx_ao" , },
278+ .peer = & mx_l2a_lvl ,
279+ .active_only = true,
280+ .res_type = RPMPD_LDOA ,
281+ .res_id = 2 ,
282+ .key = KEY_LEVEL ,
283+ };
284+
242285static struct rpmpd mx_l3a_corner_ao ;
243286static struct rpmpd mx_l3a_corner = {
244287 .pd = { .name = "mx" , },
@@ -704,6 +747,20 @@ static const struct rpmpd_desc qcs404_desc = {
704747 .max_state = RPM_SMD_LEVEL_BINNING ,
705748};
706749
750+ static struct rpmpd * qm215_rpmpds [] = {
751+ [QM215_VDDCX ] = & cx_s1a_lvl ,
752+ [QM215_VDDCX_AO ] = & cx_s1a_lvl_ao ,
753+ [QM215_VDDCX_VFL ] = & cx_s1a_vfl ,
754+ [QM215_VDDMX ] = & mx_l2a_lvl ,
755+ [QM215_VDDMX_AO ] = & mx_l2a_lvl_ao ,
756+ };
757+
758+ static const struct rpmpd_desc qm215_desc = {
759+ .rpmpds = qm215_rpmpds ,
760+ .num_pds = ARRAY_SIZE (qm215_rpmpds ),
761+ .max_state = RPM_SMD_LEVEL_TURBO ,
762+ };
763+
707764static struct rpmpd * sdm660_rpmpds [] = {
708765 [SDM660_VDDCX ] = & cx_rwcx0_lvl ,
709766 [SDM660_VDDCX_AO ] = & cx_rwcx0_lvl_ao ,
@@ -805,6 +862,7 @@ static const struct of_device_id rpmpd_match_table[] = {
805862 { .compatible = "qcom,msm8998-rpmpd" , .data = & msm8998_desc },
806863 { .compatible = "qcom,qcm2290-rpmpd" , .data = & qcm2290_desc },
807864 { .compatible = "qcom,qcs404-rpmpd" , .data = & qcs404_desc },
865+ { .compatible = "qcom,qm215-rpmpd" , .data = & qm215_desc },
808866 { .compatible = "qcom,sdm660-rpmpd" , .data = & sdm660_desc },
809867 { .compatible = "qcom,sm6115-rpmpd" , .data = & sm6115_desc },
810868 { .compatible = "qcom,sm6125-rpmpd" , .data = & sm6125_desc },
0 commit comments