• Home
  • Raw
  • Download

Lines Matching full:dpi

18  * DOC: VC4 DPI module
20 * The VC4 DPI hardware supports MIPI DPI type 4 and Nokia ViSSI
94 /* General DPI hardware state. */
106 #define DPI_READ(offset) readl(dpi->regs + (offset))
107 #define DPI_WRITE(offset, val) writel(val, dpi->regs + (offset))
109 /* VC4 DPI encoder KMS struct */
112 struct vc4_dpi *dpi; member
136 struct vc4_dpi *dpi = vc4->dpi; in vc4_dpi_debugfs_regs() local
139 if (!dpi) in vc4_dpi_debugfs_regs()
159 struct vc4_dpi *dpi = vc4_encoder->dpi; in vc4_dpi_encoder_disable() local
161 clk_disable_unprepare(dpi->pixel_clock); in vc4_dpi_encoder_disable()
169 struct vc4_dpi *dpi = vc4_encoder->dpi; in vc4_dpi_encoder_enable() local
175 /* Look up the connector attached to DPI so we can get the in vc4_dpi_encoder_enable()
235 ret = clk_set_rate(dpi->pixel_clock, mode->clock * 1000); in vc4_dpi_encoder_enable()
239 ret = clk_prepare_enable(dpi->pixel_clock); in vc4_dpi_encoder_enable()
260 { .compatible = "brcm,bcm2835-dpi", .data = NULL },
267 static int vc4_dpi_init_bridge(struct vc4_dpi *dpi) in vc4_dpi_init_bridge() argument
269 struct device *dev = &dpi->pdev->dev; in vc4_dpi_init_bridge()
289 return drm_bridge_attach(dpi->encoder, bridge, NULL); in vc4_dpi_init_bridge()
297 struct vc4_dpi *dpi; in vc4_dpi_bind() local
301 dpi = devm_kzalloc(dev, sizeof(*dpi), GFP_KERNEL); in vc4_dpi_bind()
302 if (!dpi) in vc4_dpi_bind()
310 vc4_dpi_encoder->dpi = dpi; in vc4_dpi_bind()
311 dpi->encoder = &vc4_dpi_encoder->base.base; in vc4_dpi_bind()
313 dpi->pdev = pdev; in vc4_dpi_bind()
314 dpi->regs = vc4_ioremap_regs(pdev, 0); in vc4_dpi_bind()
315 if (IS_ERR(dpi->regs)) in vc4_dpi_bind()
316 return PTR_ERR(dpi->regs); in vc4_dpi_bind()
324 dpi->core_clock = devm_clk_get(dev, "core"); in vc4_dpi_bind()
325 if (IS_ERR(dpi->core_clock)) { in vc4_dpi_bind()
326 ret = PTR_ERR(dpi->core_clock); in vc4_dpi_bind()
331 dpi->pixel_clock = devm_clk_get(dev, "pixel"); in vc4_dpi_bind()
332 if (IS_ERR(dpi->pixel_clock)) { in vc4_dpi_bind()
333 ret = PTR_ERR(dpi->pixel_clock); in vc4_dpi_bind()
339 ret = clk_prepare_enable(dpi->core_clock); in vc4_dpi_bind()
343 drm_encoder_init(drm, dpi->encoder, &vc4_dpi_encoder_funcs, in vc4_dpi_bind()
345 drm_encoder_helper_add(dpi->encoder, &vc4_dpi_encoder_helper_funcs); in vc4_dpi_bind()
347 ret = vc4_dpi_init_bridge(dpi); in vc4_dpi_bind()
351 dev_set_drvdata(dev, dpi); in vc4_dpi_bind()
353 vc4->dpi = dpi; in vc4_dpi_bind()
358 drm_encoder_cleanup(dpi->encoder); in vc4_dpi_bind()
359 clk_disable_unprepare(dpi->core_clock); in vc4_dpi_bind()
368 struct vc4_dpi *dpi = dev_get_drvdata(dev); in vc4_dpi_unbind() local
372 drm_encoder_cleanup(dpi->encoder); in vc4_dpi_unbind()
374 clk_disable_unprepare(dpi->core_clock); in vc4_dpi_unbind()
376 vc4->dpi = NULL; in vc4_dpi_unbind()