Lines Matching refs:dp

86 static int rockchip_dp_pre_init(struct rockchip_dp_device *dp)
88 reset_control_assert(dp->rst);
90 reset_control_deassert(dp->rst);
97 struct rockchip_dp_device *dp = pdata_encoder_to_dp(plat_data);
100 ret = clk_prepare_enable(dp->pclk);
102 DRM_DEV_ERROR(dp->dev, "failed to enable pclk %d\n", ret);
106 ret = rockchip_dp_pre_init(dp);
108 DRM_DEV_ERROR(dp->dev, "failed to dp pre init %d\n", ret);
109 clk_disable_unprepare(dp->pclk);
118 struct rockchip_dp_device *dp = pdata_encoder_to_dp(plat_data);
120 clk_disable_unprepare(dp->pclk);
179 struct rockchip_dp_device *dp = encoder_to_dp(encoder);
194 ret = drm_of_encoder_active_endpoint_id(dp->dev->of_node, encoder);
199 val = dp->data->lcdsel_lit;
201 val = dp->data->lcdsel_big;
203 DRM_DEV_DEBUG(dp->dev, "vop %s output to dp\n", (ret) ? "LIT" : "BIG");
205 ret = clk_prepare_enable(dp->grfclk);
207 DRM_DEV_ERROR(dp->dev, "failed to enable grfclk %d\n", ret);
211 ret = regmap_write(dp->grf, dp->data->lcdsel_grf_reg, val);
213 DRM_DEV_ERROR(dp->dev, "Could not write to GRF: %d\n", ret);
215 clk_disable_unprepare(dp->grfclk);
221 struct rockchip_dp_device *dp = encoder_to_dp(encoder);
238 DRM_DEV_ERROR(dp->dev, "line flag irq timed out\n");
272 static int rockchip_dp_of_probe(struct rockchip_dp_device *dp)
274 struct device *dev = dp->dev;
277 dp->grf = syscon_regmap_lookup_by_phandle(np, "rockchip,grf");
278 if (IS_ERR(dp->grf)) {
280 return PTR_ERR(dp->grf);
283 dp->grfclk = devm_clk_get(dev, "grf");
284 if (PTR_ERR(dp->grfclk) == -ENOENT) {
285 dp->grfclk = NULL;
286 } else if (PTR_ERR(dp->grfclk) == -EPROBE_DEFER) {
288 } else if (IS_ERR(dp->grfclk)) {
290 return PTR_ERR(dp->grfclk);
293 dp->pclk = devm_clk_get(dev, "pclk");
294 if (IS_ERR(dp->pclk)) {
296 return PTR_ERR(dp->pclk);
299 dp->rst = devm_reset_control_get(dev, "dp");
300 if (IS_ERR(dp->rst)) {
301 DRM_DEV_ERROR(dev, "failed to get dp reset control\n");
302 return PTR_ERR(dp->rst);
308 static int rockchip_dp_drm_create_encoder(struct rockchip_dp_device *dp)
310 struct drm_encoder *encoder = &dp->encoder.encoder;
311 struct drm_device *drm_dev = dp->drm_dev;
312 struct device *dev = dp->dev;
334 struct rockchip_dp_device *dp = dev_get_drvdata(dev);
338 dp->drm_dev = drm_dev;
340 ret = rockchip_dp_drm_create_encoder(dp);
346 dp->plat_data.encoder = &dp->encoder.encoder;
348 ret = analogix_dp_bind(dp->adp, drm_dev);
354 dp->encoder.encoder.funcs->destroy(&dp->encoder.encoder);
361 struct rockchip_dp_device *dp = dev_get_drvdata(dev);
363 analogix_dp_unbind(dp->adp);
364 dp->encoder.encoder.funcs->destroy(&dp->encoder.encoder);
377 struct rockchip_dp_device *dp;
388 dp = devm_kzalloc(dev, sizeof(*dp), GFP_KERNEL);
389 if (!dp)
392 dp->dev = dev;
393 dp->adp = ERR_PTR(-ENODEV);
394 dp->data = dp_data;
395 dp->plat_data.panel = panel;
396 dp->plat_data.dev_type = dp->data->chip_type;
397 dp->plat_data.power_on_start = rockchip_dp_poweron_start;
398 dp->plat_data.power_off = rockchip_dp_powerdown;
399 dp->plat_data.get_modes = rockchip_dp_get_modes;
401 ret = rockchip_dp_of_probe(dp);
405 platform_set_drvdata(pdev, dp);
407 dp->adp = analogix_dp_probe(dev, &dp->plat_data);
408 if (IS_ERR(dp->adp))
409 return PTR_ERR(dp->adp);
418 analogix_dp_remove(dp->adp);
424 struct rockchip_dp_device *dp = platform_get_drvdata(pdev);
427 analogix_dp_remove(dp->adp);
433 struct rockchip_dp_device *dp = dev_get_drvdata(dev);
435 if (IS_ERR(dp->adp))
438 return analogix_dp_suspend(dp->adp);
443 struct rockchip_dp_device *dp = dev_get_drvdata(dev);
445 if (IS_ERR(dp->adp))
448 return analogix_dp_resume(dp->adp);
474 {.compatible = "rockchip,rk3288-dp", .data = &rk3288_dp },
484 .name = "rockchip-dp",