Lines Matching defs:imx8qxp_ldb

44 struct imx8qxp_ldb {
60 static inline struct imx8qxp_ldb *base_to_imx8qxp_ldb(struct ldb *base)
62 return container_of(base, struct imx8qxp_ldb, base);
65 static void imx8qxp_ldb_set_phy_cfg(struct imx8qxp_ldb *imx8qxp_ldb,
74 phy_cfg->is_slave = !imx8qxp_ldb->companion;
91 struct imx8qxp_ldb *imx8qxp_ldb = base_to_imx8qxp_ldb(ldb);
92 struct drm_bridge *companion = imx8qxp_ldb->companion;
105 imx8qxp_ldb_set_phy_cfg(imx8qxp_ldb, di_clk, is_split, phy_cfg);
108 DRM_DEV_DEBUG_DRIVER(imx8qxp_ldb->dev,
133 struct imx8qxp_ldb *imx8qxp_ldb = base_to_imx8qxp_ldb(ldb);
134 struct drm_bridge *companion = imx8qxp_ldb->companion;
135 struct device *dev = imx8qxp_ldb->dev;
162 clk_set_rate(imx8qxp_ldb->clk_bypass, di_clk);
163 clk_set_rate(imx8qxp_ldb->clk_pixel, di_clk);
165 imx8qxp_ldb_set_phy_cfg(imx8qxp_ldb, di_clk, is_split, phy_cfg);
211 struct imx8qxp_ldb *imx8qxp_ldb = base_to_imx8qxp_ldb(ldb);
212 struct drm_bridge *companion = imx8qxp_ldb->companion;
215 clk_prepare_enable(imx8qxp_ldb->clk_pixel);
216 clk_prepare_enable(imx8qxp_ldb->clk_bypass);
229 struct imx8qxp_ldb *imx8qxp_ldb = base_to_imx8qxp_ldb(ldb);
230 struct drm_bridge *companion = imx8qxp_ldb->companion;
231 struct device *dev = imx8qxp_ldb->dev;
263 struct imx8qxp_ldb *imx8qxp_ldb = base_to_imx8qxp_ldb(ldb);
264 struct drm_bridge *companion = imx8qxp_ldb->companion;
265 struct device *dev = imx8qxp_ldb->dev;
279 clk_disable_unprepare(imx8qxp_ldb->clk_bypass);
280 clk_disable_unprepare(imx8qxp_ldb->clk_pixel);
410 static int imx8qxp_ldb_set_di_id(struct imx8qxp_ldb *imx8qxp_ldb)
413 imx8qxp_ldb->channel[imx8qxp_ldb->active_chno];
416 struct device *dev = imx8qxp_ldb->dev;
456 static int imx8qxp_ldb_parse_dt_companion(struct imx8qxp_ldb *imx8qxp_ldb)
459 imx8qxp_ldb->channel[imx8qxp_ldb->active_chno];
466 struct device *dev = imx8qxp_ldb->dev;
555 imx8qxp_ldb->companion = of_drm_find_bridge(companion_port);
556 if (!imx8qxp_ldb->companion) {
568 companion_ldb_ch = bridge_to_ldb_ch(imx8qxp_ldb->companion);
579 struct imx8qxp_ldb *imx8qxp_ldb;
585 imx8qxp_ldb = devm_kzalloc(dev, sizeof(*imx8qxp_ldb), GFP_KERNEL);
586 if (!imx8qxp_ldb)
590 imx8qxp_ldb->channel[i] =
593 if (IS_ERR(imx8qxp_ldb->channel[i]))
594 return PTR_ERR(imx8qxp_ldb->channel[i]);
597 imx8qxp_ldb->clk_pixel = devm_clk_get(dev, "pixel");
598 if (IS_ERR(imx8qxp_ldb->clk_pixel)) {
599 ret = PTR_ERR(imx8qxp_ldb->clk_pixel);
606 imx8qxp_ldb->clk_bypass = devm_clk_get(dev, "bypass");
607 if (IS_ERR(imx8qxp_ldb->clk_bypass)) {
608 ret = PTR_ERR(imx8qxp_ldb->clk_bypass);
615 imx8qxp_ldb->dev = dev;
617 ldb = &imx8qxp_ldb->base;
622 ldb->channel[i] = &imx8qxp_ldb->channel[i]->base;
638 imx8qxp_ldb_ch = imx8qxp_ldb->channel[i];
642 imx8qxp_ldb->active_chno = ldb_ch->chno;
652 imx8qxp_ldb->active_chno, ret);
660 ret = imx8qxp_ldb_set_di_id(imx8qxp_ldb);
664 ret = imx8qxp_ldb_parse_dt_companion(imx8qxp_ldb);
668 platform_set_drvdata(pdev, imx8qxp_ldb);
678 struct imx8qxp_ldb *imx8qxp_ldb = platform_get_drvdata(pdev);
679 struct ldb *ldb = &imx8qxp_ldb->base;
693 struct imx8qxp_ldb *imx8qxp_ldb = dev_get_drvdata(dev);
694 struct ldb *ldb = &imx8qxp_ldb->base;