Add required OF nodes to support the i.MX93 parallel output (DPI) path.

On the i.MX93 a single LCDIF is connected to three bridges: DPI, LVDS
LDB and the MIPI-DSI whereas the i.MX91 support only the DPI bridge.

Map endpoint@0 as DPI bridge output since the i.MX93 TRM (Figure 485.
MEDIAMIX block diagram) doesn't mention any port-number <-> bridge
combination.

Set the MEDIA-AXI and MEDIA-APB clocks to the overdrive (OD) values
since the i.MX93 and i.MX91 use the overdrive (OD) clk settings per
default.

Signed-off-by: Marco Felsch <[email protected]>
---
 arch/arm64/boot/dts/freescale/imx91_93_common.dtsi | 57 ++++++++++++++++++++++
 arch/arm64/boot/dts/freescale/imx93.dtsi           | 12 +++++
 2 files changed, 69 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi 
b/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi
index 
52da571f26c4e8a2703e4476b5541fa7aca52f10..6dc01a76c68425bb65576712bfd98950d662bd38
 100644
--- a/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx91_93_common.dtsi
@@ -1122,8 +1122,65 @@ media_blk_ctrl: system-controller@4ac10000 {
                                 <&clk IMX93_CLK_MIPI_DSI_GATE>;
                        clock-names = "apb", "axi", "nic", "disp", "cam",
                                      "pxp", "lcdif", "isi", "csi", "dsi";
+                       assigned-clocks = <&clk IMX93_CLK_MEDIA_AXI>,
+                                         <&clk IMX93_CLK_MEDIA_APB>,
+                                         <&clk IMX93_CLK_MEDIA_DISP_PIX>;
+                       assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1>,
+                                                <&clk 
IMX93_CLK_SYS_PLL_PFD1_DIV2>,
+                                                <&clk IMX93_CLK_VIDEO_PLL>;
+                       assigned-clock-rates = <400000000>, <133333333>;
                        #power-domain-cells = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
                        status = "disabled";
+
+                       dpi_bridge: bridge@60 {
+                               compatible = "nxp,imx93-pdfc";
+                               reg = <0x60 0x4>;
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               dpi_from_lcdif: endpoint {
+                                                       remote-endpoint = 
<&lcdif_to_dpi>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               dpi_to_panel: endpoint {
+                                               };
+                                       };
+                               };
+                       };
+               };
+
+               lcdif: display-controller@4ae30000 {
+                       compatible = "fsl,imx93-lcdif";
+                       reg = <0x4ae30000 0x23c>;
+                       interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk IMX93_CLK_MEDIA_DISP_PIX>,
+                                <&clk IMX93_CLK_LCDIF_GATE>,
+                                <&clk IMX93_CLK_MEDIA_AXI>;
+                       clock-names = "pix", "axi", "disp_axi";
+                       power-domains = <&media_blk_ctrl 
IMX93_MEDIABLK_PD_LCDIF>;
+                       status = "disabled";
+
+                       port {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               lcdif_to_dpi: endpoint@0 {
+                                       reg = <0>;
+                                       remote-endpoint = <&dpi_from_lcdif>;
+                               };
+                       };
                };
 
                usbotg1: usb@4c100000 {
diff --git a/arch/arm64/boot/dts/freescale/imx93.dtsi 
b/arch/arm64/boot/dts/freescale/imx93.dtsi
index 
7b27012dfcb564650882dc8c40e836e797b2fda1..5436b48b30e89eb1f939b398ce1bf105abe7e34b
 100644
--- a/arch/arm64/boot/dts/freescale/imx93.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx93.dtsi
@@ -150,6 +150,18 @@ l3_cache: l3-cache {
        };
 };
 
+&lcdif {
+       port {
+               lcdif_to_ldb: endpoint@1 {
+                       reg = <1>;
+               };
+
+               lcdif_to_dsi: endpoint@2 {
+                       reg = <2>;
+               };
+       };
+};
+
 &src {
        mlmix: power-domain@44461800 {
                compatible = "fsl,imx93-src-slice";

-- 
2.47.3

Reply via email to