summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorPeng Fan <peng.fan@nxp.com>2022-09-15 16:05:02 +0800
committerYe Li <ye.li@nxp.com>2022-09-28 21:03:14 +0800
commit88132ed0b4ee31a0940be96d13b1a65ac030869e (patch)
tree8451d4581728e5e437605a8e7ef7f1f24ddf7aba /drivers
parent65287dc074dd30b011b170348fb8a2dd970bf632 (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.c27
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) {