Lines Matching +full:imx8mp +full:- +full:hdmi +full:- +full:tx

1 // SPDX-License-Identifier: GPL-2.0+
48 return drm_bridge_attach(encoder, pvi->next_bridge,
64 connector = drm_atomic_get_new_connector_for_encoder(state, bridge->encoder);
66 crtc_state = drm_atomic_get_new_crtc_state(state, conn_state->crtc);
68 if (WARN_ON(pm_runtime_resume_and_get(pvi->dev)))
71 mode = &crtc_state->adjusted_mode;
75 if (mode->flags & DRM_MODE_FLAG_PVSYNC)
78 if (mode->flags & DRM_MODE_FLAG_PHSYNC)
81 if (pvi->next_bridge->timings)
82 bus_flags = pvi->next_bridge->timings->input_bus_flags;
84 bus_flags = bridge_state->input_bus_cfg.flags;
89 writel(val, pvi->regs + HTX_PVI_CTRL);
97 writel(0x0, pvi->regs + HTX_PVI_CTRL);
99 pm_runtime_put(pvi->dev);
111 struct drm_bridge *next_bridge = pvi->next_bridge;
114 if (!next_bridge->funcs->atomic_get_input_bus_fmts)
117 next_state = drm_atomic_get_new_bridge_state(crtc_state->state,
120 return next_bridge->funcs->atomic_get_input_bus_fmts(next_bridge,
143 pvi = devm_drm_bridge_alloc(&pdev->dev, struct imx8mp_hdmi_pvi,
149 pvi->dev = &pdev->dev;
151 pvi->regs = devm_platform_ioremap_resource(pdev, 0);
152 if (IS_ERR(pvi->regs))
153 return PTR_ERR(pvi->regs);
156 remote = of_graph_get_remote_node(pdev->dev.of_node, 1, -1);
158 return -EINVAL;
160 pvi->next_bridge = of_drm_find_bridge(remote);
163 if (!pvi->next_bridge)
164 return dev_err_probe(&pdev->dev, -EPROBE_DEFER,
167 pm_runtime_enable(&pdev->dev);
170 pvi->bridge.of_node = pdev->dev.of_node;
171 pvi->bridge.timings = pvi->next_bridge->timings;
173 drm_bridge_add(&pvi->bridge);
182 drm_bridge_remove(&pvi->bridge);
184 pm_runtime_disable(&pdev->dev);
189 .compatible = "fsl,imx8mp-hdmi-pvi",
200 .name = "imx-hdmi-pvi",
206 MODULE_DESCRIPTION("i.MX8MP HDMI TX Parallel Video Interface bridge driver");