Patch "iio: adc: meson-saradc: Meson8 and Meson8b do not have REG11 and REG13" has been added to the 4.14-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
iio: adc: meson-saradc: Meson8 and Meson8b do not have REG11 and REG13
to the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
iio-adc-meson-saradc-meson8-and-meson8b-do-not-have-reg11-and-reg13.patch
and it can be found in the queue-4.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
96748823c483c6eed8321f78bd128dd33f09c55cMon Sep 17 00:00:00 2001
From: Martin Blumenstingl <[email protected]>
Date: Tue, 31 Oct 2017 21:01:45 +0100
Subject: iio: adc: meson-saradc: Meson8 and Meson8b do not have REG11 and REG13
From: Martin Blumenstingl <[email protected]>
commit 96748823c483c6eed8321f78bd128dd33f09c55c upstream.
The Meson GXBB and newer SoCs have a few more registers than the older Meson8 and Meson8b SoCs.
Use a separate regmap config to limit the older SoCs to the DELTA_10 register.
--- drivers/iio/adc/meson_saradc.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-)
drivers/iio/adc/meson_saradc.c +15 -2
@@ -224,6 +224,7 @@ struct meson_sar_adc_data {u32 bandgap_reg;unsigned int resolution;const char *name; +const struct regmap_config *regmap_config; };struct meson_sar_adc_priv {
@@ -243,13 +244,20 @@ struct meson_sar_adc_priv {int calibscale; }; -static const struct regmap_config meson_sar_adc_regmap_config = { +static const struct regmap_config meson_sar_adc_regmap_config_gxbb = { .reg_bits =8 , .val_bits =32 , .reg_stride =4 , .max_register =MESON_SAR_ADC_REG13 , }; +static const struct regmap_config meson_sar_adc_regmap_config_meson8 = { + .reg_bits =8 , + .val_bits =32 , + .reg_stride =4 , + .max_register =MESON_SAR_ADC_DELTA_10 , +}; +static unsigned int meson_sar_adc_get_fifo_count (struct iio_dev *indio_dev) {struct meson_sar_adc_priv *priv =iio_priv (indio_dev);
@@ -860,6 +868,7 @@ static const struct iio_info meson_sar_astatic const struct meson_sar_adc_data meson_sar_adc_meson8_data = { .has_bl30_integration = false, .bandgap_reg =MESON_SAR_ADC_DELTA_10 , + .regmap_config = &meson_sar_adc_regmap_config_meson8, .resolution =10 , .name ="meson-meson8-saradc" , };
@@ -867,6 +876,7 @@ static const struct meson_sar_adc_data mstatic const struct meson_sar_adc_data meson_sar_adc_meson8b_data = { .has_bl30_integration = false, .bandgap_reg =MESON_SAR_ADC_DELTA_10 , + .regmap_config = &meson_sar_adc_regmap_config_meson8, .resolution =10 , .name ="meson-meson8b-saradc" , };
@@ -874,6 +884,7 @@ static const struct meson_sar_adc_data mstatic const struct meson_sar_adc_data meson_sar_adc_gxbb_data = { .has_bl30_integration = true, .bandgap_reg =MESON_SAR_ADC_REG11 , + .regmap_config = &meson_sar_adc_regmap_config_gxbb, .resolution =10 , .name ="meson-gxbb-saradc" , };
@@ -881,6 +892,7 @@ static const struct meson_sar_adc_data mstatic const struct meson_sar_adc_data meson_sar_adc_gxl_data = { .has_bl30_integration = true, .bandgap_reg =MESON_SAR_ADC_REG11 , + .regmap_config = &meson_sar_adc_regmap_config_gxbb, .resolution =12 , .name ="meson-gxl-saradc" , };
@@ -888,6 +900,7 @@ static const struct meson_sar_adc_data mstatic const struct meson_sar_adc_data meson_sar_adc_gxm_data = { .has_bl30_integration = true, .bandgap_reg =MESON_SAR_ADC_REG11 , + .regmap_config = &meson_sar_adc_regmap_config_gxbb, .resolution =12 , .name ="meson-gxm-saradc" , };
@@ -965,7 +978,7 @@ static int meson_sar_adc_probe(struct plreturn ret; priv->regmap =devm_regmap_init_mmio (&pdev->dev, base, - &meson_sar_adc_regmap_config); + priv->data->regmap_config);if (IS_ERR (priv->regmap))return PTR_ERR (priv->regmap);
Patches currently in stable-queue which might be from [email protected] are
queue-4.14/iio-adc-meson-saradc-initialize-the-bandgap-correctly-on-older-socs.patch queue-4.14/iio-adc-meson-saradc-fix-the-bit_idx-of-the-adc_en-clock.patch queue-4.14/iio-adc-meson-saradc-meson8-and-meson8b-do-not-have-reg11-and-reg13.patch