From 36c9d7fd8fa59b463cfede5adc5c65316776b28c Mon Sep 17 00:00:00 2001 From: Zhang Yubing Date: Wed, 9 Nov 2022 11:31:42 +0800 Subject: [PATCH] drm/rockchip: lvds: add support rk3562 Signed-off-by: Zhang Yubing Change-Id: I95a42245599c2440b6405fcfd048e9b32b1636c9 --- drivers/gpu/drm/rockchip/rockchip_lvds.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/gpu/drm/rockchip/rockchip_lvds.c b/drivers/gpu/drm/rockchip/rockchip_lvds.c index ce4b3a251146..8b3a1812c40d 100644 --- a/drivers/gpu/drm/rockchip/rockchip_lvds.c +++ b/drivers/gpu/drm/rockchip/rockchip_lvds.c @@ -61,6 +61,9 @@ #define RK3368_LVDS_MSBSEL(x) HIWORD_UPDATE(x, 11, 11) #define RK3368_LVDS_P2S_EN(x) HIWORD_UPDATE(x, 6, 6) +#define RK3562_GRF_VO_CON0 0x05d0 +#define RK3562_GRF_VO_CON1 0x05d4 + #define RK3568_GRF_VO_CON0 0x0360 #define RK3568_LVDS1_SELECT(x) HIWORD_UPDATE(x, 13, 12) #define RK3568_LVDS1_MSBSEL(x) HIWORD_UPDATE(x, 11, 11) @@ -646,6 +649,25 @@ static int __maybe_unused rockchip_secondary_lvds_probe(struct rockchip_lvds *lv return 0; } +static void rk3562_lvds_enable(struct rockchip_lvds *lvds) +{ + regmap_write(lvds->grf, RK3562_GRF_VO_CON1, + RK3568_LVDS0_MODE_EN(1) | RK3568_LVDS0_P2S_EN(1) | + RK3568_LVDS0_DCLK_INV_SEL(1)); + regmap_write(lvds->grf, RK3562_GRF_VO_CON0, + RK3568_LVDS0_SELECT(lvds->format) | RK3568_LVDS0_MSBSEL(1)); +} + +static void rk3562_lvds_disable(struct rockchip_lvds *lvds) +{ + regmap_write(lvds->grf, RK3562_GRF_VO_CON1, RK3568_LVDS0_MODE_EN(0)); +} + +static const struct rockchip_lvds_funcs rk3562_lvds_funcs = { + .enable = rk3562_lvds_enable, + .disable = rk3562_lvds_disable, +}; + static void rk3568_lvds_enable(struct rockchip_lvds *lvds) { regmap_write(lvds->grf, RK3568_GRF_VO_CON2, @@ -670,6 +692,7 @@ static const struct of_device_id rockchip_lvds_dt_ids[] = { { .compatible = "rockchip,rk3126-lvds", .data = &rk3126_lvds_funcs }, { .compatible = "rockchip,rk3288-lvds", .data = &rk3288_lvds_funcs }, { .compatible = "rockchip,rk3368-lvds", .data = &rk3368_lvds_funcs }, + { .compatible = "rockchip,rk3562-lvds", .data = &rk3562_lvds_funcs }, { .compatible = "rockchip,rk3568-lvds", .data = &rk3568_lvds_funcs }, {} };