Lines Matching defs:lcdc

143 	struct imx_lcdc *lcdc = imx_lcdc_from_drmdev(pipe->crtc.dev);
150 writel(addr, lcdc->base + IMX21LCDC_LSSAR);
157 clk_disable_unprepare(lcdc->clk_per);
162 writel(framesize, lcdc->base + IMX21LCDC_LSR);
168 writel(lhcr, lcdc->base + IMX21LCDC_LHCR);
174 writel(lvcr, lcdc->base + IMX21LCDC_LVCR);
176 lpcr = readl(lcdc->base + IMX21LCDC_LPCR);
179 writel(lpcr, lcdc->base + IMX21LCDC_LPCR);
182 writel(new_state->fb->pitches[0] / 4, lcdc->base + IMX21LCDC_LVPWR);
186 clk_prepare_enable(lcdc->clk_per);
196 struct imx_lcdc *lcdc = imx_lcdc_from_drmdev(pipe->crtc.dev);
198 struct drm_display_info *disp_info = &lcdc->connector->display_info;
206 clk_div = DIV_ROUND_CLOSEST_ULL(clk_get_rate(lcdc->clk_per),
221 lcdc->base + IMX21LCDC_LPCR);
224 writel(0x00000000, lcdc->base + IMX21LCDC_LPOR);
227 writel(readl(lcdc->base + IMX21LCDC_LCPR) & ~(IMX21LCDC_LCPR_CC0 | IMX21LCDC_LCPR_CC1),
228 lcdc->base + IMX21LCDC_LCPR);
230 ret = clk_prepare_enable(lcdc->clk_ipg);
235 ret = clk_prepare_enable(lcdc->clk_ahb);
239 clk_disable_unprepare(lcdc->clk_ipg);
247 writel(INTR_EOF, lcdc->base + IMX21LCDC_LIER);
252 struct imx_lcdc *lcdc = imx_lcdc_from_drmdev(pipe->crtc.dev);
253 struct drm_crtc *crtc = &lcdc->pipe.crtc;
256 clk_disable_unprepare(lcdc->clk_ahb);
257 clk_disable_unprepare(lcdc->clk_ipg);
260 clk_disable_unprepare(lcdc->clk_per);
262 spin_lock_irq(&lcdc->drm.event_lock);
268 spin_unlock_irq(&lcdc->drm.event_lock);
271 writel(0, lcdc->base + IMX21LCDC_LIER);
351 .name = "imx-lcdc",
358 .compatible = "fsl,imx21-lcdc",
361 .compatible = "fsl,imx25-lcdc",
369 struct imx_lcdc *lcdc = arg;
370 struct drm_crtc *crtc = &lcdc->pipe.crtc;
373 status = readl(lcdc->base + IMX21LCDC_LISR);
385 struct imx_lcdc *lcdc;
392 lcdc = devm_drm_dev_alloc(dev, &imx_lcdc_drm_driver,
394 if (IS_ERR(lcdc))
395 return PTR_ERR(lcdc);
397 drm = &lcdc->drm;
399 lcdc->base = devm_platform_ioremap_resource(pdev, 0);
400 if (IS_ERR(lcdc->base))
401 return dev_err_probe(dev, PTR_ERR(lcdc->base), "Cannot get IO memory\n");
408 lcdc->clk_ipg = devm_clk_get(dev, "ipg");
409 if (IS_ERR(lcdc->clk_ipg))
410 return dev_err_probe(dev, PTR_ERR(lcdc->clk_ipg), "Failed to get %s clk\n", "ipg");
412 lcdc->clk_ahb = devm_clk_get(dev, "ahb");
413 if (IS_ERR(lcdc->clk_ahb))
414 return dev_err_probe(dev, PTR_ERR(lcdc->clk_ahb), "Failed to get %s clk\n", "ahb");
416 lcdc->clk_per = devm_clk_get(dev, "per");
417 if (IS_ERR(lcdc->clk_per))
418 return dev_err_probe(dev, PTR_ERR(lcdc->clk_per), "Failed to get %s clk\n", "per");
430 ret = drm_simple_display_pipe_init(drm, &lcdc->pipe,
441 ret = drm_bridge_attach(&lcdc->pipe.encoder, bridge, NULL, DRM_BRIDGE_ATTACH_NO_CONNECTOR);
445 lcdc->connector = drm_bridge_connector_init(drm, &lcdc->pipe.encoder);
446 if (IS_ERR(lcdc->connector))
447 return dev_err_probe(drm->dev, PTR_ERR(lcdc->connector), "Cannot init bridge connector\n");
449 drm_connector_attach_encoder(lcdc->connector, &lcdc->pipe.encoder);
463 ret = clk_prepare_enable(lcdc->clk_ipg);
466 clk_disable_unprepare(lcdc->clk_ipg);
468 ret = clk_prepare_enable(lcdc->clk_per);
471 clk_disable_unprepare(lcdc->clk_per);
473 ret = clk_prepare_enable(lcdc->clk_ahb);
476 clk_disable_unprepare(lcdc->clk_ahb);
494 ret = devm_request_irq(dev, irq, imx_lcdc_irq_handler, 0, "imx-lcdc", lcdc);
500 ret = drm_dev_register(&lcdc->drm, 0);
526 .name = "imx-lcdc",