From d79af335fbe40d66f002875b463a799d1a5522c5 Mon Sep 17 00:00:00 2001 From: Andy Yan Date: Thu, 10 Sep 2020 16:10:13 +0800 Subject: [PATCH] drm/rockchip: rgb: Add support for rk3568 rgb interface RK3568 has one rgb output interface. Change-Id: I17a14681f3e0b872ea129de9e9f80a0527863911 Signed-off-by: Andy Yan --- drivers/gpu/drm/rockchip/rockchip_rgb.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/gpu/drm/rockchip/rockchip_rgb.c b/drivers/gpu/drm/rockchip/rockchip_rgb.c index e192c9265945..6107e899c709 100644 --- a/drivers/gpu/drm/rockchip/rockchip_rgb.c +++ b/drivers/gpu/drm/rockchip/rockchip_rgb.c @@ -53,6 +53,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 RK3568_GRF_VO_CON1 0X0364 +#define RK3568_RGB_DATA_BYPASS(v) HIWORD_UPDATE(v, 6, 6) + struct rockchip_rgb; struct rockchip_rgb_funcs { @@ -433,6 +436,16 @@ static const struct rockchip_rgb_funcs rk3288_rgb_funcs = { .disable = rk3288_rgb_disable, }; +static void rk3568_rgb_enable(struct rockchip_rgb *rgb) +{ + regmap_write(rgb->grf, RK3568_GRF_VO_CON1, + RK3568_RGB_DATA_BYPASS(rgb->data_sync_bypass)); +} + +static const struct rockchip_rgb_funcs rk3568_rgb_funcs = { + .enable = rk3568_rgb_enable, +}; + static void rv1126_rgb_enable(struct rockchip_rgb *rgb) { regmap_write(rgb->grf, RV1126_GRF_IOFUNC_CON3, @@ -451,6 +464,7 @@ static const struct of_device_id rockchip_rgb_dt_ids[] = { { .compatible = "rockchip,rk3288-rgb", .data = &rk3288_rgb_funcs }, { .compatible = "rockchip,rk3308-rgb", }, { .compatible = "rockchip,rk3368-rgb", }, + { .compatible = "rockchip,rk3568-rgb", .data = &rk3568_rgb_funcs }, { .compatible = "rockchip,rv1108-rgb", }, { .compatible = "rockchip,rv1126-rgb", .data = &rv1126_rgb_funcs}, {}