Lines Matching defs:dpi
106 readl(dpi->regs + (offset)); \
112 writel(val, dpi->regs + (offset)); \
123 struct vc4_dpi *dpi = to_vc4_dpi(encoder);
129 clk_disable_unprepare(dpi->pixel_clock);
138 struct vc4_dpi *dpi = to_vc4_dpi(encoder);
237 ret = clk_set_rate(dpi->pixel_clock, mode->clock * 1000);
241 ret = clk_prepare_enable(dpi->pixel_clock);
266 struct vc4_dpi *dpi = to_vc4_dpi(encoder);
268 vc4_debugfs_add_regset32(drm, "dpi_regs", &dpi->regset);
278 { .compatible = "brcm,bcm2835-dpi", .data = NULL },
285 static int vc4_dpi_init_bridge(struct vc4_dpi *dpi)
287 struct drm_device *drm = dpi->encoder.base.dev;
288 struct device *dev = &dpi->pdev->dev;
302 return drm_bridge_attach(&dpi->encoder.base, bridge, NULL, 0);
307 struct vc4_dpi *dpi = ptr;
309 clk_disable_unprepare(dpi->core_clock);
316 struct vc4_dpi *dpi;
319 dpi = drmm_kzalloc(drm, sizeof(*dpi), GFP_KERNEL);
320 if (!dpi)
323 dpi->encoder.type = VC4_ENCODER_TYPE_DPI;
324 dpi->pdev = pdev;
325 dpi->regs = vc4_ioremap_regs(pdev, 0);
326 if (IS_ERR(dpi->regs))
327 return PTR_ERR(dpi->regs);
328 dpi->regset.base = dpi->regs;
329 dpi->regset.regs = dpi_regs;
330 dpi->regset.nregs = ARRAY_SIZE(dpi_regs);
338 dpi->core_clock = devm_clk_get(dev, "core");
339 if (IS_ERR(dpi->core_clock)) {
340 ret = PTR_ERR(dpi->core_clock);
346 dpi->pixel_clock = devm_clk_get(dev, "pixel");
347 if (IS_ERR(dpi->pixel_clock)) {
348 ret = PTR_ERR(dpi->pixel_clock);
354 ret = clk_prepare_enable(dpi->core_clock);
360 ret = devm_add_action_or_reset(dev, vc4_dpi_disable_clock, dpi);
364 ret = drmm_encoder_init(drm, &dpi->encoder.base,
371 drm_encoder_helper_add(&dpi->encoder.base, &vc4_dpi_encoder_helper_funcs);
373 ret = vc4_dpi_init_bridge(dpi);
377 dev_set_drvdata(dev, dpi);