@@ -315,14 +315,12 @@ static const struct iio_chan_spec meson_sar_adc_and_temp_iio_channels[] = {
315315struct meson_sar_adc_param {
316316 bool has_bl30_integration ;
317317 unsigned long clock_rate ;
318- u32 bandgap_reg ;
319318 unsigned int resolution ;
320319 const struct regmap_config * regmap_config ;
321320 u8 temperature_trimming_bits ;
322321 unsigned int temperature_multiplier ;
323322 unsigned int temperature_divider ;
324323 u8 disable_ring_counter ;
325- bool has_reg11 ;
326324 bool has_vref_select ;
327325 u8 vref_select ;
328326 u8 cmv_select ;
@@ -976,7 +974,7 @@ static int meson_sar_adc_init(struct iio_dev *indio_dev)
976974 MESON_SAR_ADC_REG3_CTRL_CONT_RING_COUNTER_EN ,
977975 regval );
978976
979- if (priv -> param -> has_reg11 ) {
977+ if (priv -> param -> regmap_config -> max_register >= MESON_SAR_ADC_REG11 ) {
980978 regval = FIELD_PREP (MESON_SAR_ADC_REG11_EOC , priv -> param -> adc_eoc );
981979 regmap_update_bits (priv -> regmap , MESON_SAR_ADC_REG11 ,
982980 MESON_SAR_ADC_REG11_EOC , regval );
@@ -1013,16 +1011,15 @@ static int meson_sar_adc_init(struct iio_dev *indio_dev)
10131011static void meson_sar_adc_set_bandgap (struct iio_dev * indio_dev , bool on_off )
10141012{
10151013 struct meson_sar_adc_priv * priv = iio_priv (indio_dev );
1016- const struct meson_sar_adc_param * param = priv -> param ;
1017- u32 enable_mask ;
10181014
1019- if (param -> bandgap_reg == MESON_SAR_ADC_REG11 )
1020- enable_mask = MESON_SAR_ADC_REG11_BANDGAP_EN ;
1015+ if (priv -> param -> regmap_config -> max_register >= MESON_SAR_ADC_REG11 )
1016+ regmap_update_bits (priv -> regmap , MESON_SAR_ADC_REG11 ,
1017+ MESON_SAR_ADC_REG11_BANDGAP_EN ,
1018+ on_off ? MESON_SAR_ADC_REG11_BANDGAP_EN : 0 );
10211019 else
1022- enable_mask = MESON_SAR_ADC_DELTA_10_TS_VBG_EN ;
1023-
1024- regmap_update_bits (priv -> regmap , param -> bandgap_reg , enable_mask ,
1025- on_off ? enable_mask : 0 );
1020+ regmap_update_bits (priv -> regmap , MESON_SAR_ADC_DELTA_10 ,
1021+ MESON_SAR_ADC_DELTA_10_TS_VBG_EN ,
1022+ on_off ? MESON_SAR_ADC_DELTA_10_TS_VBG_EN : 0 );
10261023}
10271024
10281025static int meson_sar_adc_hw_enable (struct iio_dev * indio_dev )
@@ -1186,7 +1183,6 @@ static const struct iio_info meson_sar_adc_iio_info = {
11861183static const struct meson_sar_adc_param meson_sar_adc_meson8_param = {
11871184 .has_bl30_integration = false,
11881185 .clock_rate = 1150000 ,
1189- .bandgap_reg = MESON_SAR_ADC_DELTA_10 ,
11901186 .regmap_config = & meson_sar_adc_regmap_config_meson8 ,
11911187 .resolution = 10 ,
11921188 .temperature_trimming_bits = 4 ,
@@ -1197,7 +1193,6 @@ static const struct meson_sar_adc_param meson_sar_adc_meson8_param = {
11971193static const struct meson_sar_adc_param meson_sar_adc_meson8b_param = {
11981194 .has_bl30_integration = false,
11991195 .clock_rate = 1150000 ,
1200- .bandgap_reg = MESON_SAR_ADC_DELTA_10 ,
12011196 .regmap_config = & meson_sar_adc_regmap_config_meson8 ,
12021197 .resolution = 10 ,
12031198 .temperature_trimming_bits = 5 ,
@@ -1208,34 +1203,28 @@ static const struct meson_sar_adc_param meson_sar_adc_meson8b_param = {
12081203static const struct meson_sar_adc_param meson_sar_adc_gxbb_param = {
12091204 .has_bl30_integration = true,
12101205 .clock_rate = 1200000 ,
1211- .bandgap_reg = MESON_SAR_ADC_REG11 ,
12121206 .regmap_config = & meson_sar_adc_regmap_config_gxbb ,
12131207 .resolution = 10 ,
1214- .has_reg11 = true,
12151208 .vref_voltage = 1 ,
12161209 .cmv_select = 1 ,
12171210};
12181211
12191212static const struct meson_sar_adc_param meson_sar_adc_gxl_param = {
12201213 .has_bl30_integration = true,
12211214 .clock_rate = 1200000 ,
1222- .bandgap_reg = MESON_SAR_ADC_REG11 ,
12231215 .regmap_config = & meson_sar_adc_regmap_config_gxbb ,
12241216 .resolution = 12 ,
12251217 .disable_ring_counter = 1 ,
1226- .has_reg11 = true,
12271218 .vref_voltage = 1 ,
12281219 .cmv_select = 1 ,
12291220};
12301221
12311222static const struct meson_sar_adc_param meson_sar_adc_axg_param = {
12321223 .has_bl30_integration = true,
12331224 .clock_rate = 1200000 ,
1234- .bandgap_reg = MESON_SAR_ADC_REG11 ,
12351225 .regmap_config = & meson_sar_adc_regmap_config_gxbb ,
12361226 .resolution = 12 ,
12371227 .disable_ring_counter = 1 ,
1238- .has_reg11 = true,
12391228 .vref_voltage = 1 ,
12401229 .has_vref_select = true,
12411230 .vref_select = VREF_VDDA ,
@@ -1245,11 +1234,9 @@ static const struct meson_sar_adc_param meson_sar_adc_axg_param = {
12451234static const struct meson_sar_adc_param meson_sar_adc_g12a_param = {
12461235 .has_bl30_integration = false,
12471236 .clock_rate = 1200000 ,
1248- .bandgap_reg = MESON_SAR_ADC_REG11 ,
12491237 .regmap_config = & meson_sar_adc_regmap_config_gxbb ,
12501238 .resolution = 12 ,
12511239 .disable_ring_counter = 1 ,
1252- .has_reg11 = true,
12531240 .adc_eoc = 1 ,
12541241 .has_vref_select = true,
12551242 .vref_select = VREF_VDDA ,
0 commit comments