Enable spl compile of the class driver for other
compile modes then OF_REAL, so that at least it
doesn't break the process. Use #if because code
review shows that IS_ENABLED() and
device_get_supply_regulator() results in probe failure.

Signed-off-by: Johan Jonker <jbx6...@gmail.com>
---
 drivers/adc/adc-uclass.c | 33 +++++++++++++++++++++++++++------
 1 file changed, 27 insertions(+), 6 deletions(-)

diff --git a/drivers/adc/adc-uclass.c b/drivers/adc/adc-uclass.c
index 67137ffb..e8ce638d 100644
--- a/drivers/adc/adc-uclass.c
+++ b/drivers/adc/adc-uclass.c
@@ -199,7 +199,11 @@ int adc_channel_single_shot(const char *name, int channel, 
unsigned int *data)
        struct udevice *dev;
        int ret;
 
+#if IS_ENABLED(CONFIG_SPL_BUILD)
+       ret = uclass_get_device(UCLASS_ADC, 0, &dev);
+#else
        ret = uclass_get_device_by_name(UCLASS_ADC, name, &dev);
+#endif
        if (ret)
                return ret;
 
@@ -248,7 +252,11 @@ int adc_channels_single_shot(const char *name, unsigned 
int channel_mask,
        struct udevice *dev;
        int ret;
 
+#if IS_ENABLED(CONFIG_SPL_BUILD)
+       ret = uclass_get_device(UCLASS_ADC, 0, &dev);
+#else
        ret = uclass_get_device_by_name(UCLASS_ADC, name, &dev);
+#endif
        if (ret)
                return ret;
 
@@ -372,20 +380,26 @@ int adc_raw_to_uV(struct udevice *dev, unsigned int raw, 
int *uV)
 static int adc_vdd_plat_set(struct udevice *dev)
 {
        struct adc_uclass_plat *uc_pdata = dev_get_uclass_plat(dev);
-       int ret;
        char *prop;
 
+       uc_pdata->vdd_microvolts = -ENODATA;
+
+       if (CONFIG_IS_ENABLED(OF_PLATDATA))
+               return 0;
+
        prop = "vdd-polarity-negative";
        uc_pdata->vdd_polarity_negative = dev_read_bool(dev, prop);
 
        /* Optionally get regulators */
-       ret = device_get_supply_regulator(dev, "vdd-supply",
-                                         &uc_pdata->vdd_supply);
+#if !IS_ENABLED(CONFIG_SPL_BUILD)
+       int ret = device_get_supply_regulator(dev, "vdd-supply",
+                                             &uc_pdata->vdd_supply);
        if (!ret)
                return adc_vdd_plat_update(dev);
 
        if (ret != -ENOENT)
                return ret;
+#endif
 
        /* No vdd-supply phandle. */
        prop  = "vdd-microvolts";
@@ -397,19 +411,26 @@ static int adc_vdd_plat_set(struct udevice *dev)
 static int adc_vss_plat_set(struct udevice *dev)
 {
        struct adc_uclass_plat *uc_pdata = dev_get_uclass_plat(dev);
-       int ret;
        char *prop;
 
+       uc_pdata->vss_microvolts = -ENODATA;
+
+       if (CONFIG_IS_ENABLED(OF_PLATDATA))
+               return 0;
+
        prop = "vss-polarity-negative";
        uc_pdata->vss_polarity_negative = dev_read_bool(dev, prop);
 
-       ret = device_get_supply_regulator(dev, "vss-supply",
-                                         &uc_pdata->vss_supply);
+       /* Optionally get regulators */
+#if !IS_ENABLED(CONFIG_SPL_BUILD)
+       int ret = device_get_supply_regulator(dev, "vss-supply",
+                                             &uc_pdata->vss_supply);
        if (!ret)
                return adc_vss_plat_update(dev);
 
        if (ret != -ENOENT)
                return ret;
+#endif
 
        /* No vss-supply phandle. */
        prop = "vss-microvolts";
-- 
2.20.1

Reply via email to