aboutsummaryrefslogtreecommitdiff
path: root/drivers/video
diff options
context:
space:
mode:
authorPatrick Delaunay <patrick.delaunay@st.com>2021-03-04 13:10:33 +0100
committerPatrice Chotard <patrice.chotard@foss.st.com>2021-03-11 17:55:09 +0100
commita6d047c0a86b4d91f0964ad35b38577e221cdde2 (patch)
tree016e0619c6d515843d6f7ca7b0e2743fc8616475 /drivers/video
parente9470fcd278dd85887f7671e5561351a860bb3d5 (diff)
downloadu-boot-a6d047c0a86b4d91f0964ad35b38577e221cdde2.zip
u-boot-a6d047c0a86b4d91f0964ad35b38577e221cdde2.tar.gz
u-boot-a6d047c0a86b4d91f0964ad35b38577e221cdde2.tar.bz2
video: stm32: remove all child of DSI bridge when its probe failed
Remove the child device of the STM32 DSI bridge when the driver probe failed to stop futher probe request on panels used with STMicroelectronics board (orisetech_otm8009a.c or raydium-rm68200.c driver). This patch avoid the trace "cannot get reset GPIO" when STM32MP157 device tree is used on stm32MP151 SOC without DSI support. In this hw_version value is 0, as DSI bridge is absent and the panel ofdata_to_platdata is called for each try of panel probe, the gpio reset pin is requested but after dsi father probe failed). For the next request, the PANEL ofdata_to_platdata failed as the gpio is already used. Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com> Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/stm32/stm32_dsi.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/video/stm32/stm32_dsi.c b/drivers/video/stm32/stm32_dsi.c
index 8891ca4..4027e97 100644
--- a/drivers/video/stm32/stm32_dsi.c
+++ b/drivers/video/stm32/stm32_dsi.c
@@ -483,6 +483,9 @@ static int stm32_dsi_probe(struct udevice *dev)
if (priv->hw_version != HWVER_130 &&
priv->hw_version != HWVER_131) {
dev_err(dev, "DSI version 0x%x not supported\n", priv->hw_version);
+ dev_dbg(dev, "remove and unbind all DSI child\n");
+ device_chld_remove(dev, NULL, DM_REMOVE_NORMAL);
+ device_chld_unbind(dev, NULL);
ret = -ENODEV;
goto err_clk;
}