video: check hardware version of DSI
authorYannick Fertre <yannick.fertre@st.com>
Wed, 24 Jun 2020 08:43:59 +0000 (10:43 +0200)
committerAnatolij Gustschin <agust@denx.de>
Sat, 27 Jun 2020 23:22:24 +0000 (01:22 +0200)
Check the hardware version of DSI. Versions 1.30 & 1.31 are only
supported.

Signed-off-by: Yannick Fertre <yannick.fertre@st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@st.com>
Reviewed-by: Philippe Cornu <philippe.cornu@st.com>
drivers/video/stm32/stm32_dsi.c

index 0479643..31ab8eb 100644 (file)
@@ -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);