@@ -815,6 +815,24 @@ static const struct pca9450_regulator_desc pca9451a_regulators[] = {
815
815
.owner = THIS_MODULE ,
816
816
},
817
817
},
818
+ {
819
+ .desc = {
820
+ .name = "ldo3" ,
821
+ .of_match = of_match_ptr ("LDO3" ),
822
+ .regulators_node = of_match_ptr ("regulators" ),
823
+ .id = PCA9450_LDO3 ,
824
+ .ops = & pca9450_ldo_regulator_ops ,
825
+ .type = REGULATOR_VOLTAGE ,
826
+ .n_voltages = PCA9450_LDO3_VOLTAGE_NUM ,
827
+ .linear_ranges = pca9450_ldo34_volts ,
828
+ .n_linear_ranges = ARRAY_SIZE (pca9450_ldo34_volts ),
829
+ .vsel_reg = PCA9450_REG_LDO3CTRL ,
830
+ .vsel_mask = LDO3OUT_MASK ,
831
+ .enable_reg = PCA9450_REG_LDO3CTRL ,
832
+ .enable_mask = LDO3_EN_MASK ,
833
+ .owner = THIS_MODULE ,
834
+ },
835
+ },
818
836
{
819
837
.desc = {
820
838
.name = "ldo4" ,
@@ -916,6 +934,7 @@ static int pca9450_i2c_probe(struct i2c_client *i2c)
916
934
pca9450 -> rcnt = ARRAY_SIZE (pca9450bc_regulators );
917
935
break ;
918
936
case PCA9450_TYPE_PCA9451A :
937
+ case PCA9450_TYPE_PCA9452 :
919
938
regulator_desc = pca9451a_regulators ;
920
939
pca9450 -> rcnt = ARRAY_SIZE (pca9451a_regulators );
921
940
break ;
@@ -943,7 +962,8 @@ static int pca9450_i2c_probe(struct i2c_client *i2c)
943
962
/* Check your board and dts for match the right pmic */
944
963
if (((device_id >> 4 ) != 0x1 && type == PCA9450_TYPE_PCA9450A ) ||
945
964
((device_id >> 4 ) != 0x3 && type == PCA9450_TYPE_PCA9450BC ) ||
946
- ((device_id >> 4 ) != 0x9 && type == PCA9450_TYPE_PCA9451A ))
965
+ ((device_id >> 4 ) != 0x9 && type == PCA9450_TYPE_PCA9451A ) ||
966
+ ((device_id >> 4 ) != 0x9 && type == PCA9450_TYPE_PCA9452 ))
947
967
return dev_err_probe (& i2c -> dev , - EINVAL ,
948
968
"Device id(%x) mismatched\n" , device_id >> 4 );
949
969
@@ -955,6 +975,9 @@ static int pca9450_i2c_probe(struct i2c_client *i2c)
955
975
r = & regulator_desc [i ];
956
976
desc = & r -> desc ;
957
977
978
+ if (type == PCA9450_TYPE_PCA9451A && !strcmp (desc -> name , "ldo3" ))
979
+ continue ;
980
+
958
981
config .regmap = pca9450 -> regmap ;
959
982
config .dev = pca9450 -> dev ;
960
983
@@ -1043,6 +1066,10 @@ static const struct of_device_id pca9450_of_match[] = {
1043
1066
.compatible = "nxp,pca9451a" ,
1044
1067
.data = (void * )PCA9450_TYPE_PCA9451A ,
1045
1068
},
1069
+ {
1070
+ .compatible = "nxp,pca9452" ,
1071
+ .data = (void * )PCA9450_TYPE_PCA9452 ,
1072
+ },
1046
1073
{ }
1047
1074
};
1048
1075
MODULE_DEVICE_TABLE (of , pca9450_of_match );
0 commit comments