From a2bb42f79146e972146ccc97ce462d334423f450 Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Tue, 3 Jan 2023 15:07:52 +0800 Subject: [PATCH] drm/rockchip: rgb: add support rk3562 Signed-off-by: Sandy Huang Change-Id: Iefbb7f45bbafcd5bbfb6840d0968c9b6aef6b709 --- 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 c6ca9596ca1f..8797a5eb0437 100644 --- a/drivers/gpu/drm/rockchip/rockchip_rgb.c +++ b/drivers/gpu/drm/rockchip/rockchip_rgb.c @@ -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 RK3562_GRF_IOC_VO_IO_CON 0x500 +#define RK3562_RGB_DATA_BYPASS(v) HIWORD_UPDATE(v, 6, 6) + #define RK3568_GRF_VO_CON1 0X0364 #define RK3568_RGB_DATA_BYPASS(v) HIWORD_UPDATE(v, 6, 6) @@ -974,6 +977,20 @@ static const struct rockchip_rgb_data rk3288_rgb = { .funcs = &rk3288_rgb_funcs, }; +static void rk3562_rgb_enable(struct rockchip_rgb *rgb) +{ + regmap_write(rgb->grf, RK3562_GRF_IOC_VO_IO_CON, + RK3562_RGB_DATA_BYPASS(rgb->data_sync_bypass)); +} + +static const struct rockchip_rgb_funcs rk3562_rgb_funcs = { + .enable = rk3562_rgb_enable, +}; + +static const struct rockchip_rgb_data rk3562_rgb = { + .funcs = &rk3562_rgb_funcs, +}; + static void rk3568_rgb_enable(struct rockchip_rgb *rgb) { regmap_write(rgb->grf, RK3568_GRF_VO_CON1, @@ -1027,6 +1044,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,rk3562-rgb", .data = &rk3562_rgb }, { .compatible = "rockchip,rk3568-rgb", .data = &rk3568_rgb }, { .compatible = "rockchip,rk3588-rgb", }, { .compatible = "rockchip,rv1106-rgb", .data = &rv1106_rgb},