@@ -511,6 +511,14 @@ static const int pmic_mode_map_pmic5_ldo[REGULATOR_MODE_STANDBY + 1] = {
511
511
[REGULATOR_MODE_FAST ] = - EINVAL ,
512
512
};
513
513
514
+ static const int pmic_mode_map_pmic5_ldo_hpm [REGULATOR_MODE_STANDBY + 1 ] = {
515
+ [REGULATOR_MODE_INVALID ] = - EINVAL ,
516
+ [REGULATOR_MODE_STANDBY ] = - EINVAL ,
517
+ [REGULATOR_MODE_IDLE ] = - EINVAL ,
518
+ [REGULATOR_MODE_NORMAL ] = PMIC5_LDO_MODE_HPM ,
519
+ [REGULATOR_MODE_FAST ] = - EINVAL ,
520
+ };
521
+
514
522
static unsigned int rpmh_regulator_pmic4_ldo_of_map_mode (unsigned int rpmh_mode )
515
523
{
516
524
unsigned int mode ;
@@ -733,6 +741,33 @@ static const struct rpmh_vreg_hw_data pmic5_pldo515_mv = {
733
741
.of_map_mode = rpmh_regulator_pmic4_ldo_of_map_mode ,
734
742
};
735
743
744
+ static const struct rpmh_vreg_hw_data pmic5_pldo502 = {
745
+ .regulator_type = VRM ,
746
+ .ops = & rpmh_regulator_vrm_ops ,
747
+ .voltage_ranges = (struct linear_range []) {
748
+ REGULATOR_LINEAR_RANGE (1504000 , 0 , 255 , 8000 ),
749
+ },
750
+ .n_linear_ranges = 1 ,
751
+ .n_voltages = 256 ,
752
+ .pmic_mode_map = pmic_mode_map_pmic5_ldo_hpm ,
753
+ .of_map_mode = rpmh_regulator_pmic4_ldo_of_map_mode ,
754
+ };
755
+
756
+ static const struct rpmh_vreg_hw_data pmic5_pldo502ln = {
757
+ .regulator_type = VRM ,
758
+ .ops = & rpmh_regulator_vrm_ops ,
759
+ .voltage_ranges = (struct linear_range []) {
760
+ REGULATOR_LINEAR_RANGE (1800000 , 0 , 2 , 200000 ),
761
+ REGULATOR_LINEAR_RANGE (2608000 , 3 , 28 , 16000 ),
762
+ REGULATOR_LINEAR_RANGE (3104000 , 29 , 30 , 96000 ),
763
+ REGULATOR_LINEAR_RANGE (3312000 , 31 , 31 , 0 ),
764
+ },
765
+ .n_linear_ranges = 4 ,
766
+ .n_voltages = 32 ,
767
+ .pmic_mode_map = pmic_mode_map_pmic5_ldo_hpm ,
768
+ .of_map_mode = rpmh_regulator_pmic4_ldo_of_map_mode ,
769
+ };
770
+
736
771
static const struct rpmh_vreg_hw_data pmic5_nldo = {
737
772
.regulator_type = VRM ,
738
773
.ops = & rpmh_regulator_vrm_drms_ops ,
@@ -759,6 +794,19 @@ static const struct rpmh_vreg_hw_data pmic5_nldo515 = {
759
794
.of_map_mode = rpmh_regulator_pmic4_ldo_of_map_mode ,
760
795
};
761
796
797
+ static const struct rpmh_vreg_hw_data pmic5_nldo502 = {
798
+ .regulator_type = VRM ,
799
+ .ops = & rpmh_regulator_vrm_drms_ops ,
800
+ .voltage_ranges = (struct linear_range []) {
801
+ REGULATOR_LINEAR_RANGE (528000 , 0 , 127 , 8000 ),
802
+ },
803
+ .n_linear_ranges = 1 ,
804
+ .n_voltages = 128 ,
805
+ .hpm_min_load_uA = 30000 ,
806
+ .pmic_mode_map = pmic_mode_map_pmic5_ldo ,
807
+ .of_map_mode = rpmh_regulator_pmic4_ldo_of_map_mode ,
808
+ };
809
+
762
810
static const struct rpmh_vreg_hw_data pmic5_hfsmps510 = {
763
811
.regulator_type = VRM ,
764
812
.ops = & rpmh_regulator_vrm_ops ,
@@ -1210,6 +1258,16 @@ static const struct rpmh_vreg_init_data pm8009_1_vreg_data[] = {
1210
1258
{}
1211
1259
};
1212
1260
1261
+ static const struct rpmh_vreg_init_data pm8010_vreg_data [] = {
1262
+ RPMH_VREG ("ldo1" , "ldo%s1" , & pmic5_nldo502 , "vdd-l1-l2" ),
1263
+ RPMH_VREG ("ldo2" , "ldo%s2" , & pmic5_nldo502 , "vdd-l1-l2" ),
1264
+ RPMH_VREG ("ldo3" , "ldo%s3" , & pmic5_pldo502ln , "vdd-l3-l4" ),
1265
+ RPMH_VREG ("ldo4" , "ldo%s4" , & pmic5_pldo502ln , "vdd-l3-l4" ),
1266
+ RPMH_VREG ("ldo5" , "ldo%s5" , & pmic5_pldo502 , "vdd-l5" ),
1267
+ RPMH_VREG ("ldo6" , "ldo%s6" , & pmic5_pldo502ln , "vdd-l6" ),
1268
+ RPMH_VREG ("ldo7" , "ldo%s7" , & pmic5_pldo502 , "vdd-l7" ),
1269
+ };
1270
+
1213
1271
static const struct rpmh_vreg_init_data pm6150_vreg_data [] = {
1214
1272
RPMH_VREG ("smps1" , "smp%s1" , & pmic5_ftsmps510 , "vdd-s1" ),
1215
1273
RPMH_VREG ("smps2" , "smp%s2" , & pmic5_ftsmps510 , "vdd-s2" ),
@@ -1525,6 +1583,10 @@ static const struct of_device_id __maybe_unused rpmh_regulator_match_table[] = {
1525
1583
.compatible = "qcom,pm8009-1-rpmh-regulators" ,
1526
1584
.data = pm8009_1_vreg_data ,
1527
1585
},
1586
+ {
1587
+ .compatible = "qcom,pm8010-rpmh-regulators" ,
1588
+ .data = pm8010_vreg_data ,
1589
+ },
1528
1590
{
1529
1591
.compatible = "qcom,pm8150-rpmh-regulators" ,
1530
1592
.data = pm8150_vreg_data ,
0 commit comments