@@ -486,24 +486,6 @@ static int spmi_vreg_update_bits(struct spmi_regulator *vreg, u16 addr, u8 val,
486
486
return regmap_update_bits (vreg -> regmap , vreg -> base + addr , mask , val );
487
487
}
488
488
489
- static int spmi_regulator_common_is_enabled (struct regulator_dev * rdev )
490
- {
491
- struct spmi_regulator * vreg = rdev_get_drvdata (rdev );
492
- u8 reg ;
493
-
494
- spmi_vreg_read (vreg , SPMI_COMMON_REG_ENABLE , & reg , 1 );
495
-
496
- return (reg & SPMI_COMMON_ENABLE_MASK ) == SPMI_COMMON_ENABLE ;
497
- }
498
-
499
- static int spmi_regulator_common_enable (struct regulator_dev * rdev )
500
- {
501
- struct spmi_regulator * vreg = rdev_get_drvdata (rdev );
502
-
503
- return spmi_vreg_update_bits (vreg , SPMI_COMMON_REG_ENABLE ,
504
- SPMI_COMMON_ENABLE , SPMI_COMMON_ENABLE_MASK );
505
- }
506
-
507
489
static int spmi_regulator_vs_enable (struct regulator_dev * rdev )
508
490
{
509
491
struct spmi_regulator * vreg = rdev_get_drvdata (rdev );
@@ -513,7 +495,7 @@ static int spmi_regulator_vs_enable(struct regulator_dev *rdev)
513
495
vreg -> vs_enable_time = ktime_get ();
514
496
}
515
497
516
- return spmi_regulator_common_enable (rdev );
498
+ return regulator_enable_regmap (rdev );
517
499
}
518
500
519
501
static int spmi_regulator_vs_ocp (struct regulator_dev * rdev )
@@ -524,14 +506,6 @@ static int spmi_regulator_vs_ocp(struct regulator_dev *rdev)
524
506
return spmi_vreg_write (vreg , SPMI_VS_REG_OCP , & reg , 1 );
525
507
}
526
508
527
- static int spmi_regulator_common_disable (struct regulator_dev * rdev )
528
- {
529
- struct spmi_regulator * vreg = rdev_get_drvdata (rdev );
530
-
531
- return spmi_vreg_update_bits (vreg , SPMI_COMMON_REG_ENABLE ,
532
- SPMI_COMMON_DISABLE , SPMI_COMMON_ENABLE_MASK );
533
- }
534
-
535
509
static int spmi_regulator_select_voltage (struct spmi_regulator * vreg ,
536
510
int min_uV , int max_uV )
537
511
{
@@ -1062,9 +1036,9 @@ static irqreturn_t spmi_regulator_vs_ocp_isr(int irq, void *data)
1062
1036
}
1063
1037
1064
1038
static struct regulator_ops spmi_smps_ops = {
1065
- .enable = spmi_regulator_common_enable ,
1066
- .disable = spmi_regulator_common_disable ,
1067
- .is_enabled = spmi_regulator_common_is_enabled ,
1039
+ .enable = regulator_enable_regmap ,
1040
+ .disable = regulator_disable_regmap ,
1041
+ .is_enabled = regulator_is_enabled_regmap ,
1068
1042
.set_voltage_sel = spmi_regulator_common_set_voltage ,
1069
1043
.set_voltage_time_sel = spmi_regulator_set_voltage_time_sel ,
1070
1044
.get_voltage_sel = spmi_regulator_common_get_voltage ,
@@ -1077,9 +1051,9 @@ static struct regulator_ops spmi_smps_ops = {
1077
1051
};
1078
1052
1079
1053
static struct regulator_ops spmi_ldo_ops = {
1080
- .enable = spmi_regulator_common_enable ,
1081
- .disable = spmi_regulator_common_disable ,
1082
- .is_enabled = spmi_regulator_common_is_enabled ,
1054
+ .enable = regulator_enable_regmap ,
1055
+ .disable = regulator_disable_regmap ,
1056
+ .is_enabled = regulator_is_enabled_regmap ,
1083
1057
.set_voltage_sel = spmi_regulator_common_set_voltage ,
1084
1058
.get_voltage_sel = spmi_regulator_common_get_voltage ,
1085
1059
.map_voltage = spmi_regulator_common_map_voltage ,
@@ -1094,9 +1068,9 @@ static struct regulator_ops spmi_ldo_ops = {
1094
1068
};
1095
1069
1096
1070
static struct regulator_ops spmi_ln_ldo_ops = {
1097
- .enable = spmi_regulator_common_enable ,
1098
- .disable = spmi_regulator_common_disable ,
1099
- .is_enabled = spmi_regulator_common_is_enabled ,
1071
+ .enable = regulator_enable_regmap ,
1072
+ .disable = regulator_disable_regmap ,
1073
+ .is_enabled = regulator_is_enabled_regmap ,
1100
1074
.set_voltage_sel = spmi_regulator_common_set_voltage ,
1101
1075
.get_voltage_sel = spmi_regulator_common_get_voltage ,
1102
1076
.map_voltage = spmi_regulator_common_map_voltage ,
@@ -1107,8 +1081,8 @@ static struct regulator_ops spmi_ln_ldo_ops = {
1107
1081
1108
1082
static struct regulator_ops spmi_vs_ops = {
1109
1083
.enable = spmi_regulator_vs_enable ,
1110
- .disable = spmi_regulator_common_disable ,
1111
- .is_enabled = spmi_regulator_common_is_enabled ,
1084
+ .disable = regulator_disable_regmap ,
1085
+ .is_enabled = regulator_is_enabled_regmap ,
1112
1086
.set_pull_down = spmi_regulator_common_set_pull_down ,
1113
1087
.set_soft_start = spmi_regulator_common_set_soft_start ,
1114
1088
.set_over_current_protection = spmi_regulator_vs_ocp ,
@@ -1117,9 +1091,9 @@ static struct regulator_ops spmi_vs_ops = {
1117
1091
};
1118
1092
1119
1093
static struct regulator_ops spmi_boost_ops = {
1120
- .enable = spmi_regulator_common_enable ,
1121
- .disable = spmi_regulator_common_disable ,
1122
- .is_enabled = spmi_regulator_common_is_enabled ,
1094
+ .enable = regulator_enable_regmap ,
1095
+ .disable = regulator_disable_regmap ,
1096
+ .is_enabled = regulator_is_enabled_regmap ,
1123
1097
.set_voltage_sel = spmi_regulator_single_range_set_voltage ,
1124
1098
.get_voltage_sel = spmi_regulator_single_range_get_voltage ,
1125
1099
.map_voltage = spmi_regulator_single_map_voltage ,
@@ -1128,9 +1102,9 @@ static struct regulator_ops spmi_boost_ops = {
1128
1102
};
1129
1103
1130
1104
static struct regulator_ops spmi_ftsmps_ops = {
1131
- .enable = spmi_regulator_common_enable ,
1132
- .disable = spmi_regulator_common_disable ,
1133
- .is_enabled = spmi_regulator_common_is_enabled ,
1105
+ .enable = regulator_enable_regmap ,
1106
+ .disable = regulator_disable_regmap ,
1107
+ .is_enabled = regulator_is_enabled_regmap ,
1134
1108
.set_voltage_sel = spmi_regulator_common_set_voltage ,
1135
1109
.set_voltage_time_sel = spmi_regulator_set_voltage_time_sel ,
1136
1110
.get_voltage_sel = spmi_regulator_common_get_voltage ,
@@ -1143,9 +1117,9 @@ static struct regulator_ops spmi_ftsmps_ops = {
1143
1117
};
1144
1118
1145
1119
static struct regulator_ops spmi_ult_lo_smps_ops = {
1146
- .enable = spmi_regulator_common_enable ,
1147
- .disable = spmi_regulator_common_disable ,
1148
- .is_enabled = spmi_regulator_common_is_enabled ,
1120
+ .enable = regulator_enable_regmap ,
1121
+ .disable = regulator_disable_regmap ,
1122
+ .is_enabled = regulator_is_enabled_regmap ,
1149
1123
.set_voltage_sel = spmi_regulator_ult_lo_smps_set_voltage ,
1150
1124
.set_voltage_time_sel = spmi_regulator_set_voltage_time_sel ,
1151
1125
.get_voltage_sel = spmi_regulator_ult_lo_smps_get_voltage ,
@@ -1157,9 +1131,9 @@ static struct regulator_ops spmi_ult_lo_smps_ops = {
1157
1131
};
1158
1132
1159
1133
static struct regulator_ops spmi_ult_ho_smps_ops = {
1160
- .enable = spmi_regulator_common_enable ,
1161
- .disable = spmi_regulator_common_disable ,
1162
- .is_enabled = spmi_regulator_common_is_enabled ,
1134
+ .enable = regulator_enable_regmap ,
1135
+ .disable = regulator_disable_regmap ,
1136
+ .is_enabled = regulator_is_enabled_regmap ,
1163
1137
.set_voltage_sel = spmi_regulator_single_range_set_voltage ,
1164
1138
.set_voltage_time_sel = spmi_regulator_set_voltage_time_sel ,
1165
1139
.get_voltage_sel = spmi_regulator_single_range_get_voltage ,
@@ -1172,9 +1146,9 @@ static struct regulator_ops spmi_ult_ho_smps_ops = {
1172
1146
};
1173
1147
1174
1148
static struct regulator_ops spmi_ult_ldo_ops = {
1175
- .enable = spmi_regulator_common_enable ,
1176
- .disable = spmi_regulator_common_disable ,
1177
- .is_enabled = spmi_regulator_common_is_enabled ,
1149
+ .enable = regulator_enable_regmap ,
1150
+ .disable = regulator_disable_regmap ,
1151
+ .is_enabled = regulator_is_enabled_regmap ,
1178
1152
.set_voltage_sel = spmi_regulator_single_range_set_voltage ,
1179
1153
.get_voltage_sel = spmi_regulator_single_range_get_voltage ,
1180
1154
.map_voltage = spmi_regulator_single_map_voltage ,
@@ -1711,6 +1685,9 @@ static int qcom_spmi_regulator_probe(struct platform_device *pdev)
1711
1685
vreg -> desc .id = -1 ;
1712
1686
vreg -> desc .owner = THIS_MODULE ;
1713
1687
vreg -> desc .type = REGULATOR_VOLTAGE ;
1688
+ vreg -> desc .enable_reg = reg -> base + SPMI_COMMON_REG_ENABLE ;
1689
+ vreg -> desc .enable_mask = SPMI_COMMON_ENABLE_MASK ;
1690
+ vreg -> desc .enable_val = SPMI_COMMON_ENABLE ;
1714
1691
vreg -> desc .name = name = reg -> name ;
1715
1692
vreg -> desc .supply_name = reg -> supply ;
1716
1693
vreg -> desc .of_match = reg -> name ;
@@ -1723,6 +1700,7 @@ static int qcom_spmi_regulator_probe(struct platform_device *pdev)
1723
1700
1724
1701
config .dev = dev ;
1725
1702
config .driver_data = vreg ;
1703
+ config .regmap = regmap ;
1726
1704
rdev = devm_regulator_register (dev , & vreg -> desc , & config );
1727
1705
if (IS_ERR (rdev )) {
1728
1706
dev_err (dev , "failed to register %s\n" , name );
0 commit comments