Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Swamil Jain <s-jain1@ti.com>
To: Nishanth Menon <nm@ti.com>
Cc: <vigneshr@ti.com>, <kristo@kernel.org>, <robh@kernel.org>,
	<krzk+dt@kernel.org>, <conor+dt@kernel.org>,
	<tomi.valkeinen@ideasonboard.com>, <r-sharma3@ti.com>,
	<devarsht@ti.com>, <praneeth@ti.com>,
	<linux-arm-kernel@lists.infradead.org>,
	<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2] arm64: dts: ti: k3-am62l: Add HDMI & DSI support
Date: Fri, 10 Jul 2026 17:34:15 +0530	[thread overview]
Message-ID: <915d82bd-254b-4cea-b96a-5feea54c3e59@ti.com> (raw)
In-Reply-To: <20260529141232.dbtqg6mudjy3dlwh@grandkid>

Hi Nishanth,

On 5/29/26 19:42, Nishanth Menon wrote:
> On 19:05-20260528, Swamil Jain wrote:
>> From: Devarsh Thakkar <devarsht@ti.com>
>>
>> Add DSS, DSI, DPHY, and HDMI bridge nodes to enable DPI-to-HDMI output
>> on AM62L[1]. The DSS uses parallel DPI interface with pinctrl
>> configuration to drive an external SiI9022 HDMI bridge.
>>
>> DSI and DPHY nodes are added but remain disabled, as the AM62L shares a
>> single video port for DPI and DSI output.
>>
>> DSI functionality can be enabled via overlays when required.
>>
>> [1]: https://www.ti.com/product/AM62L
> 
> 1. please split this up. please dont mix the SoC with evm stuff.

Sure, will split it.

> 2. I suggest DPI output be a overlay as well
> 

Out-of-box HDMI(DPI) is supported, dsi nodes are added here to have base
support to enable DSI panels using overlays.

>>
>> Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
>> Signed-off-by: Swamil Jain <s-jain1@ti.com>
>> ---
>> Changelog:
>> 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/
>> ---
>>   arch/arm64/boot/dts/ti/k3-am62l-main.dtsi | 47 +++++++++++
>>   arch/arm64/boot/dts/ti/k3-am62l3-evm.dts  | 95 +++++++++++++++++++++++
>>   2 files changed, 142 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..1d255c9138db 100644
>> --- a/arch/arm64/boot/dts/ti/k3-am62l-main.dtsi
>> +++ b/arch/arm64/boot/dts/ti/k3-am62l-main.dtsi
>> @@ -584,4 +584,51 @@ scmi_shmem: sram@0 {
>>   			bootph-all;
>>   		};
>>   	};
>> +
>> +	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>;
>> +		};
>> +	};
>> +
>> +	dphy_tx0: phy@301c0000 {
>> +		compatible = "ti,j721e-dphy";
>> +		reg = <0x0 0x301c0000 0x0 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";
>> +	};
>> +
>> +	dsi0: dsi@30500000 {
>> +		compatible = "ti,j721e-dsi";
>> +		reg = <0x0 0x30500000 0x0 0x100000>, <0x0 0x30270000 0x0 0x100>;
>> +		clocks = <&scmi_clk 155>, <&scmi_clk 158>;
>> +		clock-names = "dsi_p_clk", "dsi_sys_clk";
>> +		power-domains = <&scmi_pds 38>;
>> +		interrupt-parent = <&gic500>;
>> +		interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
>> +		phys = <&dphy_tx0>;
>> +		phy-names = "dphy";
>> +		status = "disabled";
>> +	};
>>   };
>> diff --git a/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts b/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
>> index a1af4571a815..9b04fa6d2cba 100644
>> --- a/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
>> +++ b/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
>> @@ -119,6 +119,18 @@ vcc_1v8: regulator-3 {
>>   		regulator-always-on;
>>   		regulator-boot-on;
>>   	};
>> +
>> +	hdmi0: connector-hdmi {
>> +		compatible = "hdmi-connector";
>> +		label = "hdmi";
>> +		type = "a";
>> +
>> +		port {
>> +			hdmi_connector_in: endpoint {
>> +				remote-endpoint = <&sii9022_out>;
>> +			};
>> +		};
>> +	};
>>   };
>>   
>>   &gpio0 {
>> @@ -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>;
> 
> I see you addressed sashiko comments
> https://lore.kernel.org/all/20260514112012.0B0D0C2BCB3@smtp.kernel.org/
> 
> but i dont see evidence of HPD working. logs please for the next rev.
> 

Sure, will add logs in the next rev.

>> +		#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 */
>> @@ -375,6 +454,22 @@ &usb1 {
>>   	pinctrl-0 = <&usb1_default_pins>;
>>   };
>>   
>> +&dss {
>> +	status = "okay";
>> +	bootph-all;
>> +};
>> +
>> +&dss_ports {
>> +	/* VP1: DPI Output */
>> +	port@0 {
>> +		reg = <0>;
>> +
>> +		dpi_out: endpoint {
>> +			remote-endpoint = <&sii9022_in>;
>> +		};
>> +	};
>> +};
>> +
> 
> Did we miss routing audio? I think it has an option of going to M2.key

dss is related to pixel streaming, HDMI audio is taken care by the 
hdmi-bridge itself, I am not aware of M2.key audio routing.

Regards,
Swamil.

> 
>>   &wkup_uart0 {
>>   	pinctrl-0 = <&wkup_uart0_pins_default>;
>>   	pinctrl-names = "default";
>>
> 



      reply	other threads:[~2026-07-10 12:04 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-28 13:35 [PATCH v2] arm64: dts: ti: k3-am62l: Add HDMI & DSI support Swamil Jain
2026-05-29  8:58 ` Kumar, Udit
2026-07-10 11:13   ` Swamil Jain
2026-05-29 14:12 ` Nishanth Menon
2026-07-10 12:04   ` Swamil Jain [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=915d82bd-254b-4cea-b96a-5feea54c3e59@ti.com \
    --to=s-jain1@ti.com \
    --cc=conor+dt@kernel.org \
    --cc=devarsht@ti.com \
    --cc=devicetree@vger.kernel.org \
    --cc=kristo@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nm@ti.com \
    --cc=praneeth@ti.com \
    --cc=r-sharma3@ti.com \
    --cc=robh@kernel.org \
    --cc=tomi.valkeinen@ideasonboard.com \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox