diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/phy/meson-g12a-usb2.c | 6 | ||||
-rw-r--r-- | drivers/serial/serial_meson.c | 1 | ||||
-rw-r--r-- | drivers/video/pwm_backlight.c | 13 | ||||
-rw-r--r-- | drivers/video/simple_panel.c | 10 | ||||
-rw-r--r-- | drivers/video/tegra20/tegra-dsi.c | 8 |
5 files changed, 18 insertions, 20 deletions
diff --git a/drivers/phy/meson-g12a-usb2.c b/drivers/phy/meson-g12a-usb2.c index 4ba3992bda7..3958d2404b8 100644 --- a/drivers/phy/meson-g12a-usb2.c +++ b/drivers/phy/meson-g12a-usb2.c @@ -328,12 +328,12 @@ int meson_g12a_usb2_phy_probe(struct udevice *dev) #if CONFIG_IS_ENABLED(POWER_DOMAIN) ret = power_domain_get(dev, &priv->pwrdm); - if (ret < 0 && ret != -ENODEV) { - pr_err("failed to get power domain\n"); + if (ret < 0 && ret != -ENODEV && ret != -ENOENT) { + pr_err("failed to get power domain : %d\n", ret); return ret; } - if (ret != -ENODEV) { + if (ret != -ENODEV && ret != -ENOENT) { ret = power_domain_on(&priv->pwrdm); if (ret < 0) { pr_err("failed to enable power domain\n"); diff --git a/drivers/serial/serial_meson.c b/drivers/serial/serial_meson.c index 934de2ab235..be5f380f850 100644 --- a/drivers/serial/serial_meson.c +++ b/drivers/serial/serial_meson.c @@ -232,6 +232,7 @@ static const struct dm_serial_ops meson_serial_ops = { static const struct udevice_id meson_serial_ids[] = { { .compatible = "amlogic,meson-uart" }, { .compatible = "amlogic,meson-gx-uart" }, + { .compatible = "amlogic,meson-a1-uart" }, { } }; diff --git a/drivers/video/pwm_backlight.c b/drivers/video/pwm_backlight.c index aa0e2928666..1c747d98d7a 100644 --- a/drivers/video/pwm_backlight.c +++ b/drivers/video/pwm_backlight.c @@ -100,8 +100,8 @@ static int enable_sequence(struct udevice *dev, int seq) plat = dev_get_uclass_plat(priv->reg); log_debug("Enable '%s', regulator '%s'/'%s'\n", dev->name, priv->reg->name, plat->name); - ret = regulator_set_enable(priv->reg, true); - if (ret) { + ret = regulator_set_enable_if_allowed(priv->reg, true); + if (ret && ret != -ENOSYS) { log_debug("Cannot enable regulator for PWM '%s'\n", dev->name); return log_ret(ret); @@ -181,11 +181,10 @@ static int pwm_backlight_set_brightness(struct udevice *dev, int percent) } if (disable) { dm_gpio_set_value(&priv->enable, 0); - if (priv->reg) { - ret = regulator_set_enable(priv->reg, false); - if (ret) - return log_ret(ret); - } + ret = regulator_set_enable_if_allowed(priv->reg, false); + if (ret && ret != -ENOSYS) + return log_ret(ret); + priv->enabled = false; } diff --git a/drivers/video/simple_panel.c b/drivers/video/simple_panel.c index 6a6473eb0e5..efb122b534a 100644 --- a/drivers/video/simple_panel.c +++ b/drivers/video/simple_panel.c @@ -114,11 +114,11 @@ static int simple_panel_probe(struct udevice *dev) const u32 dsi_data = dev_get_driver_data(dev); int ret; - if (CONFIG_IS_ENABLED(DM_REGULATOR) && priv->reg) { - debug("%s: Enable regulator '%s'\n", __func__, priv->reg->name); - ret = regulator_set_enable(priv->reg, true); - if (ret) - return ret; + ret = regulator_set_enable_if_allowed(priv->reg, true); + if (ret && ret != -ENOSYS) { + debug("%s: failed to enable regulator '%s' %d\n", + __func__, priv->reg->name, ret); + return ret; } switch (dsi_data) { diff --git a/drivers/video/tegra20/tegra-dsi.c b/drivers/video/tegra20/tegra-dsi.c index 8c3404e085d..b4cf4fad5eb 100644 --- a/drivers/video/tegra20/tegra-dsi.c +++ b/drivers/video/tegra20/tegra-dsi.c @@ -831,11 +831,9 @@ static int tegra_dsi_bridge_probe(struct udevice *dev) tegra_dsi_get_format(device->format, &priv->format); - if (priv->avdd) { - ret = regulator_set_enable(priv->avdd, true); - if (ret) - return ret; - } + ret = regulator_set_enable_if_allowed(priv->avdd, true); + if (ret && ret != -ENOSYS) + return ret; tegra_dsi_init_clocks(dev); |