Lines Matching defs:lcdc

145 	struct imx_lcdc *lcdc = imx_lcdc_from_drmdev(pipe->crtc.dev);
152 writel(addr, lcdc->base + IMX21LCDC_LSSAR);
159 clk_disable_unprepare(lcdc->clk_per);
164 writel(framesize, lcdc->base + IMX21LCDC_LSR);
170 writel(lhcr, lcdc->base + IMX21LCDC_LHCR);
176 writel(lvcr, lcdc->base + IMX21LCDC_LVCR);
178 lpcr = readl(lcdc->base + IMX21LCDC_LPCR);
181 writel(lpcr, lcdc->base + IMX21LCDC_LPCR);
184 writel(new_state->fb->pitches[0] / 4, lcdc->base + IMX21LCDC_LVPWR);
188 clk_prepare_enable(lcdc->clk_per);
198 struct imx_lcdc *lcdc = imx_lcdc_from_drmdev(pipe->crtc.dev);
200 struct drm_display_info *disp_info = &lcdc->connector->display_info;
208 clk_div = DIV_ROUND_CLOSEST_ULL(clk_get_rate(lcdc->clk_per),
223 lcdc->base + IMX21LCDC_LPCR);
226 writel(0x00000000, lcdc->base + IMX21LCDC_LPOR);
229 writel(readl(lcdc->base + IMX21LCDC_LCPR) & ~(IMX21LCDC_LCPR_CC0 | IMX21LCDC_LCPR_CC1),
230 lcdc->base + IMX21LCDC_LCPR);
232 ret = clk_prepare_enable(lcdc->clk_ipg);
237 ret = clk_prepare_enable(lcdc->clk_ahb);
241 clk_disable_unprepare(lcdc->clk_ipg);
249 writel(INTR_EOF, lcdc->base + IMX21LCDC_LIER);
254 struct imx_lcdc *lcdc = imx_lcdc_from_drmdev(pipe->crtc.dev);
255 struct drm_crtc *crtc = &lcdc->pipe.crtc;
258 clk_disable_unprepare(lcdc->clk_ahb);
259 clk_disable_unprepare(lcdc->clk_ipg);
262 clk_disable_unprepare(lcdc->clk_per);
264 spin_lock_irq(&lcdc->drm.event_lock);
270 spin_unlock_irq(&lcdc->drm.event_lock);
273 writel(0, lcdc->base + IMX21LCDC_LIER);
354 .name = "imx-lcdc",
360 .compatible = "fsl,imx21-lcdc",
363 .compatible = "fsl,imx25-lcdc",
371 struct imx_lcdc *lcdc = arg;
372 struct drm_crtc *crtc = &lcdc->pipe.crtc;
375 status = readl(lcdc->base + IMX21LCDC_LISR);
387 struct imx_lcdc *lcdc;
394 lcdc = devm_drm_dev_alloc(dev, &imx_lcdc_drm_driver,
396 if (IS_ERR(lcdc))
397 return PTR_ERR(lcdc);
399 drm = &lcdc->drm;
401 lcdc->base = devm_platform_ioremap_resource(pdev, 0);
402 if (IS_ERR(lcdc->base))
403 return dev_err_probe(dev, PTR_ERR(lcdc->base), "Cannot get IO memory\n");
410 lcdc->clk_ipg = devm_clk_get(dev, "ipg");
411 if (IS_ERR(lcdc->clk_ipg))
412 return dev_err_probe(dev, PTR_ERR(lcdc->clk_ipg), "Failed to get %s clk\n", "ipg");
414 lcdc->clk_ahb = devm_clk_get(dev, "ahb");
415 if (IS_ERR(lcdc->clk_ahb))
416 return dev_err_probe(dev, PTR_ERR(lcdc->clk_ahb), "Failed to get %s clk\n", "ahb");
418 lcdc->clk_per = devm_clk_get(dev, "per");
419 if (IS_ERR(lcdc->clk_per))
420 return dev_err_probe(dev, PTR_ERR(lcdc->clk_per), "Failed to get %s clk\n", "per");
432 ret = drm_simple_display_pipe_init(drm, &lcdc->pipe,
443 ret = drm_bridge_attach(&lcdc->pipe.encoder, bridge, NULL, DRM_BRIDGE_ATTACH_NO_CONNECTOR);
447 lcdc->connector = drm_bridge_connector_init(drm, &lcdc->pipe.encoder);
448 if (IS_ERR(lcdc->connector))
449 return dev_err_probe(drm->dev, PTR_ERR(lcdc->connector), "Cannot init bridge connector\n");
451 drm_connector_attach_encoder(lcdc->connector, &lcdc->pipe.encoder);
465 ret = clk_prepare_enable(lcdc->clk_ipg);
468 clk_disable_unprepare(lcdc->clk_ipg);
470 ret = clk_prepare_enable(lcdc->clk_per);
473 clk_disable_unprepare(lcdc->clk_per);
475 ret = clk_prepare_enable(lcdc->clk_ahb);
478 clk_disable_unprepare(lcdc->clk_ahb);
496 ret = devm_request_irq(dev, irq, imx_lcdc_irq_handler, 0, "imx-lcdc", lcdc);
502 ret = drm_dev_register(&lcdc->drm, 0);
526 .name = "imx-lcdc",