imx8qm_ldb
imx8qm_ldb_set_phy_cfg(imx8qm_ldb, di_clk, is_split, false, phy_cfg);
DRM_DEV_DEBUG_DRIVER(imx8qm_ldb->dev,
imx8qm_ldb->channel[imx8qm_ldb->active_chno ^ 1];
imx8qm_ldb_set_phy_cfg(imx8qm_ldb, di_clk, is_split, true,
DRM_DEV_DEBUG_DRIVER(imx8qm_ldb->dev,
struct imx8qm_ldb *imx8qm_ldb = base_to_imx8qm_ldb(ldb);
struct device *dev = imx8qm_ldb->dev;
clk_set_rate(imx8qm_ldb->clk_bypass, di_clk);
clk_set_rate(imx8qm_ldb->clk_pixel, di_clk);
imx8qm_ldb_set_phy_cfg(imx8qm_ldb, di_clk, is_split, false, phy_cfg);
imx8qm_ldb->channel[imx8qm_ldb->active_chno ^ 1];
imx8qm_ldb_set_phy_cfg(imx8qm_ldb, di_clk, is_split, true,
struct imx8qm_ldb *imx8qm_ldb = base_to_imx8qm_ldb(ldb);
struct device *dev = imx8qm_ldb->dev;
clk_prepare_enable(imx8qm_ldb->clk_pixel);
clk_prepare_enable(imx8qm_ldb->clk_bypass);
ret = phy_power_on(imx8qm_ldb->channel[0]->phy);
ret = phy_power_on(imx8qm_ldb->channel[1]->phy);
struct imx8qm_ldb *imx8qm_ldb = base_to_imx8qm_ldb(ldb);
struct device *dev = imx8qm_ldb->dev;
ret = phy_power_off(imx8qm_ldb->channel[0]->phy);
ret = phy_power_off(imx8qm_ldb->channel[1]->phy);
clk_disable_unprepare(imx8qm_ldb->clk_bypass);
clk_disable_unprepare(imx8qm_ldb->clk_pixel);
static int imx8qm_ldb_get_phy(struct imx8qm_ldb *imx8qm_ldb)
struct device *dev = imx8qm_ldb->dev;
imx8qm_ldb_ch = imx8qm_ldb->channel[i];
struct imx8qm_ldb *imx8qm_ldb;
imx8qm_ldb = devm_kzalloc(dev, sizeof(*imx8qm_ldb), GFP_KERNEL);
if (!imx8qm_ldb)
imx8qm_ldb->channel[i] =
if (IS_ERR(imx8qm_ldb->channel[i]))
return PTR_ERR(imx8qm_ldb->channel[i]);
imx8qm_ldb->clk_pixel = devm_clk_get(dev, "pixel");
if (IS_ERR(imx8qm_ldb->clk_pixel)) {
ret = PTR_ERR(imx8qm_ldb->clk_pixel);
imx8qm_ldb->clk_bypass = devm_clk_get(dev, "bypass");
if (IS_ERR(imx8qm_ldb->clk_bypass)) {
ret = PTR_ERR(imx8qm_ldb->clk_bypass);
imx8qm_ldb->dev = dev;
ldb = &imx8qm_ldb->base;
ldb->channel[i] = &imx8qm_ldb->channel[i]->base;
imx8qm_ldb->active_chno = 0;
imx8qm_ldb_ch = imx8qm_ldb->channel[0];
imx8qm_ldb_ch = imx8qm_ldb->channel[i];
imx8qm_ldb->active_chno = ldb_ch->chno;
ret = imx8qm_ldb_get_phy(imx8qm_ldb);
platform_set_drvdata(pdev, imx8qm_ldb);
struct imx8qm_ldb *imx8qm_ldb = platform_get_drvdata(pdev);
struct ldb *ldb = &imx8qm_ldb->base;
struct imx8qm_ldb *imx8qm_ldb = dev_get_drvdata(dev);
struct ldb *ldb = &imx8qm_ldb->base;
static inline struct imx8qm_ldb *base_to_imx8qm_ldb(struct ldb *base)
return container_of(base, struct imx8qm_ldb, base);
static void imx8qm_ldb_set_phy_cfg(struct imx8qm_ldb *imx8qm_ldb,
struct imx8qm_ldb *imx8qm_ldb = base_to_imx8qm_ldb(ldb);