File 0001-arm64-dts-freescale-Enable-i.MX93-11x11-FRDM-board-H.patch of Package imx93-devicetree
From 10a8991a5285de29da23208edf681a249f2eebd8 Mon Sep 17 00:00:00 2001
From: "Ivan T. Ivanov" <iivanov@suse.de>
Date: Tue, 8 Jul 2025 15:52:47 +0300
Subject: [PATCH] arm64: dts: freescale: Enable i.MX93 11x11 FRDM board HDMI
support
---
.../boot/dts/freescale/imx93-11x11-frdm.dts | 66 ++++++++++++++++
arch/arm64/boot/dts/freescale/imx93.dtsi | 76 +++++++++++++++++++
2 files changed, 142 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
index aa6972d5776..068026c7301 100644
--- a/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
+++ b/arch/arm64/boot/dts/freescale/imx93-11x11-frdm.dts
@@ -157,6 +157,18 @@ K3: user_btn2 {
interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
};
};
+
+ hdmi-connector {
+ compatible = "hdmi-connector";
+ label = "hdmi";
+ type = "a";
+
+ port {
+ hdmi_connector_in: endpoint {
+ remote-endpoint = <&it6263_out>;
+ };
+ };
+ };
};
&sai1 {
@@ -259,6 +271,11 @@ ethphy2: ethernet-phy@2 {
};
};
+&lcdif {
+ status = "okay";
+ assigned-clock-rates = <1039500000>, <148444444>, <400000000>, <133333333>;
+};
+
/*
* When add, delete or change any target device setting in &lpi2c1,
* please synchronize the changes to the &i3c1 bus in imx93-11x11-evk-i3c.dts.
@@ -281,6 +298,34 @@ pcal6408: gpio@20 {
status = "okay";
};
+ lvds_bridge: lvds-to-hdmi-bridge@4c {
+ compatible = "ite,it6263";
+ reg = <0x4c>;
+ data-mapping = "jeida-24";
+ reset-gpios = <&pcal6524 21 GPIO_ACTIVE_LOW>;
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ it6263_0_in: endpoint {
+ remote-endpoint = <&ldb_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ it6263_out: endpoint {
+ remote-endpoint = <&hdmi_connector_in>;
+ };
+ };
+ };
+ };
};
&lpi2c2 {
@@ -884,6 +929,27 @@ MX93_PAD_GPIO_IO13__TPM4_CH2 0x02
};
};
+&media_blk_ctrl {
+ status = "okay";
+};
+
+&ldb {
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+
+ ldb_out: endpoint {
+ remote-endpoint = <&it6263_0_in>;
+ };
+ };
+ };
+};
+
&lpspi3 {
fsl,spi-num-chipselects = <1>;
pinctrl-names = "default", "sleep";
diff --git a/arch/arm64/boot/dts/freescale/imx93.dtsi b/arch/arm64/boot/dts/freescale/imx93.dtsi
index c5d7e496602..ecf3d031eb4 100644
--- a/arch/arm64/boot/dts/freescale/imx93.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx93.dtsi
@@ -1273,6 +1273,8 @@ s4muap: mailbox@47520000 {
media_blk_ctrl: system-controller@4ac10000 {
compatible = "fsl,imx93-media-blk-ctrl", "syscon";
reg = <0x4ac10000 0x10000>;
+ #address-cells = <1>;
+ #size-cells = <1>;
power-domains = <&mediamix>;
clocks = <&clk IMX93_CLK_MEDIA_APB>,
<&clk IMX93_CLK_MEDIA_AXI>,
@@ -1286,8 +1288,82 @@ 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_VIDEO_PLL>,
+ <&clk IMX93_CLK_MEDIA_DISP_PIX>;
+ assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD0>,
+ <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>,
+ <&clk IMX93_CLK_24M>,
+ <&clk IMX93_CLK_VIDEO_PLL>;
+ assigned-clock-rates = <333333333>, <133333333>, <0>, <200000000>;
#power-domain-cells = <1>;
status = "disabled";
+
+ ldb: lvds-display-bridge {
+ compatible = "fsl,imx93-ldb";
+ reg = <0x20 0x4>, <0x24 0x4>;
+ reg-names = "ldb", "lvds";
+ clocks = <&clk IMX93_CLK_LVDS_GATE>;
+ clock-names = "ldb";
+ assigned-clocks = <&clk IMX93_CLK_MEDIA_LDB>;
+ assigned-clock-parents = <&clk IMX93_CLK_VIDEO_PLL>;
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ ldb_from_lcdif: endpoint {
+ remote-endpoint = <&lcdif_to_ldb>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ ldb_lvds: 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";
+ assigned-clocks = <&clk IMX93_CLK_VIDEO_PLL>,
+ <&clk IMX93_CLK_MEDIA_DISP_PIX>;
+ assigned-clock-parents = <&clk IMX93_CLK_24M>,
+ <&clk IMX93_CLK_VIDEO_PLL>;
+ power-domains = <&media_blk_ctrl IMX93_MEDIABLK_PD_LCDIF>;
+ status = "disabled";
+
+ port {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ lcdif_to_dsi: endpoint@0 {
+ reg = <0>;
+ };
+
+ lcdif_to_ldb: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&ldb_from_lcdif>;
+ };
+
+ lcdif_to_dpi: endpoint@2 {
+ reg = <2>;
+ };
+ };
};
usbotg1: usb@4c100000 {
--
2.43.0