Lines Matching refs:mcde
114 struct mcde *mcde = data; in mcde_irq() local
117 val = readl(mcde->regs + MCDE_MISERR); in mcde_irq()
119 mcde_display_irq(mcde); in mcde_irq()
122 dev_info(mcde->dev, "some error IRQ\n"); in mcde_irq()
123 writel(val, mcde->regs + MCDE_RISERR); in mcde_irq()
131 struct mcde *mcde = to_mcde(drm); in mcde_modeset_init() local
142 if (!mcde->bridge) { in mcde_modeset_init()
162 mcde->dpi_output = true; in mcde_modeset_init()
163 mcde->bridge = bridge; in mcde_modeset_init()
164 mcde->flow_mode = MCDE_DPI_FORMATTER_FLOW; in mcde_modeset_init()
189 ret = drm_simple_display_pipe_attach_bridge(&mcde->pipe, in mcde_modeset_init()
190 mcde->bridge); in mcde_modeset_init()
272 struct mcde *mcde; in mcde_probe() local
279 mcde = devm_drm_dev_alloc(dev, &mcde_drm_driver, struct mcde, drm); in mcde_probe()
280 if (IS_ERR(mcde)) in mcde_probe()
281 return PTR_ERR(mcde); in mcde_probe()
282 drm = &mcde->drm; in mcde_probe()
283 mcde->dev = dev; in mcde_probe()
287 mcde->epod = devm_regulator_get(dev, "epod"); in mcde_probe()
288 if (IS_ERR(mcde->epod)) { in mcde_probe()
289 ret = PTR_ERR(mcde->epod); in mcde_probe()
293 ret = regulator_enable(mcde->epod); in mcde_probe()
298 mcde->vana = devm_regulator_get(dev, "vana"); in mcde_probe()
299 if (IS_ERR(mcde->vana)) { in mcde_probe()
300 ret = PTR_ERR(mcde->vana); in mcde_probe()
304 ret = regulator_enable(mcde->vana); in mcde_probe()
315 mcde->mcde_clk = devm_clk_get(dev, "mcde"); in mcde_probe()
316 if (IS_ERR(mcde->mcde_clk)) { in mcde_probe()
318 ret = PTR_ERR(mcde->mcde_clk); in mcde_probe()
321 ret = clk_prepare_enable(mcde->mcde_clk); in mcde_probe()
326 dev_info(dev, "MCDE clk rate %lu Hz\n", clk_get_rate(mcde->mcde_clk)); in mcde_probe()
328 mcde->lcd_clk = devm_clk_get(dev, "lcd"); in mcde_probe()
329 if (IS_ERR(mcde->lcd_clk)) { in mcde_probe()
331 ret = PTR_ERR(mcde->lcd_clk); in mcde_probe()
334 mcde->hdmi_clk = devm_clk_get(dev, "hdmi"); in mcde_probe()
335 if (IS_ERR(mcde->hdmi_clk)) { in mcde_probe()
337 ret = PTR_ERR(mcde->hdmi_clk); in mcde_probe()
341 mcde->regs = devm_platform_ioremap_resource(pdev, 0); in mcde_probe()
342 if (IS_ERR(mcde->regs)) { in mcde_probe()
354 ret = devm_request_irq(dev, irq, mcde_irq, 0, "mcde", mcde); in mcde_probe()
366 pid = readl(mcde->regs + MCDE_PID); in mcde_probe()
383 mcde_display_disable_irqs(mcde); in mcde_probe()
384 writel(0, mcde->regs + MCDE_IMSCERR); in mcde_probe()
385 writel(0xFFFFFFFF, mcde->regs + MCDE_RISERR); in mcde_probe()
419 ret = regulator_disable(mcde->epod); in mcde_probe()
435 clk_disable_unprepare(mcde->mcde_clk); in mcde_probe()
436 regulator_disable(mcde->vana); in mcde_probe()
443 clk_disable_unprepare(mcde->mcde_clk); in mcde_probe()
445 regulator_disable(mcde->vana); in mcde_probe()
447 regulator_disable(mcde->epod); in mcde_probe()
455 struct mcde *mcde = to_mcde(drm); in mcde_remove() local
458 clk_disable_unprepare(mcde->mcde_clk); in mcde_remove()
459 regulator_disable(mcde->vana); in mcde_remove()
460 regulator_disable(mcde->epod); in mcde_remove()