[PATCH v2 2/9] drm/rockchip: hdmi: add RK3368 controller variant

Heiko Stuebner posted 9 patches 3 months, 2 weeks ago
There is a newer version of this series
[PATCH v2 2/9] drm/rockchip: hdmi: add RK3368 controller variant
Posted by Heiko Stuebner 3 months, 2 weeks ago
From: Heiko Stuebner <heiko.stuebner@cherry.de>

The RK3368 has only one VOP, so there is no source selection happening
and the controller uses an internal PHY for the HDMI output.

Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
---
 drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
index 7b613997bb50..95ff3fce97a3 100644
--- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
+++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
@@ -467,6 +467,19 @@ static const struct dw_hdmi_plat_data rk3328_hdmi_drv_data = {
 	.use_drm_infoframe = true,
 };
 
+static struct rockchip_hdmi_chip_data rk3368_chip_data = {
+	.lcdsel_grf_reg = -1,
+};
+
+static const struct dw_hdmi_plat_data rk3368_hdmi_drv_data = {
+	.mode_valid = dw_hdmi_rockchip_mode_valid,
+	.mpll_cfg   = rockchip_mpll_cfg,
+	.cur_ctr    = rockchip_cur_ctr,
+	.phy_config = rockchip_phy_config,
+	.phy_data = &rk3368_chip_data,
+	.use_drm_infoframe = true,
+};
+
 static struct rockchip_hdmi_chip_data rk3399_chip_data = {
 	.lcdsel_grf_reg = RK3399_GRF_SOC_CON20,
 	.lcdsel_big = FIELD_PREP_WM16_CONST(RK3399_HDMI_LCDC_SEL, 0),
@@ -507,6 +520,9 @@ static const struct of_device_id dw_hdmi_rockchip_dt_ids[] = {
 	{ .compatible = "rockchip,rk3328-dw-hdmi",
 	  .data = &rk3328_hdmi_drv_data
 	},
+	{ .compatible = "rockchip,rk3368-dw-hdmi",
+	 .data = &rk3368_hdmi_drv_data
+	},
 	{ .compatible = "rockchip,rk3399-dw-hdmi",
 	  .data = &rk3399_hdmi_drv_data
 	},
-- 
2.47.2
Re:[PATCH v2 2/9] drm/rockchip: hdmi: add RK3368 controller variant
Posted by Andy Yan 3 months, 2 weeks ago
Hello Heiko,

At 2025-10-21 15:42:47, "Heiko Stuebner" <heiko@sntech.de> wrote:
>From: Heiko Stuebner <heiko.stuebner@cherry.de>
>
>The RK3368 has only one VOP, so there is no source selection happening
>and the controller uses an internal PHY for the HDMI output.
>
>Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>

Reviewed-by: Andy Yan <andyshrk@163.com>

Thanks


>---
> drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
>diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
>index 7b613997bb50..95ff3fce97a3 100644
>--- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
>+++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c
>@@ -467,6 +467,19 @@ static const struct dw_hdmi_plat_data rk3328_hdmi_drv_data = {
> 	.use_drm_infoframe = true,
> };
> 
>+static struct rockchip_hdmi_chip_data rk3368_chip_data = {
>+	.lcdsel_grf_reg = -1,
>+};
>+
>+static const struct dw_hdmi_plat_data rk3368_hdmi_drv_data = {
>+	.mode_valid = dw_hdmi_rockchip_mode_valid,
>+	.mpll_cfg   = rockchip_mpll_cfg,
>+	.cur_ctr    = rockchip_cur_ctr,
>+	.phy_config = rockchip_phy_config,
>+	.phy_data = &rk3368_chip_data,
>+	.use_drm_infoframe = true,
>+};
>+
> static struct rockchip_hdmi_chip_data rk3399_chip_data = {
> 	.lcdsel_grf_reg = RK3399_GRF_SOC_CON20,
> 	.lcdsel_big = FIELD_PREP_WM16_CONST(RK3399_HDMI_LCDC_SEL, 0),
>@@ -507,6 +520,9 @@ static const struct of_device_id dw_hdmi_rockchip_dt_ids[] = {
> 	{ .compatible = "rockchip,rk3328-dw-hdmi",
> 	  .data = &rk3328_hdmi_drv_data
> 	},
>+	{ .compatible = "rockchip,rk3368-dw-hdmi",
>+	 .data = &rk3368_hdmi_drv_data
>+	},
> 	{ .compatible = "rockchip,rk3399-dw-hdmi",
> 	  .data = &rk3399_hdmi_drv_data
> 	},
>-- 
>2.47.2