diff options
author | Peng Fan <peng.fan@nxp.com> | 2022-09-15 16:05:02 +0800 |
---|---|---|
committer | Ye Li <ye.li@nxp.com> | 2022-09-28 21:03:14 +0800 |
commit | 88132ed0b4ee31a0940be96d13b1a65ac030869e (patch) | |
tree | 8451d4581728e5e437605a8e7ef7f1f24ddf7aba /drivers | |
parent | 65287dc074dd30b011b170348fb8a2dd970bf632 (diff) |
LFU-396-1 video: simple_panel: make backlight optional
Somes boards may default enable backlight and not able to set
brightness, so make it optional.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit 928d56fcb5c540e5d8937473a74189a46f701ce3)
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/simple_panel.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/drivers/video/simple_panel.c b/drivers/video/simple_panel.c index c8f7022ea6..f9281d5e83 100644 --- a/drivers/video/simple_panel.c +++ b/drivers/video/simple_panel.c @@ -23,12 +23,14 @@ static int simple_panel_enable_backlight(struct udevice *dev) struct simple_panel_priv *priv = dev_get_priv(dev); int ret; - debug("%s: start, backlight = '%s'\n", __func__, priv->backlight->name); dm_gpio_set_value(&priv->enable, 1); - ret = backlight_enable(priv->backlight); - debug("%s: done, ret = %d\n", __func__, ret); - if (ret) - return ret; + if (priv->backlight) { + debug("%s: start, backlight = '%s'\n", __func__, priv->backlight->name); + ret = backlight_enable(priv->backlight); + debug("%s: done, ret = %d\n", __func__, ret); + if (ret) + return ret; + } return 0; } @@ -40,10 +42,12 @@ static int simple_panel_set_backlight(struct udevice *dev, int percent) debug("%s: start, backlight = '%s'\n", __func__, priv->backlight->name); dm_gpio_set_value(&priv->enable, 1); - ret = backlight_set_brightness(priv->backlight, percent); - debug("%s: done, ret = %d\n", __func__, ret); - if (ret) - return ret; + if (priv->backlight) { + ret = backlight_set_brightness(priv->backlight, percent); + debug("%s: done, ret = %d\n", __func__, ret); + if (ret) + return ret; + } return 0; } @@ -66,9 +70,10 @@ static int simple_panel_of_to_plat(struct udevice *dev) ret = uclass_get_device_by_phandle(UCLASS_PANEL_BACKLIGHT, dev, "backlight", &priv->backlight); if (ret) { - debug("%s: Cannot get backlight: ret=%d\n", __func__, ret); - return log_ret(ret); + printf("%s: Cannot get backlight: ret=%d\n", __func__, ret); + priv->backlight = NULL; } + ret = gpio_request_by_name(dev, "enable-gpios", 0, &priv->enable, GPIOD_IS_OUT); if (ret) { |