Skip to content

Commit 4467dfd

Browse files
xdarklightjic23
authored andcommitted
iio: adc: meson: simplify MESON_SAR_ADC_REG11 register access
Simply check the max_register value to decide whether MESON_SAR_ADC_REG11 is present on the current IP revision. This allows dropping two additional bool fields from struct meson_sar_adc_param which previously had to be manually kept in sync. No functional changes intended. Signed-off-by: Martin Blumenstingl <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jonathan Cameron <[email protected]>
1 parent a61e9c4 commit 4467dfd

File tree

1 file changed

+8
-21
lines changed

1 file changed

+8
-21
lines changed

drivers/iio/adc/meson_saradc.c

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -315,14 +315,12 @@ static const struct iio_chan_spec meson_sar_adc_and_temp_iio_channels[] = {
315315
struct 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)
10131011
static 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

10281025
static 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 = {
11861183
static 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 = {
11971193
static 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 = {
12081203
static 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

12191212
static 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

12311222
static 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 = {
12451234
static 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

Comments
 (0)