From 3cdbc041e2caf78a492cf55eccc7269fbbd60afb Mon Sep 17 00:00:00 2001 From: Damon Ding Date: Fri, 3 Nov 2023 17:15:47 +0800 Subject: [PATCH] drm/rockchip: rgb: add support for rk3576 Signed-off-by: Damon Ding Change-Id: I52f6fdad495700dd172fa86c85d168100fcd7486 --- drivers/gpu/drm/rockchip/rockchip_rgb.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/gpu/drm/rockchip/rockchip_rgb.c b/drivers/gpu/drm/rockchip/rockchip_rgb.c index e1041eb2e7b0..003dfc0bf949 100644 --- a/drivers/gpu/drm/rockchip/rockchip_rgb.c +++ b/drivers/gpu/drm/rockchip/rockchip_rgb.c @@ -60,6 +60,9 @@ #define RK3568_GRF_VO_CON1 0X0364 #define RK3568_RGB_DATA_BYPASS(v) HIWORD_UPDATE(v, 6, 6) +#define RK3576_IOC_GRF_MISC_CON8 0x6420 +#define RK3576_VOP_MCU_SEL(v) HIWORD_UPDATE(v, 10, 10) + struct rockchip_rgb; struct rockchip_rgb_funcs { @@ -1096,6 +1099,20 @@ static const struct rockchip_rgb_data rk3568_rgb = { .funcs = &rk3568_rgb_funcs, }; +static void rk3576_rgb_enable(struct rockchip_rgb *rgb) +{ + regmap_write(rgb->grf, RK3576_IOC_GRF_MISC_CON8, + RK3576_VOP_MCU_SEL(rgb->data_sync_bypass)); +} + +static const struct rockchip_rgb_funcs rk3576_rgb_funcs = { + .enable = rk3576_rgb_enable, +}; + +static const struct rockchip_rgb_data rk3576_rgb = { + .funcs = &rk3576_rgb_funcs, +}; + static void rv1126_rgb_enable(struct rockchip_rgb *rgb) { regmap_write(rgb->grf, RV1126_GRF_IOFUNC_CON3, @@ -1138,6 +1155,7 @@ static const struct of_device_id rockchip_rgb_dt_ids[] = { { .compatible = "rockchip,rk3368-rgb", }, { .compatible = "rockchip,rk3562-rgb", .data = &rk3562_rgb }, { .compatible = "rockchip,rk3568-rgb", .data = &rk3568_rgb }, + { .compatible = "rockchip,rk3576-rgb", .data = &rk3576_rgb }, { .compatible = "rockchip,rk3588-rgb", }, { .compatible = "rockchip,rv1106-rgb", .data = &rv1106_rgb}, { .compatible = "rockchip,rv1108-rgb", },