drm/rockchip: rgb: add support for rk3506

It is needed to enable both dclk_bypass and data_bypass
in mcu mode.

Signed-off-by: Damon Ding <damon.ding@rock-chips.com>
Change-Id: I019a2242a6566fa5cfad0d9b981f020dc755c241
This commit is contained in:
Damon Ding
2023-05-05 17:05:35 +08:00
committed by Tao Huang
parent 5844aebe0f
commit 3e6bcbb063

View File

@@ -54,6 +54,9 @@
#define RK3288_LVDS_CON_CLKINV(x) HIWORD_UPDATE(x, 8, 8)
#define RK3288_LVDS_CON_TTL_EN(x) HIWORD_UPDATE(x, 6, 6)
#define RK3506_GRF_SOC_CON2 0x0008
#define RK3506_GRF_VOP_DATA_BYPASS(v) HIWORD_UPDATE(v, 1, 2)
#define RK3562_GRF_IOC_VO_IO_CON 0x10500
#define RK3562_RGB_DATA_BYPASS(v) HIWORD_UPDATE(v, 6, 6)
@@ -1080,6 +1083,22 @@ static const struct rockchip_rgb_data rk3288_rgb = {
.funcs = &rk3288_rgb_funcs,
};
static void rk3506_rgb_enable(struct rockchip_rgb *rgb)
{
regmap_write(rgb->grf, RK3506_GRF_SOC_CON2,
RK3506_GRF_VOP_DATA_BYPASS(rgb->data_sync_bypass ? 0x3 : 0x0));
}
static const struct rockchip_rgb_funcs rk3506_rgb_funcs = {
.enable = rk3506_rgb_enable,
};
static const struct rockchip_rgb_data rk3506_rgb = {
.rgb_max_dclk_rate = 120000,
.mcu_max_dclk_rate = 120000,
.funcs = &rk3506_rgb_funcs,
};
static void rk3562_rgb_enable(struct rockchip_rgb *rgb)
{
regmap_write(rgb->grf, RK3562_GRF_IOC_VO_IO_CON,
@@ -1167,6 +1186,7 @@ static const struct of_device_id rockchip_rgb_dt_ids[] = {
{ .compatible = "rockchip,rk3288-rgb", .data = &rk3288_rgb },
{ .compatible = "rockchip,rk3308-rgb", },
{ .compatible = "rockchip,rk3368-rgb", },
{ .compatible = "rockchip,rk3506-rgb", .data = &rk3506_rgb },
{ .compatible = "rockchip,rk3562-rgb", .data = &rk3562_rgb },
{ .compatible = "rockchip,rk3568-rgb", .data = &rk3568_rgb },
{ .compatible = "rockchip,rk3576-rgb", .data = &rk3576_rgb },