]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/rockchip: dsi: Add support for rk3506
authorChaoyi Chen <chaoyi.chen@rock-chips.com>
Thu, 6 Nov 2025 02:06:30 +0000 (10:06 +0800)
committerHeiko Stuebner <heiko@sntech.de>
Thu, 8 Jan 2026 19:00:35 +0000 (20:00 +0100)
The dsi controller found on RK3506 supports up to 2 lanes.

Signed-off-by: Hongming Zou <hongming.zou@rock-chips.com>
Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://patch.msgid.link/20251106020632.92-8-kernel@airkyi.com
drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c

index 2dad6b7b61b2b70861c38dcd58f0944f663615c3..3547d91b25d317c6cad690da7d97a7e5436c0236 100644 (file)
 #define RK3568_DSI0_TURNDISABLE                BIT(2)
 #define RK3568_DSI0_FORCERXMODE                BIT(0)
 
+#define RK3506_SYS_GRF_SOC_CON6                0x0018
+#define RK3506_DSI_FORCETXSTOPMODE     (0xf << 4)
+#define RK3506_DSI_TURNDISABLE         BIT(2)
+#define RK3506_DSI_FORCERXMODE         BIT(0)
+
 /*
  * Note these registers do not appear in the datasheet, they are
  * however present in the BSP driver which is where these values
@@ -1661,6 +1666,18 @@ static const struct rockchip_dw_dsi_chip_data rk3399_chip_data[] = {
        { /* sentinel */ }
 };
 
+static const struct rockchip_dw_dsi_chip_data rk3506_chip_data[] = {
+       {
+               .reg = 0xff640000,
+               .lanecfg1_grf_reg = RK3506_SYS_GRF_SOC_CON6,
+               .lanecfg1 = (FIELD_PREP_WM16_CONST(RK3506_DSI_TURNDISABLE, 0) |
+                            FIELD_PREP_WM16_CONST(RK3506_DSI_FORCERXMODE, 0) |
+                            FIELD_PREP_WM16_CONST(RK3506_DSI_FORCETXSTOPMODE, 0)),
+               .max_data_lanes = 2,
+       },
+       { /* sentinel */ }
+};
+
 static const struct rockchip_dw_dsi_chip_data rk3568_chip_data[] = {
        {
                .reg = 0xfe060000,
@@ -1711,6 +1728,9 @@ static const struct of_device_id dw_mipi_dsi_rockchip_dt_ids[] = {
        }, {
         .compatible = "rockchip,rk3399-mipi-dsi",
         .data = &rk3399_chip_data,
+       }, {
+        .compatible = "rockchip,rk3506-mipi-dsi",
+        .data = &rk3506_chip_data,
        }, {
         .compatible = "rockchip,rk3568-mipi-dsi",
         .data = &rk3568_chip_data,