The RK3568 eDP controller does not require any GRF configurations, so make the "rockchip,grf" property optional. Also enable the optional avdd-0v9 and avdd-1v8 supplies which power the eDP PHY.
Add the "rockchip,rk3568-edp" compatible along with its chip data; the register base in the chip data is used to match the platform device memory resource. Signed-off-by: Damon Ding <[email protected]> --- .../gpu/drm/rockchip/analogix_dp-rockchip.c | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c index ccdd4b9ecdb8..5bd59e69ae96 100644 --- a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c +++ b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c @@ -320,8 +320,9 @@ static int rockchip_dp_of_probe(struct rockchip_dp_device *dp) struct device *dev = dp->dev; struct device_node *np = dev->of_node; struct clk *clk; + int ret; - dp->grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf"); + dp->grf = syscon_regmap_lookup_by_phandle_optional(np, "rockchip,grf"); if (IS_ERR(dp->grf)) return dev_err_probe(dev, PTR_ERR(dp->grf), "failed to get rockchip,grf property\n"); @@ -351,6 +352,14 @@ static int rockchip_dp_of_probe(struct rockchip_dp_device *dp) return dev_err_probe(dev, PTR_ERR(dp->apbrst), "failed to get apb reset control\n"); + ret = devm_regulator_get_enable_optional(dev, "avdd-0v9"); + if (ret && ret != -ENODEV) + return dev_err_probe(dev, ret, "failed to enable avdd-0v9\n"); + + ret = devm_regulator_get_enable_optional(dev, "avdd-1v8"); + if (ret && ret != -ENODEV) + return dev_err_probe(dev, ret, "failed to enable avdd-1v8\n"); + return 0; } @@ -530,6 +539,14 @@ static const struct rockchip_dp_chip_data rk3288_dp[] = { { /* sentinel */ } }; +static const struct rockchip_dp_chip_data rk3568_edp[] = { + { + .chip_type = RK3568_EDP, + .reg = 0xfe0c0000, + }, + { /* sentinel */ } +}; + static const struct rockchip_dp_chip_data rk3576_edp[] = { { .chip_type = RK3576_EDP, @@ -555,6 +572,7 @@ static const struct rockchip_dp_chip_data rk3588_edp[] = { static const struct of_device_id rockchip_dp_dt_ids[] = { {.compatible = "rockchip,rk3288-dp", .data = &rk3288_dp }, {.compatible = "rockchip,rk3399-edp", .data = &rk3399_edp }, + {.compatible = "rockchip,rk3568-edp", .data = &rk3568_edp }, {.compatible = "rockchip,rk3576-edp", .data = &rk3576_edp }, {.compatible = "rockchip,rk3588-edp", .data = &rk3588_edp }, {} -- 2.34.1
