drm/rockchip: lvds: add support rk3562

Signed-off-by: Zhang Yubing <yubing.zhang@rock-chips.com>
Change-Id: I95a42245599c2440b6405fcfd048e9b32b1636c9
This commit is contained in:
Zhang Yubing
2022-11-09 11:31:42 +08:00
committed by Tao Huang
parent a2bb42f791
commit 36c9d7fd8f

View File

@@ -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 },
{}
};