adc: meson-saradc: skip hardware init only if ADC is enabled
authorMarek Szyprowski <m.szyprowski@samsung.com>
Mon, 14 Dec 2020 10:18:42 +0000 (11:18 +0100)
committerMarek Szyprowski <m.szyprowski@samsung.com>
Mon, 15 Nov 2021 10:37:12 +0000 (11:37 +0100)
The driver skips hardware initialization if it is already configured by
the earlier bootloader stage (BL30). Skip the initialization only if the
hardware is really initialized and enabled.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I3e2e2d270ad3e7e7f38e2bc3ce2a924a47b164af

drivers/adc/meson-saradc.c

index 998cef2..ce7ae99 100644 (file)
@@ -512,8 +512,11 @@ static int meson_saradc_init(struct meson_saradc_priv *priv)
         * reading the temperature sensor.
         */
        regmap_read(priv->regmap, MESON_SAR_ADC_REG3, &regval);
-       if (regval & MESON_SAR_ADC_REG3_BL30_INITIALIZED)
-               return 0;
+       if (regval & MESON_SAR_ADC_REG3_BL30_INITIALIZED) {
+               regmap_read(priv->regmap, MESON_SAR_ADC_REG3, &regval);
+               if (regval & MESON_SAR_ADC_REG3_ADC_EN)
+                       return 0;
+       }
 
        meson_saradc_stop_sample_engine(priv);