summaryrefslogtreecommitdiff
path: root/drivers/adc
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/adc')
-rw-r--r--drivers/adc/adc-uclass.c23
-rw-r--r--drivers/adc/exynos-adc.c1
-rw-r--r--drivers/adc/meson-saradc.c1
-rw-r--r--drivers/adc/rockchip-saradc.c1
-rw-r--r--drivers/adc/sandbox.c1
5 files changed, 15 insertions, 12 deletions
diff --git a/drivers/adc/adc-uclass.c b/drivers/adc/adc-uclass.c
index 9646e4d7062..1b35bf22014 100644
--- a/drivers/adc/adc-uclass.c
+++ b/drivers/adc/adc-uclass.c
@@ -15,6 +15,7 @@
#include <dm/uclass-internal.h>
#include <adc.h>
#include <linux/delay.h>
+#include <linux/printk.h>
#include <power/regulator.h>
#define ADC_UCLASS_PLATDATA_SIZE sizeof(struct adc_uclass_plat)
@@ -51,23 +52,21 @@ static int check_channel(struct udevice *dev, int value, bool number_or_mask,
static int adc_supply_enable(struct udevice *dev)
{
struct adc_uclass_plat *uc_pdata = dev_get_uclass_plat(dev);
- const char *supply_type;
- int ret = 0;
+ int ret;
- if (uc_pdata->vdd_supply) {
- supply_type = "vdd";
- ret = regulator_set_enable(uc_pdata->vdd_supply, true);
+ ret = regulator_set_enable_if_allowed(uc_pdata->vdd_supply, true);
+ if (ret && ret != -ENOSYS) {
+ pr_err("%s: can't enable vdd-supply!", dev->name);
+ return ret;
}
- if (!ret && uc_pdata->vss_supply) {
- supply_type = "vss";
- ret = regulator_set_enable(uc_pdata->vss_supply, true);
+ ret = regulator_set_enable_if_allowed(uc_pdata->vss_supply, true);
+ if (ret && ret != -ENOSYS) {
+ pr_err("%s: can't enable vss-supply!", dev->name);
+ return ret;
}
- if (ret)
- pr_err("%s: can't enable %s-supply!", dev->name, supply_type);
-
- return ret;
+ return 0;
}
int adc_data_mask(struct udevice *dev, unsigned int *data_mask)
diff --git a/drivers/adc/exynos-adc.c b/drivers/adc/exynos-adc.c
index 65898170858..2bda733af90 100644
--- a/drivers/adc/exynos-adc.c
+++ b/drivers/adc/exynos-adc.c
@@ -8,6 +8,7 @@
#include <dm.h>
#include <adc.h>
#include <asm/arch/adc.h>
+#include <linux/printk.h>
struct exynos_adc_priv {
int active_channel;
diff --git a/drivers/adc/meson-saradc.c b/drivers/adc/meson-saradc.c
index 37023512f0d..c15c7fea47f 100644
--- a/drivers/adc/meson-saradc.c
+++ b/drivers/adc/meson-saradc.c
@@ -18,6 +18,7 @@
#include <linux/delay.h>
#include <linux/math64.h>
#include <linux/bitfield.h>
+#include <linux/printk.h>
#include <power/regulator.h>
#define MESON_SAR_ADC_REG0 0x00
diff --git a/drivers/adc/rockchip-saradc.c b/drivers/adc/rockchip-saradc.c
index 809486eba27..03caca78b5f 100644
--- a/drivers/adc/rockchip-saradc.c
+++ b/drivers/adc/rockchip-saradc.c
@@ -13,6 +13,7 @@
#include <asm/io.h>
#include <linux/bitops.h>
#include <linux/err.h>
+#include <linux/printk.h>
#include <power/regulator.h>
#define SARADC_CTRL_CHN_MASK GENMASK(2, 0)
diff --git a/drivers/adc/sandbox.c b/drivers/adc/sandbox.c
index 6e435462ab8..43cad34ffeb 100644
--- a/drivers/adc/sandbox.c
+++ b/drivers/adc/sandbox.c
@@ -8,6 +8,7 @@
#include <dm.h>
#include <adc.h>
#include <sandbox-adc.h>
+#include <linux/printk.h>
/**
* struct sandbox_adc_priv - sandbox ADC device's operation status and data