summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authoryannick fertre <yannick.fertre@st.com>2018-03-02 15:59:21 +0100
committerAnatolij Gustschin <agust@denx.de>2018-03-19 10:50:25 +0100
commitc0fb2fc0453a9a3cf1486887d7b5685af6767040 (patch)
treef0f508e02aea5ed2347aa90f98127ab7de57161b /drivers
parent1ef9aed92a577a4bb67f5ec99440fe81e87988a1 (diff)
video: stm32: stm32_ltdc: add reset
Add reset of LTDC display controller. Signed-off-by: yannick fertre <yannick.fertre@st.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/stm32/stm32_ltdc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/video/stm32/stm32_ltdc.c b/drivers/video/stm32/stm32_ltdc.c
index b417ac260a..d8784f1590 100644
--- a/drivers/video/stm32/stm32_ltdc.c
+++ b/drivers/video/stm32/stm32_ltdc.c
@@ -11,6 +11,7 @@
#include <clk.h>
#include <dm.h>
#include <panel.h>
+#include <reset.h>
#include <video.h>
#include <asm/io.h>
#include <asm/arch/gpio.h>
@@ -302,6 +303,7 @@ static int stm32_ltdc_probe(struct udevice *dev)
struct stm32_ltdc_priv *priv = dev_get_priv(dev);
struct udevice *panel;
struct clk pclk, pxclk;
+ struct reset_ctl rst;
int ret;
priv->regs = (void *)dev_read_addr(dev);
@@ -316,6 +318,15 @@ static int stm32_ltdc_probe(struct udevice *dev)
return ret;
}
+ ret = reset_get_by_index(dev, 0, &rst);
+ if (ret) {
+ debug("%s: missing ltdc hardware reset\n", __func__);
+ return -ENODEV;
+ }
+
+ /* Reset */
+ reset_deassert(&rst);
+
ret = panel_enable_backlight(panel);
if (ret) {
debug("%s: panel %s enable backlight error %d\n",