================================
Required properties:
-- compatible: "rockchip,rk3288-dp" or "rockchip,rk3399-edp"
+- compatible: "rockchip,rk3288-dp",
+ "rockchip,rk3368-edp",
+ "rockchip,rk3399-edp";
- reg: physical base address of the controller and length
if (dp->plat_data && (dp->plat_data->dev_type == ROCKCHIP_DP)) {
reg = REF_CLK_24M;
- if (dp->plat_data->subdev_type == RK3288_DP)
+ if (dp->plat_data->subdev_type == RK3288_DP ||
+ dp->plat_data->subdev_type == RK3368_EDP)
reg ^= REF_CLK_MASK;
writel(reg, dp->reg_base + ANALOGIX_DP_PLL_REG_1);
u32 lcdsel_big;
u32 lcdsel_lit;
u32 chip_type;
+ bool has_vop_sel;
};
struct rockchip_dp_device {
int ret;
u32 val;
+ if (!dp->data->has_vop_sel)
+ return;
+
ret = drm_of_encoder_active_endpoint_id(dp->dev->of_node, encoder);
if (ret < 0)
return;
.lcdsel_big = 0 | BIT(21),
.lcdsel_lit = BIT(5) | BIT(21),
.chip_type = RK3399_EDP,
+ .has_vop_sel = true,
+};
+
+static const struct rockchip_dp_chip_data rk3368_edp = {
+ .chip_type = RK3368_EDP,
};
static const struct rockchip_dp_chip_data rk3288_dp = {
.lcdsel_big = 0 | BIT(21),
.lcdsel_lit = BIT(5) | BIT(21),
.chip_type = RK3288_DP,
+ .has_vop_sel = true,
};
static const struct of_device_id rockchip_dp_dt_ids[] = {
{.compatible = "rockchip,rk3288-dp", .data = &rk3288_dp },
+ {.compatible = "rockchip,rk3368-edp", .data = &rk3368_edp },
{.compatible = "rockchip,rk3399-edp", .data = &rk3399_edp },
{}
};