* [PATCH v3 0/2] Add DSS support for AM62L SoC
@ 2026-07-23 10:25 Swamil Jain
2026-07-23 10:25 ` [PATCH v3 1/2] arm64: dts: ti: k3-am62l-main: Add DSS & DSI related nodes Swamil Jain
2026-07-23 10:25 ` [PATCH v3 2/2] arm64: dts: ti: k3-am62l3-evm: Add HDMI support Swamil Jain
0 siblings, 2 replies; 4+ messages in thread
From: Swamil Jain @ 2026-07-23 10:25 UTC (permalink / raw)
To: nm, vigneshr, kristo, robh, krzk+dt, conor+dt, tomi.valkeinen
Cc: devarsht, praneeth, linux-arm-kernel, devicetree, linux-kernel,
s-jain1
This series:
- Adds base support to enable Display on TI AM62L[1] SoCs
- Adds base support for DSI output
- Enbales HDMI output out-of-box
[1]: https://www.ti.com/product/AM62L
---
Changelog:
v2->v3:
- Split patches for SoC and EVM related changes
- Add dsi ports node
- Correct styling issues
- Drop GIC
Link to v2: https://lore.kernel.org/all/20260528133529.3476499-1-s-jain1@ti.com/
v1->v2:
- Update the commit message to elaborate more about the patch.
- Add dpi-pinctrl configuration.
- Update the interrupt routing index for HDMI interrupt line
Link to v1: https://lore.kernel.org/all/20260513210942.692269-1-s-jain1@ti.com/
---
Devarsh Thakkar (2):
arm64: dts: ti: k3-am62l-main: Add DSS & DSI related nodes
arm64: dts: ti: k3-am62l3-evm: Add HDMI support
arch/arm64/boot/dts/ti/k3-am62l-main.dtsi | 60 ++++++++++++++
arch/arm64/boot/dts/ti/k3-am62l3-evm.dts | 95 +++++++++++++++++++++++
2 files changed, 155 insertions(+)
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3 1/2] arm64: dts: ti: k3-am62l-main: Add DSS & DSI related nodes
2026-07-23 10:25 [PATCH v3 0/2] Add DSS support for AM62L SoC Swamil Jain
@ 2026-07-23 10:25 ` Swamil Jain
2026-07-23 10:25 ` [PATCH v3 2/2] arm64: dts: ti: k3-am62l3-evm: Add HDMI support Swamil Jain
1 sibling, 0 replies; 4+ messages in thread
From: Swamil Jain @ 2026-07-23 10:25 UTC (permalink / raw)
To: nm, vigneshr, kristo, robh, krzk+dt, conor+dt, tomi.valkeinen
Cc: devarsht, praneeth, linux-arm-kernel, devicetree, linux-kernel,
s-jain1
From: Devarsh Thakkar <devarsht@ti.com>
Add DSS, DSI and DPHY nodes to add base display support on AM62L[1].
AM62L shares a single video port for DPI and DSI output.
[1]: https://www.ti.com/product/AM62L
Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
Signed-off-by: Swamil Jain <s-jain1@ti.com>
---
arch/arm64/boot/dts/ti/k3-am62l-main.dtsi | 60 +++++++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62l-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62l-main.dtsi
index 80615ca1e01a..a3199a2455c3 100644
--- a/arch/arm64/boot/dts/ti/k3-am62l-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62l-main.dtsi
@@ -544,6 +544,66 @@ elm0: ecc@25010000 {
status = "disabled";
};
+ dphy_tx0: phy@301c0000 {
+ compatible = "ti,j721e-dphy";
+ reg = <0x00 0x301c0000 0x00 0x1000>;
+ clocks = <&scmi_clk 348>, <&scmi_clk 343>;
+ clock-names = "psm", "pll_ref";
+ #phy-cells = <0>;
+ power-domains = <&scmi_pds 86>;
+ assigned-clocks = <&scmi_clk 343>;
+ assigned-clock-parents = <&scmi_clk 341>;
+ assigned-clock-rates = <25000000>;
+ status = "disabled";
+ };
+
+ dss: dss@30200000 {
+ compatible = "ti,am62l-dss";
+ reg = <0x00 0x30200000 0x00 0x1000>, /* common */
+ <0x00 0x30202000 0x00 0x1000>, /* vidl1 */
+ <0x00 0x30207000 0x00 0x1000>, /* ovr1 */
+ <0x00 0x3020a000 0x00 0x1000>, /* vp1 */
+ <0x00 0x30201000 0x00 0x1000>; /* common1 */
+ reg-names = "common", "vidl1", "ovr1", "vp1", "common1";
+ power-domains = <&scmi_pds 39>;
+ clocks = <&scmi_clk 162>,
+ <&scmi_clk 161>;
+ clock-names = "fck", "vp1";
+ interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
+ status = "disabled";
+
+ dss_ports: ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+
+ dsi0: dsi@30500000 {
+ compatible = "ti,j721e-dsi";
+ reg = <0x00 0x30500000 0x00 0x100000>,
+ <0x00 0x30270000 0x00 0x100>;
+ clocks = <&scmi_clk 155>, <&scmi_clk 158>;
+ clock-names = "dsi_p_clk", "dsi_sys_clk";
+ power-domains = <&scmi_pds 38>;
+ interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
+ phys = <&dphy_tx0>;
+ phy-names = "dphy";
+ status = "disabled";
+
+ dsi0_ports: ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ };
+
+ port@1 {
+ reg = <1>;
+ };
+ };
+ };
+
gpmc0: memory-controller@3b000000 {
compatible = "ti,am64-gpmc";
power-domains = <&scmi_pds 37>;
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v3 2/2] arm64: dts: ti: k3-am62l3-evm: Add HDMI support
2026-07-23 10:25 [PATCH v3 0/2] Add DSS support for AM62L SoC Swamil Jain
2026-07-23 10:25 ` [PATCH v3 1/2] arm64: dts: ti: k3-am62l-main: Add DSS & DSI related nodes Swamil Jain
@ 2026-07-23 10:25 ` Swamil Jain
2026-07-23 10:52 ` sashiko-bot
1 sibling, 1 reply; 4+ messages in thread
From: Swamil Jain @ 2026-07-23 10:25 UTC (permalink / raw)
To: nm, vigneshr, kristo, robh, krzk+dt, conor+dt, tomi.valkeinen
Cc: devarsht, praneeth, linux-arm-kernel, devicetree, linux-kernel,
s-jain1
From: Devarsh Thakkar <devarsht@ti.com>
Add the SII9022 HDMI bridge and HDMI connector nodes, along with the
DPI pinmux configuration connecting VOUT0 to the bridge. Enable the DSS
and hook up its DPI output port to the SII9022 bridge input, and the
bridge output to the HDMI connector.
Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
Signed-off-by: Swamil Jain <s-jain1@ti.com>
---
arch/arm64/boot/dts/ti/k3-am62l3-evm.dts | 95 ++++++++++++++++++++++++
1 file changed, 95 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts b/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
index 84a0cfaaf196..2982a05f6082 100644
--- a/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
@@ -44,6 +44,18 @@ usr: button-usr {
};
};
+ hdmi0: connector-hdmi {
+ compatible = "hdmi-connector";
+ label = "hdmi";
+ type = "a";
+
+ port {
+ hdmi_connector_in: endpoint {
+ remote-endpoint = <&sii9022_out>;
+ };
+ };
+ };
+
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
@@ -192,6 +204,38 @@ exp2: gpio@23 {
bootph-all;
};
+ sii9022: bridge-hdmi@3b {
+ compatible = "sil,sii9022";
+ reg = <0x3b>;
+ interrupt-parent = <&exp1>;
+ interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
+ #sound-dai-cells = <0>;
+ sil,i2s-data-lanes = < 0 >;
+ pinctrl-names = "default";
+ pinctrl-0 = <&dpi_pins_default>;
+ bootph-all;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ sii9022_in: endpoint {
+ remote-endpoint = <&dpi_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ sii9022_out: endpoint {
+ remote-endpoint = <&hdmi_connector_in>;
+ };
+ };
+ };
+ };
};
&i2c2 {
@@ -221,6 +265,41 @@ usb_con_hs: endpoint {
};
&pmx0 {
+ dpi_pins_default: dpi-default-pins {
+ pinctrl-single,pins = <
+ AM62LX_IOPAD(0x00e4, PIN_OUTPUT, 1) /* (L20) GPMC0_CSn0.VOUT0_VSYNC */
+ AM62LX_IOPAD(0x00dc, PIN_OUTPUT, 1) /* (N21) GPMC0_WPn.VOUT0_HSYNC */
+ AM62LX_IOPAD(0x00e8, PIN_OUTPUT, 1) /* (L19) GPMC0_CSn1.VOUT0_PCLK */
+ AM62LX_IOPAD(0x00e0, PIN_OUTPUT, 1) /* (M21) GPMC0_DIR.VOUT0_DE */
+ AM62LX_IOPAD(0x0078, PIN_OUTPUT, 1) /* (L22) GPMC0_AD0.VOUT0_DATA0 */
+ AM62LX_IOPAD(0x007c, PIN_OUTPUT, 1) /* (L23) GPMC0_AD1.VOUT0_DATA1 */
+ AM62LX_IOPAD(0x0080, PIN_OUTPUT, 1) /* (K22) GPMC0_AD2.VOUT0_DATA2 */
+ AM62LX_IOPAD(0x0084, PIN_OUTPUT, 1) /* (J23) GPMC0_AD3.VOUT0_DATA3 */
+ AM62LX_IOPAD(0x0088, PIN_OUTPUT, 1) /* (K23) GPMC0_AD4.VOUT0_DATA4 */
+ AM62LX_IOPAD(0x008c, PIN_OUTPUT, 1) /* (H22) GPMC0_AD5.VOUT0_DATA5 */
+ AM62LX_IOPAD(0x0090, PIN_OUTPUT, 1) /* (H23) GPMC0_AD6.VOUT0_DATA6 */
+ AM62LX_IOPAD(0x0094, PIN_OUTPUT, 1) /* (J22) GPMC0_AD7.VOUT0_DATA7 */
+ AM62LX_IOPAD(0x0098, PIN_OUTPUT, 1) /* (H19) GPMC0_AD8.VOUT0_DATA8 */
+ AM62LX_IOPAD(0x009c, PIN_OUTPUT, 1) /* (H20) GPMC0_AD9.VOUT0_DATA9 */
+ AM62LX_IOPAD(0x00a0, PIN_OUTPUT, 1) /* (H21) GPMC0_AD10.VOUT0_DATA10 */
+ AM62LX_IOPAD(0x00a4, PIN_OUTPUT, 1) /* (H18) GPMC0_AD11.VOUT0_DATA11 */
+ AM62LX_IOPAD(0x00a8, PIN_OUTPUT, 1) /* (G23) GPMC0_AD12.VOUT0_DATA12 */
+ AM62LX_IOPAD(0x00ac, PIN_OUTPUT, 1) /* (G22) GPMC0_AD13.VOUT0_DATA13 */
+ AM62LX_IOPAD(0x00b0, PIN_OUTPUT, 1) /* (F22) GPMC0_AD14.VOUT0_DATA14 */
+ AM62LX_IOPAD(0x00b4, PIN_OUTPUT, 1) /* (F23) GPMC0_AD15.VOUT0_DATA15 */
+ AM62LX_IOPAD(0x00b8, PIN_OUTPUT, 1) /* (L21) GPMC0_CLK.VOUT0_DATA16 */
+ AM62LX_IOPAD(0x00c0, PIN_OUTPUT, 1) /* (N19) GPMC0_ADVn_ALE.VOUT0_DATA17 */
+ AM62LX_IOPAD(0x00c4, PIN_OUTPUT, 1) /* (N20) GPMC0_OEn_REn.VOUT0_DATA18 */
+ AM62LX_IOPAD(0x00c8, PIN_OUTPUT, 1) /* (M19) GPMC0_WEn.VOUT0_DATA19 */
+ AM62LX_IOPAD(0x00cc, PIN_OUTPUT, 1) /* (P23) GPMC0_BE0n_CLE.VOUT0_DATA20 */
+ AM62LX_IOPAD(0x00d0, PIN_OUTPUT, 1) /* (P22) GPMC0_BE1n.VOUT0_DATA21 */
+ AM62LX_IOPAD(0x00d4, PIN_OUTPUT, 1) /* (N23) GPMC0_WAIT0.VOUT0_DATA22 */
+ AM62LX_IOPAD(0x00d8, PIN_OUTPUT, 1) /* (N22) GPMC0_WAIT1.VOUT0_DATA23 */
+ AM62LX_IOPAD(0x00ec, PIN_OUTPUT, 5) /* (M23) GPMC0_CSn2.VOUT0_EXTPCLKIN */
+ >;
+ bootph-all;
+ };
+
gpio0_ioexp_intr_pins_default: gpio0-ioexp-intr-default-pins {
pinctrl-single,pins = <
AM62LX_IOPAD(0x01b0, PIN_INPUT, 7) /* (B12) SPI0_D1.GPIO0_91 */
@@ -321,6 +400,22 @@ AM62LX_IOPAD(0x0004, PIN_OUTPUT, 0) /* (AA23) WKUP_UART0_TXD */
};
};
+&dss {
+ status = "okay";
+ bootph-all;
+};
+
+&dss_ports {
+ /* VP1: DPI Output */
+ port@0 {
+ reg = <0>;
+
+ dpi_out: endpoint {
+ remote-endpoint = <&sii9022_in>;
+ };
+ };
+};
+
&sdhci0 {
/* eMMC */
pinctrl-names = "default";
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v3 2/2] arm64: dts: ti: k3-am62l3-evm: Add HDMI support
2026-07-23 10:25 ` [PATCH v3 2/2] arm64: dts: ti: k3-am62l3-evm: Add HDMI support Swamil Jain
@ 2026-07-23 10:52 ` sashiko-bot
0 siblings, 0 replies; 4+ messages in thread
From: sashiko-bot @ 2026-07-23 10:52 UTC (permalink / raw)
To: Swamil Jain; +Cc: robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [Medium] The DSS display output pins (VOUT0) are incorrectly assigned to the external HDMI bridge's pinctrl instead of the Display Subsystem (DSS).
- [Medium] The `VOUT0_EXTPCLKIN` pad is incorrectly configured as `PIN_OUTPUT`.
- [Medium] The HDMI bridge configuration lacks critical physical state controls (reset GPIO and FET routing switch).
--
--- Patch [2]: [PATCH v3 2/2] arm64: dts: ti: k3-am62l3-evm: Add HDMI support ---
commit a0fd4c63c267b044d2bd1cd9570eb64898918cf9
Author: Devarsh Thakkar <devarsht@ti.com>
arm64: dts: ti: k3-am62l3-evm: Add HDMI support
This patch adds the SII9022 HDMI bridge and HDMI connector nodes, along with
the DPI pinmux configuration connecting VOUT0 to the bridge. It also enables
the DSS and hooks up its DPI output port to the SII9022 bridge input.
> diff --git a/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts b/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
> index a1af4571a815d..dd16a73e581ec 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
[ ... ]
> @@ -192,6 +204,38 @@ exp2: gpio@23 {
> bootph-all;
> };
>
> + sii9022: bridge-hdmi@3b {
> + compatible = "sil,sii9022";
> + reg = <0x3b>;
> + interrupt-parent = <&exp1>;
> + interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
> + #sound-dai-cells = <0>;
> + sil,i2s-data-lanes = < 0 >;
> + pinctrl-names = "default";
> + pinctrl-0 = <&dpi_pins_default>;
[Severity: Medium]
Should the dpi_pins_default pinctrl be assigned to the &dss node instead of
the sii9022 bridge?
The SoC's display subsystem (DSS) physically drives these output pins. If the
sii9022 bridge unbinds, fails to probe, or suspends independently of the DSS,
it will release the DSS's physical output pins. Conversely, if the DSS is
running, it will not have its pins configured unless the bridge is bound.
Also, shouldn't the sii9022 node have a reset-gpios property defined?
The board's IO expander (exp2) explicitly defines "GPIO_HDMI_RSTn" and
"VOUT0_FET_SEL0". Without the reset-gpios property, the driver cannot bring
the bridge out of reset or recover it from a bad state. Additionally, missing
control for VOUT0_FET_SEL0 could mean the DPI signals physically fail to
route to the HDMI bridge if the bootloader hasn't enabled the FET switch.
> + bootph-all;
> +
> + ports {
> + #address-cells = <1>;
[ ... ]
> + AM62LX_IOPAD(0x00d0, PIN_OUTPUT, 1) /* (P22) GPMC0_BE1n.VOUT0_DATA21 */
> + AM62LX_IOPAD(0x00d4, PIN_OUTPUT, 1) /* (N23) GPMC0_WAIT0.VOUT0_DATA22 */
> + AM62LX_IOPAD(0x00d8, PIN_OUTPUT, 1) /* (N22) GPMC0_WAIT1.VOUT0_DATA23 */
> + AM62LX_IOPAD(0x00ec, PIN_OUTPUT, 5) /* (M23) GPMC0_CSn2.VOUT0_EXTPCLKIN */
[Severity: Medium]
Is it intentional to configure VOUT0_EXTPCLKIN as PIN_OUTPUT?
Configuring an input pin as an output disables its receiver and actively
drives it. Since the sii9022 HDMI bridge receives the pixel clock from the
SoC (VOUT0_PCLK) and does not supply one, this pin appears to be unused for
this display pipeline and could probably be removed, or configured as
PIN_INPUT if genuinely needed.
> + >;
> + bootph-all;
> + };
> +
[ ... ]
> +&dss {
> + status = "okay";
> + bootph-all;
> +};
[Severity: Medium]
As mentioned above, should this &dss node claim the pinctrl-0 assignment
for its own DPI output pins instead of the external HDMI bridge claiming them?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260723102519.3581762-1-s-jain1@ti.com?part=2
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-23 10:52 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-23 10:25 [PATCH v3 0/2] Add DSS support for AM62L SoC Swamil Jain
2026-07-23 10:25 ` [PATCH v3 1/2] arm64: dts: ti: k3-am62l-main: Add DSS & DSI related nodes Swamil Jain
2026-07-23 10:25 ` [PATCH v3 2/2] arm64: dts: ti: k3-am62l3-evm: Add HDMI support Swamil Jain
2026-07-23 10:52 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox