Check the hardware version of DSI. Versions 1.30 & 1.31 are only
supported.

Signed-off-by: Yannick Fertre <yannick.fer...@st.com>
---
 drivers/video/stm32/stm32_dsi.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/video/stm32/stm32_dsi.c b/drivers/video/stm32/stm32_dsi.c
index 04796435f1..31ab8ebec7 100644
--- a/drivers/video/stm32/stm32_dsi.c
+++ b/drivers/video/stm32/stm32_dsi.c
@@ -271,7 +271,6 @@ static int dsi_get_lane_mbps(void *priv_data, struct 
display_timing *timings,
        u32 val;
 
        /* Update lane capabilities according to hw version */
-       dsi->hw_version = dsi_read(dsi, DSI_VERSION) & VERSION;
        dsi->lane_min_kbps = LANE_MIN_KBPS;
        dsi->lane_max_kbps = LANE_MAX_KBPS;
        if (dsi->hw_version == HWVER_131) {
@@ -475,6 +474,15 @@ static int stm32_dsi_probe(struct udevice *dev)
        /* Reset */
        reset_deassert(&rst);
 
+       /* check hardware version */
+       priv->hw_version = dsi_read(priv, DSI_VERSION) & VERSION;
+       if (priv->hw_version != HWVER_130 &&
+           priv->hw_version != HWVER_131) {
+               dev_err(dev, "DSI version 0x%x not supported\n", 
priv->hw_version);
+               ret = -ENODEV;
+               goto err_clk;
+       }
+
        return 0;
 err_clk:
        clk_disable(&clk);
-- 
2.17.1

Reply via email to