All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/8] arm64: ti: k3-am62: Add display support
@ 2023-07-28 17:34 ` Aradhya Bhatia
  0 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

Hi all,

Reviving this old patch series, after a long time. This was paused
because the compatible for the Display SubSystem (DSS) had to be
changed, along with the driver.

The patch series adds DT nodes for Display SubSystem (DSS) and other
peripherals required to enable the HDMI audio and video on the AM625 SK,
AM62-LP SK, as well as the AM625 based Beagle-Play platforms. An HDMI
monitor can be connected to the boards for the audio/video outputs.

The series adding the compatible and basic driver support[0] is in the
drm-misc-next and linux-next queues and is expected to be in the
mainline by v6.6-rc1.

Patches 5 and 7 have been picked up from TI's linux tree[1] based off
linux-kernel v6.1.

Change Log:
V2 -> V3:
  - Updated the compatible from "ti,am65x-dss" to "ti,am625-dss".
  - Peripheral nodes like HDMI TX, HDMI connector are now added to
    k3-am62x-sk-common.dtsi instead of k3-am625-sk.dts, in order to
    support AM62-LP SK-EVM as well.
  - Dropped the HDMI master clock node as it is not connected on the
    EVM, and should not have been added in the first place.
  - Re-worded and Re-ordered commits.
  - Dropped Rahul Ravikumar's R-bs because of the changes.
  - Added AM625 based Beagle-Play for HDMI support.
  - Added HDMI audio support as well.

V1 -> V2:
 - Removed repetitive data in dss_ports

V2: https://lore.kernel.org/all/20220505134303.23208-1-a-bhatia1@ti.com/
V1: https://lore.kernel.org/all/20220427090850.32280-1-a-bhatia1@ti.com/

[0]: https://lore.kernel.org/all/20230616150900.6617-1-a-bhatia1@ti.com/
[1]: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ti-linux-6.1.y-cicd

Aradhya Bhatia (6):
  arm64: dts: ti: k3-am62x-sk-common: Update main-i2c1 frequency
  arm64: dts: ti: k3-am62-main: Add node for Display SubSystem
  arm64: dts: ti: k3-am62x-sk-common: Add DSS pinmux info
  arm64: dts: ti: k3-am62x-sk-common: Add support for HDMI output
  arm64: dts: ti: k3-am625-beagleplay: Add DSS pinmux info
  arm64: defconfig: Enable ITE_IT66121 HDMI transmitter

Jai Luthra (1):
  arm64: dts: ti: am62x-sk: Add overlay for HDMI audio

Nishanth Menon (1):
  arm64: dts: ti: k3-am625-beagleplay: Add HDMI support

 arch/arm64/boot/dts/ti/Makefile               |   3 +
 arch/arm64/boot/dts/ti/k3-am62-main.dtsi      |  23 +++
 .../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 182 ++++++++++++++++++
 .../arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 119 +++++++++++-
 .../boot/dts/ti/k3-am62x-sk-hdmi-audio.dtso   |  40 ++++
 arch/arm64/configs/defconfig                  |   1 +
 6 files changed, 367 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm64/boot/dts/ti/k3-am62x-sk-hdmi-audio.dtso

-- 
2.40.1


^ permalink raw reply	[flat|nested] 31+ messages in thread

* [PATCH v3 0/8] arm64: ti: k3-am62: Add display support
@ 2023-07-28 17:34 ` Aradhya Bhatia
  0 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

Hi all,

Reviving this old patch series, after a long time. This was paused
because the compatible for the Display SubSystem (DSS) had to be
changed, along with the driver.

The patch series adds DT nodes for Display SubSystem (DSS) and other
peripherals required to enable the HDMI audio and video on the AM625 SK,
AM62-LP SK, as well as the AM625 based Beagle-Play platforms. An HDMI
monitor can be connected to the boards for the audio/video outputs.

The series adding the compatible and basic driver support[0] is in the
drm-misc-next and linux-next queues and is expected to be in the
mainline by v6.6-rc1.

Patches 5 and 7 have been picked up from TI's linux tree[1] based off
linux-kernel v6.1.

Change Log:
V2 -> V3:
  - Updated the compatible from "ti,am65x-dss" to "ti,am625-dss".
  - Peripheral nodes like HDMI TX, HDMI connector are now added to
    k3-am62x-sk-common.dtsi instead of k3-am625-sk.dts, in order to
    support AM62-LP SK-EVM as well.
  - Dropped the HDMI master clock node as it is not connected on the
    EVM, and should not have been added in the first place.
  - Re-worded and Re-ordered commits.
  - Dropped Rahul Ravikumar's R-bs because of the changes.
  - Added AM625 based Beagle-Play for HDMI support.
  - Added HDMI audio support as well.

V1 -> V2:
 - Removed repetitive data in dss_ports

V2: https://lore.kernel.org/all/20220505134303.23208-1-a-bhatia1@ti.com/
V1: https://lore.kernel.org/all/20220427090850.32280-1-a-bhatia1@ti.com/

[0]: https://lore.kernel.org/all/20230616150900.6617-1-a-bhatia1@ti.com/
[1]: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ti-linux-6.1.y-cicd

Aradhya Bhatia (6):
  arm64: dts: ti: k3-am62x-sk-common: Update main-i2c1 frequency
  arm64: dts: ti: k3-am62-main: Add node for Display SubSystem
  arm64: dts: ti: k3-am62x-sk-common: Add DSS pinmux info
  arm64: dts: ti: k3-am62x-sk-common: Add support for HDMI output
  arm64: dts: ti: k3-am625-beagleplay: Add DSS pinmux info
  arm64: defconfig: Enable ITE_IT66121 HDMI transmitter

Jai Luthra (1):
  arm64: dts: ti: am62x-sk: Add overlay for HDMI audio

Nishanth Menon (1):
  arm64: dts: ti: k3-am625-beagleplay: Add HDMI support

 arch/arm64/boot/dts/ti/Makefile               |   3 +
 arch/arm64/boot/dts/ti/k3-am62-main.dtsi      |  23 +++
 .../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 182 ++++++++++++++++++
 .../arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 119 +++++++++++-
 .../boot/dts/ti/k3-am62x-sk-hdmi-audio.dtso   |  40 ++++
 arch/arm64/configs/defconfig                  |   1 +
 6 files changed, 367 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm64/boot/dts/ti/k3-am62x-sk-hdmi-audio.dtso

-- 
2.40.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [PATCH v3 1/8] arm64: dts: ti: k3-am62x-sk-common: Update main-i2c1 frequency
  2023-07-28 17:34 ` Aradhya Bhatia
@ 2023-07-28 17:34   ` Aradhya Bhatia
  -1 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

The Display Data Channel (DDC) transactions between an HDMI transmitter
(SIL9022A in this case) and an HDMI monitor, occur at a maximum of
100KHz. That's the maximum supported frequency within DDC standards.

While the SIL9022A can transact with the core at 400KHz, it needs to
drop the frequency to 100KHz when communicating with the monitor,
otherwise, the i2c controller times out and shows warning like this.

[  985.773431] omap_i2c 20010000.i2c: controller timed out

That feature, however, has not been enabled in the SIL9022 driver.

Since, dropping the frequency doesn't affect any other devices on the
bus, drop the main-i2c1 frequency from 400KHz to 100KHz.

Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
index 34c8ffc553ec..540ed8a0d7fb 100644
--- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
@@ -300,7 +300,7 @@ &main_i2c1 {
 	status = "okay";
 	pinctrl-names = "default";
 	pinctrl-0 = <&main_i2c1_pins_default>;
-	clock-frequency = <400000>;
+	clock-frequency = <100000>;
 
 	tlv320aic3106: audio-codec@1b {
 		#sound-dai-cells = <0>;
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v3 1/8] arm64: dts: ti: k3-am62x-sk-common: Update main-i2c1 frequency
@ 2023-07-28 17:34   ` Aradhya Bhatia
  0 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

The Display Data Channel (DDC) transactions between an HDMI transmitter
(SIL9022A in this case) and an HDMI monitor, occur at a maximum of
100KHz. That's the maximum supported frequency within DDC standards.

While the SIL9022A can transact with the core at 400KHz, it needs to
drop the frequency to 100KHz when communicating with the monitor,
otherwise, the i2c controller times out and shows warning like this.

[  985.773431] omap_i2c 20010000.i2c: controller timed out

That feature, however, has not been enabled in the SIL9022 driver.

Since, dropping the frequency doesn't affect any other devices on the
bus, drop the main-i2c1 frequency from 400KHz to 100KHz.

Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
index 34c8ffc553ec..540ed8a0d7fb 100644
--- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
@@ -300,7 +300,7 @@ &main_i2c1 {
 	status = "okay";
 	pinctrl-names = "default";
 	pinctrl-0 = <&main_i2c1_pins_default>;
-	clock-frequency = <400000>;
+	clock-frequency = <100000>;
 
 	tlv320aic3106: audio-codec@1b {
 		#sound-dai-cells = <0>;
-- 
2.40.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v3 2/8] arm64: dts: ti: k3-am62-main: Add node for DSS
  2023-07-28 17:34 ` Aradhya Bhatia
@ 2023-07-28 17:34   ` Aradhya Bhatia
  -1 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

Add Display SubSystem (DSS) DT node for the AM625 SoC.

The DSS supports one each of video pipeline (vid) and video-lite
pipeline (vidl1). It outputs OLDI signals on one video port (VP1) and
DPI signals on another (VP2). The video ports are connected to the
pipelines via 2 identical overlay managers (ovr1 and ovr2).

Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
index 33b6aadc9083..687b4b4e7f33 100644
--- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
@@ -717,6 +717,29 @@ cpts@3d000 {
 		};
 	};
 
+	dss: dss@30200000 {
+		compatible = "ti,am625-dss";
+		reg = <0x00 0x30200000 0x00 0x1000>, /* common */
+		      <0x00 0x30202000 0x00 0x1000>, /* vidl1 */
+		      <0x00 0x30206000 0x00 0x1000>, /* vid */
+		      <0x00 0x30207000 0x00 0x1000>, /* ovr1 */
+		      <0x00 0x30208000 0x00 0x1000>, /* ovr2 */
+		      <0x00 0x3020a000 0x00 0x1000>, /* vp1: Used for OLDI */
+		      <0x00 0x3020b000 0x00 0x1000>; /* vp2: Used as DPI Out */
+		reg-names = "common", "vidl1", "vid",
+			"ovr1", "ovr2", "vp1", "vp2";
+		power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 186 6>,
+			 <&k3_clks 186 0>,
+			 <&k3_clks 186 2>;
+		clock-names = "fck", "vp1", "vp2";
+		interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
+		dss_ports: ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+	};
+
 	hwspinlock: spinlock@2a000000 {
 		compatible = "ti,am64-hwspinlock";
 		reg = <0x00 0x2a000000 0x00 0x1000>;
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v3 2/8] arm64: dts: ti: k3-am62-main: Add node for DSS
@ 2023-07-28 17:34   ` Aradhya Bhatia
  0 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

Add Display SubSystem (DSS) DT node for the AM625 SoC.

The DSS supports one each of video pipeline (vid) and video-lite
pipeline (vidl1). It outputs OLDI signals on one video port (VP1) and
DPI signals on another (VP2). The video ports are connected to the
pipelines via 2 identical overlay managers (ovr1 and ovr2).

Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
index 33b6aadc9083..687b4b4e7f33 100644
--- a/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62-main.dtsi
@@ -717,6 +717,29 @@ cpts@3d000 {
 		};
 	};
 
+	dss: dss@30200000 {
+		compatible = "ti,am625-dss";
+		reg = <0x00 0x30200000 0x00 0x1000>, /* common */
+		      <0x00 0x30202000 0x00 0x1000>, /* vidl1 */
+		      <0x00 0x30206000 0x00 0x1000>, /* vid */
+		      <0x00 0x30207000 0x00 0x1000>, /* ovr1 */
+		      <0x00 0x30208000 0x00 0x1000>, /* ovr2 */
+		      <0x00 0x3020a000 0x00 0x1000>, /* vp1: Used for OLDI */
+		      <0x00 0x3020b000 0x00 0x1000>; /* vp2: Used as DPI Out */
+		reg-names = "common", "vidl1", "vid",
+			"ovr1", "ovr2", "vp1", "vp2";
+		power-domains = <&k3_pds 186 TI_SCI_PD_EXCLUSIVE>;
+		clocks = <&k3_clks 186 6>,
+			 <&k3_clks 186 0>,
+			 <&k3_clks 186 2>;
+		clock-names = "fck", "vp1", "vp2";
+		interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
+		dss_ports: ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+	};
+
 	hwspinlock: spinlock@2a000000 {
 		compatible = "ti,am64-hwspinlock";
 		reg = <0x00 0x2a000000 0x00 0x1000>;
-- 
2.40.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v3 3/8] arm64: dts: ti: k3-am62x-sk-common: Add DSS pinmux info
  2023-07-28 17:34 ` Aradhya Bhatia
@ 2023-07-28 17:34   ` Aradhya Bhatia
  -1 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

Add pinmux info for video output signals from DSS and OLDI.

The DSS outputs OLDI signals through its first video port (VP1) and DPI
signals via its second video port (VP2). DSS has 2 OLDI transmitters,
and each of them outputs 4 Data Lanes and 1 Clock Lane. The DPI output
from DSS is 24 bits (RGB888) and is forwarded to an HDMI transmitter
(SIL9022) on the board.

Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 .../arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 63 +++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
index 540ed8a0d7fb..d479c0c415a7 100644
--- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
@@ -226,6 +226,64 @@ AM62X_IOPAD(0x08c, PIN_OUTPUT, 2) /* (L25/J17) GPMC0_WEN.MCASP1_AXR0 */
 			AM62X_IOPAD(0x084, PIN_INPUT, 2) /* (L23/K20) GPMC0_ADVN_ALE.MCASP1_AXR2 */
 		>;
 	};
+
+	main_dss0_pins_default: main-dss0-default-pins {
+		pinctrl-single,pins = <
+			AM62X_IOPAD(0x0100, PIN_OUTPUT, 0) /* (AC25) VOUT0_VSYNC */
+			AM62X_IOPAD(0x00f8, PIN_OUTPUT, 0) /* (AB24) VOUT0_HSYNC */
+			AM62X_IOPAD(0x0104, PIN_OUTPUT, 0) /* (AC24) VOUT0_PCLK */
+			AM62X_IOPAD(0x00fc, PIN_OUTPUT, 0) /* (Y20) VOUT0_DE */
+			AM62X_IOPAD(0x00b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
+			AM62X_IOPAD(0x00bc, PIN_OUTPUT, 0) /* (V24) VOUT0_DATA1 */
+			AM62X_IOPAD(0x00c0, PIN_OUTPUT, 0) /* (W25) VOUT0_DATA2 */
+			AM62X_IOPAD(0x00c4, PIN_OUTPUT, 0) /* (W24) VOUT0_DATA3 */
+			AM62X_IOPAD(0x00c8, PIN_OUTPUT, 0) /* (Y25) VOUT0_DATA4 */
+			AM62X_IOPAD(0x00cc, PIN_OUTPUT, 0) /* (Y24) VOUT0_DATA5 */
+			AM62X_IOPAD(0x00d0, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA6 */
+			AM62X_IOPAD(0x00d4, PIN_OUTPUT, 0) /* (AA25) VOUT0_DATA7 */
+			AM62X_IOPAD(0x00d8, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA8 */
+			AM62X_IOPAD(0x00dc, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA9 */
+			AM62X_IOPAD(0x00e0, PIN_OUTPUT, 0) /* (V20) VOUT0_DATA10 */
+			AM62X_IOPAD(0x00e4, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA11 */
+			AM62X_IOPAD(0x00e8, PIN_OUTPUT, 0) /* (AB25) VOUT0_DATA12 */
+			AM62X_IOPAD(0x00ec, PIN_OUTPUT, 0) /* (AA24) VOUT0_DATA13 */
+			AM62X_IOPAD(0x00f0, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA14 */
+			AM62X_IOPAD(0x00f4, PIN_OUTPUT, 0) /* (AA21) VOUT0_DATA15 */
+			AM62X_IOPAD(0x005c, PIN_OUTPUT, 1) /* (R24) GPMC0_AD8.VOUT0_DATA16 */
+			AM62X_IOPAD(0x0060, PIN_OUTPUT, 1) /* (R25) GPMC0_AD9.VOUT0_DATA17 */
+			AM62X_IOPAD(0x0064, PIN_OUTPUT, 1) /* (T25) GPMC0_AD10.VOUT0_DATA18 */
+			AM62X_IOPAD(0x0068, PIN_OUTPUT, 1) /* (R21) GPMC0_AD11.VOUT0_DATA19 */
+			AM62X_IOPAD(0x006c, PIN_OUTPUT, 1) /* (T22) GPMC0_AD12.VOUT0_DATA20 */
+			AM62X_IOPAD(0x0070, PIN_OUTPUT, 1) /* (T24) GPMC0_AD13.VOUT0_DATA21 */
+			AM62X_IOPAD(0x0074, PIN_OUTPUT, 1) /* (U25) GPMC0_AD14.VOUT0_DATA22 */
+			AM62X_IOPAD(0x0078, PIN_OUTPUT, 1) /* (U24) GPMC0_AD15.VOUT0_DATA23 */
+		>;
+	};
+
+	main_oldi0_pins_default: main-oldi0-default-pins {
+		pinctrl-single,pins = <
+			AM62X_IOPAD(0x0260, PIN_OUTPUT, 0) /* (AA5) OLDI0_A0N */
+			AM62X_IOPAD(0x025c, PIN_OUTPUT, 0) /* (Y6) OLDI0_A0P */
+			AM62X_IOPAD(0x0268, PIN_OUTPUT, 0) /* (AD3) OLDI0_A1N */
+			AM62X_IOPAD(0x0264, PIN_OUTPUT, 0) /* (AB4) OLDI0_A1P */
+			AM62X_IOPAD(0x0270, PIN_OUTPUT, 0) /* (Y8) OLDI0_A2N */
+			AM62X_IOPAD(0x026c, PIN_OUTPUT, 0) /* (AA8) OLDI0_A2P */
+			AM62X_IOPAD(0x0278, PIN_OUTPUT, 0) /* (AB6) OLDI0_A3N */
+			AM62X_IOPAD(0x0274, PIN_OUTPUT, 0) /* (AA7) OLDI0_A3P */
+			AM62X_IOPAD(0x0280, PIN_OUTPUT, 0) /* (AC6) OLDI0_A4N */
+			AM62X_IOPAD(0x027c, PIN_OUTPUT, 0) /* (AC5) OLDI0_A4P */
+			AM62X_IOPAD(0x0288, PIN_OUTPUT, 0) /* (AE5) OLDI0_A5N */
+			AM62X_IOPAD(0x0284, PIN_OUTPUT, 0) /* (AD6) OLDI0_A5P */
+			AM62X_IOPAD(0x0290, PIN_OUTPUT, 0) /* (AE6) OLDI0_A6N */
+			AM62X_IOPAD(0x028c, PIN_OUTPUT, 0) /* (AD7) OLDI0_A6P */
+			AM62X_IOPAD(0x0298, PIN_OUTPUT, 0) /* (AD8) OLDI0_A7N */
+			AM62X_IOPAD(0x0294, PIN_OUTPUT, 0) /* (AE7) OLDI0_A7P */
+			AM62X_IOPAD(0x02a0, PIN_OUTPUT, 0) /* (AD4) OLDI0_CLK0N */
+			AM62X_IOPAD(0x029c, PIN_OUTPUT, 0) /* (AE3) OLDI0_CLK0P */
+			AM62X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (AE4) OLDI0_CLK1N */
+			AM62X_IOPAD(0x02a4, PIN_OUTPUT, 0) /* (AD5) OLDI0_CLK1P */
+		>;
+	};
 };
 
 &mcu_pmx0 {
@@ -410,3 +468,8 @@ &mcasp1 {
 	tx-num-evt = <32>;
 	rx-num-evt = <32>;
 };
+
+&dss {
+	pinctrl-names = "default";
+	pinctrl-0 = <&main_dss0_pins_default &main_oldi0_pins_default>;
+};
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v3 3/8] arm64: dts: ti: k3-am62x-sk-common: Add DSS pinmux info
@ 2023-07-28 17:34   ` Aradhya Bhatia
  0 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

Add pinmux info for video output signals from DSS and OLDI.

The DSS outputs OLDI signals through its first video port (VP1) and DPI
signals via its second video port (VP2). DSS has 2 OLDI transmitters,
and each of them outputs 4 Data Lanes and 1 Clock Lane. The DPI output
from DSS is 24 bits (RGB888) and is forwarded to an HDMI transmitter
(SIL9022) on the board.

Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 .../arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 63 +++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
index 540ed8a0d7fb..d479c0c415a7 100644
--- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
@@ -226,6 +226,64 @@ AM62X_IOPAD(0x08c, PIN_OUTPUT, 2) /* (L25/J17) GPMC0_WEN.MCASP1_AXR0 */
 			AM62X_IOPAD(0x084, PIN_INPUT, 2) /* (L23/K20) GPMC0_ADVN_ALE.MCASP1_AXR2 */
 		>;
 	};
+
+	main_dss0_pins_default: main-dss0-default-pins {
+		pinctrl-single,pins = <
+			AM62X_IOPAD(0x0100, PIN_OUTPUT, 0) /* (AC25) VOUT0_VSYNC */
+			AM62X_IOPAD(0x00f8, PIN_OUTPUT, 0) /* (AB24) VOUT0_HSYNC */
+			AM62X_IOPAD(0x0104, PIN_OUTPUT, 0) /* (AC24) VOUT0_PCLK */
+			AM62X_IOPAD(0x00fc, PIN_OUTPUT, 0) /* (Y20) VOUT0_DE */
+			AM62X_IOPAD(0x00b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
+			AM62X_IOPAD(0x00bc, PIN_OUTPUT, 0) /* (V24) VOUT0_DATA1 */
+			AM62X_IOPAD(0x00c0, PIN_OUTPUT, 0) /* (W25) VOUT0_DATA2 */
+			AM62X_IOPAD(0x00c4, PIN_OUTPUT, 0) /* (W24) VOUT0_DATA3 */
+			AM62X_IOPAD(0x00c8, PIN_OUTPUT, 0) /* (Y25) VOUT0_DATA4 */
+			AM62X_IOPAD(0x00cc, PIN_OUTPUT, 0) /* (Y24) VOUT0_DATA5 */
+			AM62X_IOPAD(0x00d0, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA6 */
+			AM62X_IOPAD(0x00d4, PIN_OUTPUT, 0) /* (AA25) VOUT0_DATA7 */
+			AM62X_IOPAD(0x00d8, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA8 */
+			AM62X_IOPAD(0x00dc, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA9 */
+			AM62X_IOPAD(0x00e0, PIN_OUTPUT, 0) /* (V20) VOUT0_DATA10 */
+			AM62X_IOPAD(0x00e4, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA11 */
+			AM62X_IOPAD(0x00e8, PIN_OUTPUT, 0) /* (AB25) VOUT0_DATA12 */
+			AM62X_IOPAD(0x00ec, PIN_OUTPUT, 0) /* (AA24) VOUT0_DATA13 */
+			AM62X_IOPAD(0x00f0, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA14 */
+			AM62X_IOPAD(0x00f4, PIN_OUTPUT, 0) /* (AA21) VOUT0_DATA15 */
+			AM62X_IOPAD(0x005c, PIN_OUTPUT, 1) /* (R24) GPMC0_AD8.VOUT0_DATA16 */
+			AM62X_IOPAD(0x0060, PIN_OUTPUT, 1) /* (R25) GPMC0_AD9.VOUT0_DATA17 */
+			AM62X_IOPAD(0x0064, PIN_OUTPUT, 1) /* (T25) GPMC0_AD10.VOUT0_DATA18 */
+			AM62X_IOPAD(0x0068, PIN_OUTPUT, 1) /* (R21) GPMC0_AD11.VOUT0_DATA19 */
+			AM62X_IOPAD(0x006c, PIN_OUTPUT, 1) /* (T22) GPMC0_AD12.VOUT0_DATA20 */
+			AM62X_IOPAD(0x0070, PIN_OUTPUT, 1) /* (T24) GPMC0_AD13.VOUT0_DATA21 */
+			AM62X_IOPAD(0x0074, PIN_OUTPUT, 1) /* (U25) GPMC0_AD14.VOUT0_DATA22 */
+			AM62X_IOPAD(0x0078, PIN_OUTPUT, 1) /* (U24) GPMC0_AD15.VOUT0_DATA23 */
+		>;
+	};
+
+	main_oldi0_pins_default: main-oldi0-default-pins {
+		pinctrl-single,pins = <
+			AM62X_IOPAD(0x0260, PIN_OUTPUT, 0) /* (AA5) OLDI0_A0N */
+			AM62X_IOPAD(0x025c, PIN_OUTPUT, 0) /* (Y6) OLDI0_A0P */
+			AM62X_IOPAD(0x0268, PIN_OUTPUT, 0) /* (AD3) OLDI0_A1N */
+			AM62X_IOPAD(0x0264, PIN_OUTPUT, 0) /* (AB4) OLDI0_A1P */
+			AM62X_IOPAD(0x0270, PIN_OUTPUT, 0) /* (Y8) OLDI0_A2N */
+			AM62X_IOPAD(0x026c, PIN_OUTPUT, 0) /* (AA8) OLDI0_A2P */
+			AM62X_IOPAD(0x0278, PIN_OUTPUT, 0) /* (AB6) OLDI0_A3N */
+			AM62X_IOPAD(0x0274, PIN_OUTPUT, 0) /* (AA7) OLDI0_A3P */
+			AM62X_IOPAD(0x0280, PIN_OUTPUT, 0) /* (AC6) OLDI0_A4N */
+			AM62X_IOPAD(0x027c, PIN_OUTPUT, 0) /* (AC5) OLDI0_A4P */
+			AM62X_IOPAD(0x0288, PIN_OUTPUT, 0) /* (AE5) OLDI0_A5N */
+			AM62X_IOPAD(0x0284, PIN_OUTPUT, 0) /* (AD6) OLDI0_A5P */
+			AM62X_IOPAD(0x0290, PIN_OUTPUT, 0) /* (AE6) OLDI0_A6N */
+			AM62X_IOPAD(0x028c, PIN_OUTPUT, 0) /* (AD7) OLDI0_A6P */
+			AM62X_IOPAD(0x0298, PIN_OUTPUT, 0) /* (AD8) OLDI0_A7N */
+			AM62X_IOPAD(0x0294, PIN_OUTPUT, 0) /* (AE7) OLDI0_A7P */
+			AM62X_IOPAD(0x02a0, PIN_OUTPUT, 0) /* (AD4) OLDI0_CLK0N */
+			AM62X_IOPAD(0x029c, PIN_OUTPUT, 0) /* (AE3) OLDI0_CLK0P */
+			AM62X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (AE4) OLDI0_CLK1N */
+			AM62X_IOPAD(0x02a4, PIN_OUTPUT, 0) /* (AD5) OLDI0_CLK1P */
+		>;
+	};
 };
 
 &mcu_pmx0 {
@@ -410,3 +468,8 @@ &mcasp1 {
 	tx-num-evt = <32>;
 	rx-num-evt = <32>;
 };
+
+&dss {
+	pinctrl-names = "default";
+	pinctrl-0 = <&main_dss0_pins_default &main_oldi0_pins_default>;
+};
-- 
2.40.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v3 4/8] arm64: dts: ti: k3-am62x-sk-common: Add HDMI support
  2023-07-28 17:34 ` Aradhya Bhatia
@ 2023-07-28 17:34   ` Aradhya Bhatia
  -1 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

Add DT nodes for sil9022 HDMI transmitter (TX), and the HDMI connector
on the AM625 SK and AM62-LP SK platforms.

Additionally, connect the outputu of DSS (VP2) with input of the HDMI TX,
and the output of HDMI TX to the input of the HDMI connector.

Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 .../arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 54 +++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
index d479c0c415a7..8fd80cf63d65 100644
--- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
@@ -114,6 +114,17 @@ sound_master: simple-audio-card,codec {
 			clocks = <&tlv320_mclk>;
 		};
 	};
+
+	hdmi: connector {
+		compatible = "hdmi-connector";
+		label = "hdmi";
+		type = "a";
+		port {
+			hdmi_connector_in: endpoint {
+				remote-endpoint = <&sii9022_out>;
+			};
+		};
+	};
 };
 
 &main_pmx0 {
@@ -371,6 +382,38 @@ tlv320aic3106: audio-codec@1b {
 		IOVDD-supply = <&vcc_3v3_sys>;
 		DRVDD-supply = <&vcc_3v3_sys>;
 	};
+
+	sii9022: sii9022@3b {
+		compatible = "sil,sii9022";
+		reg = <0x3b>;
+
+		interrupt-parent = <&exp1>;
+		interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
+
+		#sound-dai-cells = <0>;
+		sil,i2s-data-lanes = < 0 >;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				sii9022_in: endpoint {
+					remote-endpoint = <&dpi1_out>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				sii9022_out: endpoint {
+					remote-endpoint = <&hdmi_connector_in>;
+				};
+			};
+		};
+	};
 };
 
 &sdhci0 {
@@ -473,3 +516,14 @@ &dss {
 	pinctrl-names = "default";
 	pinctrl-0 = <&main_dss0_pins_default &main_oldi0_pins_default>;
 };
+
+&dss_ports {
+	/* VP2: DPI Output */
+	port@1 {
+		reg = <1>;
+
+		dpi1_out: endpoint {
+			remote-endpoint = <&sii9022_in>;
+		};
+	};
+};
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v3 4/8] arm64: dts: ti: k3-am62x-sk-common: Add HDMI support
@ 2023-07-28 17:34   ` Aradhya Bhatia
  0 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

Add DT nodes for sil9022 HDMI transmitter (TX), and the HDMI connector
on the AM625 SK and AM62-LP SK platforms.

Additionally, connect the outputu of DSS (VP2) with input of the HDMI TX,
and the output of HDMI TX to the input of the HDMI connector.

Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 .../arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 54 +++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
index d479c0c415a7..8fd80cf63d65 100644
--- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
@@ -114,6 +114,17 @@ sound_master: simple-audio-card,codec {
 			clocks = <&tlv320_mclk>;
 		};
 	};
+
+	hdmi: connector {
+		compatible = "hdmi-connector";
+		label = "hdmi";
+		type = "a";
+		port {
+			hdmi_connector_in: endpoint {
+				remote-endpoint = <&sii9022_out>;
+			};
+		};
+	};
 };
 
 &main_pmx0 {
@@ -371,6 +382,38 @@ tlv320aic3106: audio-codec@1b {
 		IOVDD-supply = <&vcc_3v3_sys>;
 		DRVDD-supply = <&vcc_3v3_sys>;
 	};
+
+	sii9022: sii9022@3b {
+		compatible = "sil,sii9022";
+		reg = <0x3b>;
+
+		interrupt-parent = <&exp1>;
+		interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
+
+		#sound-dai-cells = <0>;
+		sil,i2s-data-lanes = < 0 >;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				sii9022_in: endpoint {
+					remote-endpoint = <&dpi1_out>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				sii9022_out: endpoint {
+					remote-endpoint = <&hdmi_connector_in>;
+				};
+			};
+		};
+	};
 };
 
 &sdhci0 {
@@ -473,3 +516,14 @@ &dss {
 	pinctrl-names = "default";
 	pinctrl-0 = <&main_dss0_pins_default &main_oldi0_pins_default>;
 };
+
+&dss_ports {
+	/* VP2: DPI Output */
+	port@1 {
+		reg = <1>;
+
+		dpi1_out: endpoint {
+			remote-endpoint = <&sii9022_in>;
+		};
+	};
+};
-- 
2.40.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v3 5/8] arm64: dts: ti: am62x-sk: Add overlay for HDMI audio
  2023-07-28 17:34 ` Aradhya Bhatia
@ 2023-07-28 17:34   ` Aradhya Bhatia
  -1 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

From: Jai Luthra <j-luthra@ti.com>

Enable audio output over HDMI instead of the 3.5mm jack.

A FET switch (U65) on the EVM muxes serial audio lines coming from McASP
between the codec (tlv320aic3106) and the HDMI bridge (sii9022).

By default it uses the codec, but it can be toggled to use the HDMI
bridge by shorting a (J24) header on the board.

Signed-off-by: Jai Luthra <j-luthra@ti.com>
[a-bhatia1: Cosmetic changes]
Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 arch/arm64/boot/dts/ti/Makefile               |  3 ++
 .../boot/dts/ti/k3-am62x-sk-hdmi-audio.dtso   | 40 +++++++++++++++++++
 2 files changed, 43 insertions(+)
 create mode 100644 arch/arm64/boot/dts/ti/k3-am62x-sk-hdmi-audio.dtso

diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
index 6dd7b6f1d6ab..b814f6c4b860 100644
--- a/arch/arm64/boot/dts/ti/Makefile
+++ b/arch/arm64/boot/dts/ti/Makefile
@@ -19,6 +19,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-wifi-dahlia.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-wifi-dev.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-wifi-yavia.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am62-lp-sk.dtb
+dtb-$(CONFIG_ARCH_K3) += k3-am62x-sk-hdmi-audio.dtbo
 
 # Boards with AM62Ax SoC
 dtb-$(CONFIG_ARCH_K3) += k3-am62a7-sk.dtb
@@ -58,3 +59,5 @@ dtb-$(CONFIG_ARCH_K3) += k3-j784s4-evm.dtb
 
 # Enable support for device-tree overlays
 DTC_FLAGS_k3-am6548-iot2050-advanced-m2 += -@
+DTC_FLAGS_k3-am625-sk += -@
+DTC_FLAGS_k3-am62-lp-sk += -@
diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-hdmi-audio.dtso b/arch/arm64/boot/dts/ti/k3-am62x-sk-hdmi-audio.dtso
new file mode 100644
index 000000000000..43a0ddc123e5
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-hdmi-audio.dtso
@@ -0,0 +1,40 @@
+// SPDX-License-Identifier: GPL-2.0
+/**
+ * Audio playback via HDMI for AM625-SK and AM62-LP SK.
+ *
+ * Links:
+ * AM625 SK: https://www.ti.com/tool/SK-AM62
+ * AM62-LP SK: https://www.ti.com/tool/SK-AM62-LP
+ *
+ * Copyright (C) 2023 Texas Instruments Incorporated - http://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+	hdmi_audio: sound-sii9022 {
+		compatible = "simple-audio-card";
+		simple-audio-card,name = "AM62x-Sil9022-HDMI";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,bitclock-master = <&hdmi_dailink_master>;
+		simple-audio-card,frame-master = <&hdmi_dailink_master>;
+
+		hdmi_dailink_master: simple-audio-card,cpu {
+			sound-dai = <&mcasp1>;
+			system-clock-direction-out;
+		};
+
+		simple-audio-card,codec {
+			sound-dai = <&sii9022>;
+		};
+	};
+};
+
+&mcasp1 {
+	auxclk-fs-ratio = <2177>;
+};
+
+&codec_audio {
+	status = "disabled";
+};
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v3 5/8] arm64: dts: ti: am62x-sk: Add overlay for HDMI audio
@ 2023-07-28 17:34   ` Aradhya Bhatia
  0 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

From: Jai Luthra <j-luthra@ti.com>

Enable audio output over HDMI instead of the 3.5mm jack.

A FET switch (U65) on the EVM muxes serial audio lines coming from McASP
between the codec (tlv320aic3106) and the HDMI bridge (sii9022).

By default it uses the codec, but it can be toggled to use the HDMI
bridge by shorting a (J24) header on the board.

Signed-off-by: Jai Luthra <j-luthra@ti.com>
[a-bhatia1: Cosmetic changes]
Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 arch/arm64/boot/dts/ti/Makefile               |  3 ++
 .../boot/dts/ti/k3-am62x-sk-hdmi-audio.dtso   | 40 +++++++++++++++++++
 2 files changed, 43 insertions(+)
 create mode 100644 arch/arm64/boot/dts/ti/k3-am62x-sk-hdmi-audio.dtso

diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makefile
index 6dd7b6f1d6ab..b814f6c4b860 100644
--- a/arch/arm64/boot/dts/ti/Makefile
+++ b/arch/arm64/boot/dts/ti/Makefile
@@ -19,6 +19,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-wifi-dahlia.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-wifi-dev.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am625-verdin-wifi-yavia.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am62-lp-sk.dtb
+dtb-$(CONFIG_ARCH_K3) += k3-am62x-sk-hdmi-audio.dtbo
 
 # Boards with AM62Ax SoC
 dtb-$(CONFIG_ARCH_K3) += k3-am62a7-sk.dtb
@@ -58,3 +59,5 @@ dtb-$(CONFIG_ARCH_K3) += k3-j784s4-evm.dtb
 
 # Enable support for device-tree overlays
 DTC_FLAGS_k3-am6548-iot2050-advanced-m2 += -@
+DTC_FLAGS_k3-am625-sk += -@
+DTC_FLAGS_k3-am62-lp-sk += -@
diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-hdmi-audio.dtso b/arch/arm64/boot/dts/ti/k3-am62x-sk-hdmi-audio.dtso
new file mode 100644
index 000000000000..43a0ddc123e5
--- /dev/null
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-hdmi-audio.dtso
@@ -0,0 +1,40 @@
+// SPDX-License-Identifier: GPL-2.0
+/**
+ * Audio playback via HDMI for AM625-SK and AM62-LP SK.
+ *
+ * Links:
+ * AM625 SK: https://www.ti.com/tool/SK-AM62
+ * AM62-LP SK: https://www.ti.com/tool/SK-AM62-LP
+ *
+ * Copyright (C) 2023 Texas Instruments Incorporated - http://www.ti.com/
+ */
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+	hdmi_audio: sound-sii9022 {
+		compatible = "simple-audio-card";
+		simple-audio-card,name = "AM62x-Sil9022-HDMI";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,bitclock-master = <&hdmi_dailink_master>;
+		simple-audio-card,frame-master = <&hdmi_dailink_master>;
+
+		hdmi_dailink_master: simple-audio-card,cpu {
+			sound-dai = <&mcasp1>;
+			system-clock-direction-out;
+		};
+
+		simple-audio-card,codec {
+			sound-dai = <&sii9022>;
+		};
+	};
+};
+
+&mcasp1 {
+	auxclk-fs-ratio = <2177>;
+};
+
+&codec_audio {
+	status = "disabled";
+};
-- 
2.40.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v3 6/8] arm64: dts: ti: k3-am625-beagleplay: Add DSS pinmux info
  2023-07-28 17:34 ` Aradhya Bhatia
@ 2023-07-28 17:34   ` Aradhya Bhatia
  -1 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

Add pinmux info for video output signals from DSS and OLDI.

The DSS outputs OLDI signals through its first video port (VP1) and DPI
signals via its second video port (VP2). DSS has 2 OLDI transmitters,
and each of them outputs 4 Data Lanes and 1 Clock Lane. The DPI output
from DSS is 24 bits (RGB888) and is forwarded to an HDMI transmitter
(ITE-IT66121) on the board.

Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 .../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 63 +++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
index 7c1402b0fa2d..63893d868623 100644
--- a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
+++ b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
@@ -422,6 +422,64 @@ pmic_irq_pins_default: pmic-irq-default-pins {
 			AM62X_IOPAD(0x01f4, PIN_INPUT_PULLUP, 0) /* (D16) EXTINTn */
 		>;
 	};
+
+	dss0_pins_default: dss0-default-pins {
+		pinctrl-single,pins = <
+			AM62X_IOPAD(0x0100, PIN_OUTPUT, 0) /* (AC25) VOUT0_VSYNC */
+			AM62X_IOPAD(0x00f8, PIN_OUTPUT, 0) /* (AB24) VOUT0_HSYNC */
+			AM62X_IOPAD(0x0104, PIN_OUTPUT, 0) /* (AC24) VOUT0_PCLK */
+			AM62X_IOPAD(0x00fc, PIN_OUTPUT, 0) /* (Y20) VOUT0_DE */
+			AM62X_IOPAD(0x00b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
+			AM62X_IOPAD(0x00bc, PIN_OUTPUT, 0) /* (V24) VOUT0_DATA1 */
+			AM62X_IOPAD(0x00c0, PIN_OUTPUT, 0) /* (W25) VOUT0_DATA2 */
+			AM62X_IOPAD(0x00c4, PIN_OUTPUT, 0) /* (W24) VOUT0_DATA3 */
+			AM62X_IOPAD(0x00c8, PIN_OUTPUT, 0) /* (Y25) VOUT0_DATA4 */
+			AM62X_IOPAD(0x00cc, PIN_OUTPUT, 0) /* (Y24) VOUT0_DATA5 */
+			AM62X_IOPAD(0x00d0, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA6 */
+			AM62X_IOPAD(0x00d4, PIN_OUTPUT, 0) /* (AA25) VOUT0_DATA7 */
+			AM62X_IOPAD(0x00d8, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA8 */
+			AM62X_IOPAD(0x00dc, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA9 */
+			AM62X_IOPAD(0x00e0, PIN_OUTPUT, 0) /* (V20) VOUT0_DATA10 */
+			AM62X_IOPAD(0x00e4, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA11 */
+			AM62X_IOPAD(0x00e8, PIN_OUTPUT, 0) /* (AB25) VOUT0_DATA12 */
+			AM62X_IOPAD(0x00ec, PIN_OUTPUT, 0) /* (AA24) VOUT0_DATA13 */
+			AM62X_IOPAD(0x00f0, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA14 */
+			AM62X_IOPAD(0x00f4, PIN_OUTPUT, 0) /* (AA21) VOUT0_DATA15 */
+			AM62X_IOPAD(0x005c, PIN_OUTPUT, 1) /* (R24) GPMC0_AD8.VOUT0_DATA16 */
+			AM62X_IOPAD(0x0060, PIN_OUTPUT, 1) /* (R25) GPMC0_AD9.VOUT0_DATA17 */
+			AM62X_IOPAD(0x0064, PIN_OUTPUT, 1) /* (T25) GPMC0_AD10.VOUT0_DATA18 */
+			AM62X_IOPAD(0x0068, PIN_OUTPUT, 1) /* (R21) GPMC0_AD11.VOUT0_DATA19 */
+			AM62X_IOPAD(0x006c, PIN_OUTPUT, 1) /* (T22) GPMC0_AD12.VOUT0_DATA20 */
+			AM62X_IOPAD(0x0070, PIN_OUTPUT, 1) /* (T24) GPMC0_AD13.VOUT0_DATA21 */
+			AM62X_IOPAD(0x0074, PIN_OUTPUT, 1) /* (U25) GPMC0_AD14.VOUT0_DATA22 */
+			AM62X_IOPAD(0x0078, PIN_OUTPUT, 1) /* (U24) GPMC0_AD15.VOUT0_DATA23 */
+		>;
+	};
+
+	oldi0_pins_default: oldi0-default-pins {
+		pinctrl-single,pins = <
+			AM62X_IOPAD(0x0260, PIN_OUTPUT, 0) /* (AA5) OLDI0_A0N */
+			AM62X_IOPAD(0x025c, PIN_OUTPUT, 0) /* (Y6) OLDI0_A0P */
+			AM62X_IOPAD(0x0268, PIN_OUTPUT, 0) /* (AD3) OLDI0_A1N */
+			AM62X_IOPAD(0x0264, PIN_OUTPUT, 0) /* (AB4) OLDI0_A1P */
+			AM62X_IOPAD(0x0270, PIN_OUTPUT, 0) /* (Y8) OLDI0_A2N */
+			AM62X_IOPAD(0x026c, PIN_OUTPUT, 0) /* (AA8) OLDI0_A2P */
+			AM62X_IOPAD(0x0278, PIN_OUTPUT, 0) /* (AB6) OLDI0_A3N */
+			AM62X_IOPAD(0x0274, PIN_OUTPUT, 0) /* (AA7) OLDI0_A3P */
+			AM62X_IOPAD(0x0280, PIN_OUTPUT, 0) /* (AC6) OLDI0_A4N */
+			AM62X_IOPAD(0x027c, PIN_OUTPUT, 0) /* (AC5) OLDI0_A4P */
+			AM62X_IOPAD(0x0288, PIN_OUTPUT, 0) /* (AE5) OLDI0_A5N */
+			AM62X_IOPAD(0x0284, PIN_OUTPUT, 0) /* (AD6) OLDI0_A5P */
+			AM62X_IOPAD(0x0290, PIN_OUTPUT, 0) /* (AE6) OLDI0_A6N */
+			AM62X_IOPAD(0x028c, PIN_OUTPUT, 0) /* (AD7) OLDI0_A6P */
+			AM62X_IOPAD(0x0298, PIN_OUTPUT, 0) /* (AD8) OLDI0_A7N */
+			AM62X_IOPAD(0x0294, PIN_OUTPUT, 0) /* (AE7) OLDI0_A7P */
+			AM62X_IOPAD(0x02a0, PIN_OUTPUT, 0) /* (AD4) OLDI0_CLK0N */
+			AM62X_IOPAD(0x029c, PIN_OUTPUT, 0) /* (AE3) OLDI0_CLK0P */
+			AM62X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (AE4) OLDI0_CLK1N */
+			AM62X_IOPAD(0x02a4, PIN_OUTPUT, 0) /* (AD5) OLDI0_CLK1P */
+		>;
+	};
 };
 
 &mcu_pmx0 {
@@ -756,3 +814,8 @@ &main_uart6 {
 	pinctrl-0 = <&wifi_debug_uart_pins_default>;
 	status = "okay";
 };
+
+&dss {
+	pinctrl-names = "default";
+	pinctrl-0 = <&dss0_pins_default &oldi0_pins_default>;
+};
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v3 6/8] arm64: dts: ti: k3-am625-beagleplay: Add DSS pinmux info
@ 2023-07-28 17:34   ` Aradhya Bhatia
  0 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

Add pinmux info for video output signals from DSS and OLDI.

The DSS outputs OLDI signals through its first video port (VP1) and DPI
signals via its second video port (VP2). DSS has 2 OLDI transmitters,
and each of them outputs 4 Data Lanes and 1 Clock Lane. The DPI output
from DSS is 24 bits (RGB888) and is forwarded to an HDMI transmitter
(ITE-IT66121) on the board.

Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 .../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 63 +++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
index 7c1402b0fa2d..63893d868623 100644
--- a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
+++ b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
@@ -422,6 +422,64 @@ pmic_irq_pins_default: pmic-irq-default-pins {
 			AM62X_IOPAD(0x01f4, PIN_INPUT_PULLUP, 0) /* (D16) EXTINTn */
 		>;
 	};
+
+	dss0_pins_default: dss0-default-pins {
+		pinctrl-single,pins = <
+			AM62X_IOPAD(0x0100, PIN_OUTPUT, 0) /* (AC25) VOUT0_VSYNC */
+			AM62X_IOPAD(0x00f8, PIN_OUTPUT, 0) /* (AB24) VOUT0_HSYNC */
+			AM62X_IOPAD(0x0104, PIN_OUTPUT, 0) /* (AC24) VOUT0_PCLK */
+			AM62X_IOPAD(0x00fc, PIN_OUTPUT, 0) /* (Y20) VOUT0_DE */
+			AM62X_IOPAD(0x00b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
+			AM62X_IOPAD(0x00bc, PIN_OUTPUT, 0) /* (V24) VOUT0_DATA1 */
+			AM62X_IOPAD(0x00c0, PIN_OUTPUT, 0) /* (W25) VOUT0_DATA2 */
+			AM62X_IOPAD(0x00c4, PIN_OUTPUT, 0) /* (W24) VOUT0_DATA3 */
+			AM62X_IOPAD(0x00c8, PIN_OUTPUT, 0) /* (Y25) VOUT0_DATA4 */
+			AM62X_IOPAD(0x00cc, PIN_OUTPUT, 0) /* (Y24) VOUT0_DATA5 */
+			AM62X_IOPAD(0x00d0, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA6 */
+			AM62X_IOPAD(0x00d4, PIN_OUTPUT, 0) /* (AA25) VOUT0_DATA7 */
+			AM62X_IOPAD(0x00d8, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA8 */
+			AM62X_IOPAD(0x00dc, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA9 */
+			AM62X_IOPAD(0x00e0, PIN_OUTPUT, 0) /* (V20) VOUT0_DATA10 */
+			AM62X_IOPAD(0x00e4, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA11 */
+			AM62X_IOPAD(0x00e8, PIN_OUTPUT, 0) /* (AB25) VOUT0_DATA12 */
+			AM62X_IOPAD(0x00ec, PIN_OUTPUT, 0) /* (AA24) VOUT0_DATA13 */
+			AM62X_IOPAD(0x00f0, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA14 */
+			AM62X_IOPAD(0x00f4, PIN_OUTPUT, 0) /* (AA21) VOUT0_DATA15 */
+			AM62X_IOPAD(0x005c, PIN_OUTPUT, 1) /* (R24) GPMC0_AD8.VOUT0_DATA16 */
+			AM62X_IOPAD(0x0060, PIN_OUTPUT, 1) /* (R25) GPMC0_AD9.VOUT0_DATA17 */
+			AM62X_IOPAD(0x0064, PIN_OUTPUT, 1) /* (T25) GPMC0_AD10.VOUT0_DATA18 */
+			AM62X_IOPAD(0x0068, PIN_OUTPUT, 1) /* (R21) GPMC0_AD11.VOUT0_DATA19 */
+			AM62X_IOPAD(0x006c, PIN_OUTPUT, 1) /* (T22) GPMC0_AD12.VOUT0_DATA20 */
+			AM62X_IOPAD(0x0070, PIN_OUTPUT, 1) /* (T24) GPMC0_AD13.VOUT0_DATA21 */
+			AM62X_IOPAD(0x0074, PIN_OUTPUT, 1) /* (U25) GPMC0_AD14.VOUT0_DATA22 */
+			AM62X_IOPAD(0x0078, PIN_OUTPUT, 1) /* (U24) GPMC0_AD15.VOUT0_DATA23 */
+		>;
+	};
+
+	oldi0_pins_default: oldi0-default-pins {
+		pinctrl-single,pins = <
+			AM62X_IOPAD(0x0260, PIN_OUTPUT, 0) /* (AA5) OLDI0_A0N */
+			AM62X_IOPAD(0x025c, PIN_OUTPUT, 0) /* (Y6) OLDI0_A0P */
+			AM62X_IOPAD(0x0268, PIN_OUTPUT, 0) /* (AD3) OLDI0_A1N */
+			AM62X_IOPAD(0x0264, PIN_OUTPUT, 0) /* (AB4) OLDI0_A1P */
+			AM62X_IOPAD(0x0270, PIN_OUTPUT, 0) /* (Y8) OLDI0_A2N */
+			AM62X_IOPAD(0x026c, PIN_OUTPUT, 0) /* (AA8) OLDI0_A2P */
+			AM62X_IOPAD(0x0278, PIN_OUTPUT, 0) /* (AB6) OLDI0_A3N */
+			AM62X_IOPAD(0x0274, PIN_OUTPUT, 0) /* (AA7) OLDI0_A3P */
+			AM62X_IOPAD(0x0280, PIN_OUTPUT, 0) /* (AC6) OLDI0_A4N */
+			AM62X_IOPAD(0x027c, PIN_OUTPUT, 0) /* (AC5) OLDI0_A4P */
+			AM62X_IOPAD(0x0288, PIN_OUTPUT, 0) /* (AE5) OLDI0_A5N */
+			AM62X_IOPAD(0x0284, PIN_OUTPUT, 0) /* (AD6) OLDI0_A5P */
+			AM62X_IOPAD(0x0290, PIN_OUTPUT, 0) /* (AE6) OLDI0_A6N */
+			AM62X_IOPAD(0x028c, PIN_OUTPUT, 0) /* (AD7) OLDI0_A6P */
+			AM62X_IOPAD(0x0298, PIN_OUTPUT, 0) /* (AD8) OLDI0_A7N */
+			AM62X_IOPAD(0x0294, PIN_OUTPUT, 0) /* (AE7) OLDI0_A7P */
+			AM62X_IOPAD(0x02a0, PIN_OUTPUT, 0) /* (AD4) OLDI0_CLK0N */
+			AM62X_IOPAD(0x029c, PIN_OUTPUT, 0) /* (AE3) OLDI0_CLK0P */
+			AM62X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (AE4) OLDI0_CLK1N */
+			AM62X_IOPAD(0x02a4, PIN_OUTPUT, 0) /* (AD5) OLDI0_CLK1P */
+		>;
+	};
 };
 
 &mcu_pmx0 {
@@ -756,3 +814,8 @@ &main_uart6 {
 	pinctrl-0 = <&wifi_debug_uart_pins_default>;
 	status = "okay";
 };
+
+&dss {
+	pinctrl-names = "default";
+	pinctrl-0 = <&dss0_pins_default &oldi0_pins_default>;
+};
-- 
2.40.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v3 7/8] arm64: dts: ti: k3-am625-beagleplay: Add HDMI support
  2023-07-28 17:34 ` Aradhya Bhatia
@ 2023-07-28 17:34   ` Aradhya Bhatia
  -1 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

From: Nishanth Menon <nm@ti.com>

Add support for HDMI audio and video output.

Beagleplay uses mcasp1 for its audio output, and ITE-IT66121 as its
on-board HDMI encoder.

The HDMI transmitter uses the DPI output from the VP2 of DSS as its
source and forwards the HDMI signals to the on-board Type-A HDMI
connector.

Signed-off-by: Nishanth Menon <nm@ti.com>
[a-bhatia1: Edit sound node properties]
Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 .../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 119 ++++++++++++++++++
 1 file changed, 119 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
index 63893d868623..93da57949b07 100644
--- a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
+++ b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
@@ -192,6 +192,34 @@ usr: button-usr {
 
 	};
 
+	hdmi0: connector {
+		compatible = "hdmi-connector";
+		label = "hdmi";
+		type = "a";
+		port {
+			hdmi_connector_in: endpoint {
+				remote-endpoint = <&it66121hdmitx_out>;
+			};
+		};
+	};
+
+	sound {
+		compatible = "simple-audio-card";
+		simple-audio-card,name = "it66121 HDMI";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,bitclock-master = <&hdmi_dailink_master>;
+		simple-audio-card,frame-master = <&hdmi_dailink_master>;
+
+		hdmi_dailink_master: simple-audio-card,cpu {
+			sound-dai = <&mcasp1>;
+			system-clock-direction-out;
+		};
+
+		simple-audio-card,codec {
+			sound-dai = <&it66121hdmitx>;
+		};
+	};
+
 	/* Workaround for errata i2329 - just use mdio bitbang */
 	mdio0: mdio {
 		compatible = "virtual,mdio-gpio";
@@ -480,6 +508,24 @@ AM62X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (AE4) OLDI0_CLK1N */
 			AM62X_IOPAD(0x02a4, PIN_OUTPUT, 0) /* (AD5) OLDI0_CLK1P */
 		>;
 	};
+
+	hdmi_gpio_pins_default: hdmi-gpio-default-pins {
+		pinctrl-single,pins = <
+			AM62X_IOPAD(0x0094, PIN_INPUT_PULLUP | PIN_DEBOUNCE_CONF6, 7) /* (N20) GPMC0_BE1n.GPIO0_36 */
+			AM62X_IOPAD(0x0054, PIN_OUTPUT_PULLUP, 7) /* (P21) GPMC0_AD6.GPIO0_21 */
+		>;
+	};
+
+	mcasp_hdmi_pins_default: mcasp-hdmi-default-pins {
+		pinctrl-single,pins = <
+			AM62X_IOPAD(0x0090, PIN_INPUT, 2) /* (M24) GPMC0_BE0n_CLE.MCASP1_ACLKX */
+			AM62X_IOPAD(0x0098, PIN_INPUT, 2) /* (U23) GPMC0_WAIT0.MCASP1_AFSX */
+			AM62X_IOPAD(0x008c, PIN_OUTPUT, 2) /* (L25) GPMC0_WEn.MCASP1_AXR0 */
+			AM62X_IOPAD(0x0088, PIN_INPUT, 2) /* (L24) GPMC0_OEn_REn.MCASP1_AXR1 */
+			AM62X_IOPAD(0x0084, PIN_INPUT, 2) /* (L23) GPMC0_ADVn_ALE.MCASP1_AXR2 */
+			AM62X_IOPAD(0x007c, PIN_INPUT, 2) /* (P25) GPMC0_CLK.MCASP1_AXR3 */
+		>;
+	};
 };
 
 &mcu_pmx0 {
@@ -728,6 +774,46 @@ &main_i2c2 {
 	pinctrl-0 = <&i2c2_1v8_pins_default>;
 	clock-frequency = <100000>;
 	status = "okay";
+
+	it66121hdmitx: hdmitx@4c {
+		compatible = "ite,it66121";
+		pinctrl-names = "default";
+		pinctrl-0 = <&hdmi_gpio_pins_default>;
+		reg = <0x4c>;
+
+		#sound-dai-cells = <0>;
+
+		interrupt-parent = <&main_gpio0>;
+		interrupts = <36 IRQ_TYPE_EDGE_FALLING>;
+
+		vcn33-supply = <&vdd_3v3>;
+		vcn18-supply = <&buck2_reg>;
+		vrf12-supply = <&buck3_reg>;
+
+		reset-gpios = <&main_gpio0 21 GPIO_ACTIVE_LOW>;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				it66121hdmitx_in: endpoint {
+					bus-width = <24>;
+					remote-endpoint = <&dpi1_out>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				it66121hdmitx_out: endpoint {
+					remote-endpoint = <&hdmi_connector_in>;
+				};
+			};
+		};
+	};
 };
 
 &main_i2c3 {
@@ -819,3 +905,36 @@ &dss {
 	pinctrl-names = "default";
 	pinctrl-0 = <&dss0_pins_default &oldi0_pins_default>;
 };
+
+&dss_ports {
+	/* VP2: DPI Output */
+	port@1 {
+		reg = <1>;
+
+		dpi1_out: endpoint {
+			remote-endpoint = <&it66121hdmitx_in>;
+		};
+	};
+};
+
+&mcasp1 {
+	status = "okay";
+	#sound-dai-cells = <0>;
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&mcasp_hdmi_pins_default>;
+
+	auxclk-fs-ratio = <2177>;
+
+	op-mode = <0>;          /* MCASP_IIS_MODE */
+	tdm-slots = <2>;
+
+	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
+	       1 0 0 0
+	       0 0 0 0
+	       0 0 0 0
+	       0 0 0 0
+	>;
+	tx-num-evt = <32>;
+	rx-num-evt = <32>;
+};
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v3 7/8] arm64: dts: ti: k3-am625-beagleplay: Add HDMI support
@ 2023-07-28 17:34   ` Aradhya Bhatia
  0 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

From: Nishanth Menon <nm@ti.com>

Add support for HDMI audio and video output.

Beagleplay uses mcasp1 for its audio output, and ITE-IT66121 as its
on-board HDMI encoder.

The HDMI transmitter uses the DPI output from the VP2 of DSS as its
source and forwards the HDMI signals to the on-board Type-A HDMI
connector.

Signed-off-by: Nishanth Menon <nm@ti.com>
[a-bhatia1: Edit sound node properties]
Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 .../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 119 ++++++++++++++++++
 1 file changed, 119 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
index 63893d868623..93da57949b07 100644
--- a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
+++ b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
@@ -192,6 +192,34 @@ usr: button-usr {
 
 	};
 
+	hdmi0: connector {
+		compatible = "hdmi-connector";
+		label = "hdmi";
+		type = "a";
+		port {
+			hdmi_connector_in: endpoint {
+				remote-endpoint = <&it66121hdmitx_out>;
+			};
+		};
+	};
+
+	sound {
+		compatible = "simple-audio-card";
+		simple-audio-card,name = "it66121 HDMI";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,bitclock-master = <&hdmi_dailink_master>;
+		simple-audio-card,frame-master = <&hdmi_dailink_master>;
+
+		hdmi_dailink_master: simple-audio-card,cpu {
+			sound-dai = <&mcasp1>;
+			system-clock-direction-out;
+		};
+
+		simple-audio-card,codec {
+			sound-dai = <&it66121hdmitx>;
+		};
+	};
+
 	/* Workaround for errata i2329 - just use mdio bitbang */
 	mdio0: mdio {
 		compatible = "virtual,mdio-gpio";
@@ -480,6 +508,24 @@ AM62X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (AE4) OLDI0_CLK1N */
 			AM62X_IOPAD(0x02a4, PIN_OUTPUT, 0) /* (AD5) OLDI0_CLK1P */
 		>;
 	};
+
+	hdmi_gpio_pins_default: hdmi-gpio-default-pins {
+		pinctrl-single,pins = <
+			AM62X_IOPAD(0x0094, PIN_INPUT_PULLUP | PIN_DEBOUNCE_CONF6, 7) /* (N20) GPMC0_BE1n.GPIO0_36 */
+			AM62X_IOPAD(0x0054, PIN_OUTPUT_PULLUP, 7) /* (P21) GPMC0_AD6.GPIO0_21 */
+		>;
+	};
+
+	mcasp_hdmi_pins_default: mcasp-hdmi-default-pins {
+		pinctrl-single,pins = <
+			AM62X_IOPAD(0x0090, PIN_INPUT, 2) /* (M24) GPMC0_BE0n_CLE.MCASP1_ACLKX */
+			AM62X_IOPAD(0x0098, PIN_INPUT, 2) /* (U23) GPMC0_WAIT0.MCASP1_AFSX */
+			AM62X_IOPAD(0x008c, PIN_OUTPUT, 2) /* (L25) GPMC0_WEn.MCASP1_AXR0 */
+			AM62X_IOPAD(0x0088, PIN_INPUT, 2) /* (L24) GPMC0_OEn_REn.MCASP1_AXR1 */
+			AM62X_IOPAD(0x0084, PIN_INPUT, 2) /* (L23) GPMC0_ADVn_ALE.MCASP1_AXR2 */
+			AM62X_IOPAD(0x007c, PIN_INPUT, 2) /* (P25) GPMC0_CLK.MCASP1_AXR3 */
+		>;
+	};
 };
 
 &mcu_pmx0 {
@@ -728,6 +774,46 @@ &main_i2c2 {
 	pinctrl-0 = <&i2c2_1v8_pins_default>;
 	clock-frequency = <100000>;
 	status = "okay";
+
+	it66121hdmitx: hdmitx@4c {
+		compatible = "ite,it66121";
+		pinctrl-names = "default";
+		pinctrl-0 = <&hdmi_gpio_pins_default>;
+		reg = <0x4c>;
+
+		#sound-dai-cells = <0>;
+
+		interrupt-parent = <&main_gpio0>;
+		interrupts = <36 IRQ_TYPE_EDGE_FALLING>;
+
+		vcn33-supply = <&vdd_3v3>;
+		vcn18-supply = <&buck2_reg>;
+		vrf12-supply = <&buck3_reg>;
+
+		reset-gpios = <&main_gpio0 21 GPIO_ACTIVE_LOW>;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				it66121hdmitx_in: endpoint {
+					bus-width = <24>;
+					remote-endpoint = <&dpi1_out>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				it66121hdmitx_out: endpoint {
+					remote-endpoint = <&hdmi_connector_in>;
+				};
+			};
+		};
+	};
 };
 
 &main_i2c3 {
@@ -819,3 +905,36 @@ &dss {
 	pinctrl-names = "default";
 	pinctrl-0 = <&dss0_pins_default &oldi0_pins_default>;
 };
+
+&dss_ports {
+	/* VP2: DPI Output */
+	port@1 {
+		reg = <1>;
+
+		dpi1_out: endpoint {
+			remote-endpoint = <&it66121hdmitx_in>;
+		};
+	};
+};
+
+&mcasp1 {
+	status = "okay";
+	#sound-dai-cells = <0>;
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&mcasp_hdmi_pins_default>;
+
+	auxclk-fs-ratio = <2177>;
+
+	op-mode = <0>;          /* MCASP_IIS_MODE */
+	tdm-slots = <2>;
+
+	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
+	       1 0 0 0
+	       0 0 0 0
+	       0 0 0 0
+	       0 0 0 0
+	>;
+	tx-num-evt = <32>;
+	rx-num-evt = <32>;
+};
-- 
2.40.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v3 8/8] arm64: defconfig: Enable ITE_IT66121 HDMI transmitter
  2023-07-28 17:34 ` Aradhya Bhatia
@ 2023-07-28 17:34   ` Aradhya Bhatia
  -1 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

Enable CONFIG_DRM_ITE_IT66121.

ILITEK ITE-IT66121 is an HDMI transmitter, which takes parallel video
signals (DPI) as input. It is being used on TI's AM625 SoC based
BeaglePlay platform[0].

[0]: https://beagleboard.org/play

Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 arch/arm64/configs/defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 6cbf6eb59378..7ad7c5b8bd91 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -823,6 +823,7 @@ CONFIG_DRM_PANEL_VISIONOX_VTDR6130=m
 CONFIG_DRM_LONTIUM_LT8912B=m
 CONFIG_DRM_LONTIUM_LT9611=m
 CONFIG_DRM_LONTIUM_LT9611UXC=m
+CONFIG_DRM_ITE_IT66121=m
 CONFIG_DRM_NWL_MIPI_DSI=m
 CONFIG_DRM_PARADE_PS8640=m
 CONFIG_DRM_SII902X=m
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH v3 8/8] arm64: defconfig: Enable ITE_IT66121 HDMI transmitter
@ 2023-07-28 17:34   ` Aradhya Bhatia
  0 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-07-28 17:34 UTC (permalink / raw)
  To: Nishanth Menon, Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley
  Cc: Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary, Aradhya Bhatia

Enable CONFIG_DRM_ITE_IT66121.

ILITEK ITE-IT66121 is an HDMI transmitter, which takes parallel video
signals (DPI) as input. It is being used on TI's AM625 SoC based
BeaglePlay platform[0].

[0]: https://beagleboard.org/play

Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
---
 arch/arm64/configs/defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 6cbf6eb59378..7ad7c5b8bd91 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -823,6 +823,7 @@ CONFIG_DRM_PANEL_VISIONOX_VTDR6130=m
 CONFIG_DRM_LONTIUM_LT8912B=m
 CONFIG_DRM_LONTIUM_LT9611=m
 CONFIG_DRM_LONTIUM_LT9611UXC=m
+CONFIG_DRM_ITE_IT66121=m
 CONFIG_DRM_NWL_MIPI_DSI=m
 CONFIG_DRM_PARADE_PS8640=m
 CONFIG_DRM_SII902X=m
-- 
2.40.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* Re: [PATCH v3 7/8] arm64: dts: ti: k3-am625-beagleplay: Add HDMI support
  2023-07-28 17:34   ` Aradhya Bhatia
  (?)
@ 2023-07-30  2:20   ` kernel test robot
  -1 siblings, 0 replies; 31+ messages in thread
From: kernel test robot @ 2023-07-30  2:20 UTC (permalink / raw)
  To: Aradhya Bhatia; +Cc: oe-kbuild-all

Hi Aradhya,

kernel test robot noticed the following build errors:

[auto build test ERROR on robh/for-next]
[also build test ERROR on arm64/for-next/core krzk/for-next krzk-dt/for-next linus/master v6.5-rc3 next-20230728]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Aradhya-Bhatia/arm64-dts-ti-k3-am62x-sk-common-Update-main-i2c1-frequency/20230729-013718
base:   https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
patch link:    https://lore.kernel.org/r/20230728173438.12995-8-a-bhatia1%40ti.com
patch subject: [PATCH v3 7/8] arm64: dts: ti: k3-am625-beagleplay: Add HDMI support
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20230730/202307301016.Yf3VYmhw-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230730/202307301016.Yf3VYmhw-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307301016.Yf3VYmhw-lkp@intel.com/

All errors (new ones prefixed by >>):

>> Error: arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts:514.72-73 syntax error
   FATAL ERROR: Unable to parse input tree

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v3 1/8] arm64: dts: ti: k3-am62x-sk-common: Update main-i2c1 frequency
  2023-07-28 17:34   ` Aradhya Bhatia
@ 2023-07-30 16:30     ` Nishanth Menon
  -1 siblings, 0 replies; 31+ messages in thread
From: Nishanth Menon @ 2023-07-30 16:30 UTC (permalink / raw)
  To: Aradhya Bhatia
  Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley,
	Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary

On 23:04-20230728, Aradhya Bhatia wrote:
> The Display Data Channel (DDC) transactions between an HDMI transmitter
> (SIL9022A in this case) and an HDMI monitor, occur at a maximum of
> 100KHz. That's the maximum supported frequency within DDC standards.
> 
> While the SIL9022A can transact with the core at 400KHz, it needs to
> drop the frequency to 100KHz when communicating with the monitor,
> otherwise, the i2c controller times out and shows warning like this.
> 
> [  985.773431] omap_i2c 20010000.i2c: controller timed out
> 
> That feature, however, has not been enabled in the SIL9022 driver.
> 
> Since, dropping the frequency doesn't affect any other devices on the
> bus, drop the main-i2c1 frequency from 400KHz to 100KHz.
> 
> Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
> ---
>  arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
> index 34c8ffc553ec..540ed8a0d7fb 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
> +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
> @@ -300,7 +300,7 @@ &main_i2c1 {
>  	status = "okay";
>  	pinctrl-names = "default";
>  	pinctrl-0 = <&main_i2c1_pins_default>;
> -	clock-frequency = <400000>;
> +	clock-frequency = <100000>;
>  
>  	tlv320aic3106: audio-codec@1b {
>  		#sound-dai-cells = <0>;
> -- 
> 2.40.1
> 

I know we had issues with level shifters on the dev platform previously,
but do we need this patch anymore with the production boards?

if so, use Fixes and I can pick for next.

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v3 1/8] arm64: dts: ti: k3-am62x-sk-common: Update main-i2c1 frequency
@ 2023-07-30 16:30     ` Nishanth Menon
  0 siblings, 0 replies; 31+ messages in thread
From: Nishanth Menon @ 2023-07-30 16:30 UTC (permalink / raw)
  To: Aradhya Bhatia
  Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley,
	Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary

On 23:04-20230728, Aradhya Bhatia wrote:
> The Display Data Channel (DDC) transactions between an HDMI transmitter
> (SIL9022A in this case) and an HDMI monitor, occur at a maximum of
> 100KHz. That's the maximum supported frequency within DDC standards.
> 
> While the SIL9022A can transact with the core at 400KHz, it needs to
> drop the frequency to 100KHz when communicating with the monitor,
> otherwise, the i2c controller times out and shows warning like this.
> 
> [  985.773431] omap_i2c 20010000.i2c: controller timed out
> 
> That feature, however, has not been enabled in the SIL9022 driver.
> 
> Since, dropping the frequency doesn't affect any other devices on the
> bus, drop the main-i2c1 frequency from 400KHz to 100KHz.
> 
> Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
> ---
>  arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
> index 34c8ffc553ec..540ed8a0d7fb 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
> +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
> @@ -300,7 +300,7 @@ &main_i2c1 {
>  	status = "okay";
>  	pinctrl-names = "default";
>  	pinctrl-0 = <&main_i2c1_pins_default>;
> -	clock-frequency = <400000>;
> +	clock-frequency = <100000>;
>  
>  	tlv320aic3106: audio-codec@1b {
>  		#sound-dai-cells = <0>;
> -- 
> 2.40.1
> 

I know we had issues with level shifters on the dev platform previously,
but do we need this patch anymore with the production boards?

if so, use Fixes and I can pick for next.

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v3 3/8] arm64: dts: ti: k3-am62x-sk-common: Add DSS pinmux info
  2023-07-28 17:34   ` Aradhya Bhatia
@ 2023-07-30 16:31     ` Nishanth Menon
  -1 siblings, 0 replies; 31+ messages in thread
From: Nishanth Menon @ 2023-07-30 16:31 UTC (permalink / raw)
  To: Aradhya Bhatia
  Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley,
	Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary

On 23:04-20230728, Aradhya Bhatia wrote:
> Add pinmux info for video output signals from DSS and OLDI.
> 
> The DSS outputs OLDI signals through its first video port (VP1) and DPI
> signals via its second video port (VP2). DSS has 2 OLDI transmitters,
> and each of them outputs 4 Data Lanes and 1 Clock Lane. The DPI output
> from DSS is 24 bits (RGB888) and is forwarded to an HDMI transmitter
> (SIL9022) on the board.
> 
> Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
> ---
>  .../arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 63 +++++++++++++++++++
>  1 file changed, 63 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
> index 540ed8a0d7fb..d479c0c415a7 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
> +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
> @@ -226,6 +226,64 @@ AM62X_IOPAD(0x08c, PIN_OUTPUT, 2) /* (L25/J17) GPMC0_WEN.MCASP1_AXR0 */
>  			AM62X_IOPAD(0x084, PIN_INPUT, 2) /* (L23/K20) GPMC0_ADVN_ALE.MCASP1_AXR2 */
>  		>;
>  	};
> +
> +	main_dss0_pins_default: main-dss0-default-pins {
> +		pinctrl-single,pins = <
> +			AM62X_IOPAD(0x0100, PIN_OUTPUT, 0) /* (AC25) VOUT0_VSYNC */
> +			AM62X_IOPAD(0x00f8, PIN_OUTPUT, 0) /* (AB24) VOUT0_HSYNC */
> +			AM62X_IOPAD(0x0104, PIN_OUTPUT, 0) /* (AC24) VOUT0_PCLK */
> +			AM62X_IOPAD(0x00fc, PIN_OUTPUT, 0) /* (Y20) VOUT0_DE */
> +			AM62X_IOPAD(0x00b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
> +			AM62X_IOPAD(0x00bc, PIN_OUTPUT, 0) /* (V24) VOUT0_DATA1 */
> +			AM62X_IOPAD(0x00c0, PIN_OUTPUT, 0) /* (W25) VOUT0_DATA2 */
> +			AM62X_IOPAD(0x00c4, PIN_OUTPUT, 0) /* (W24) VOUT0_DATA3 */
> +			AM62X_IOPAD(0x00c8, PIN_OUTPUT, 0) /* (Y25) VOUT0_DATA4 */
> +			AM62X_IOPAD(0x00cc, PIN_OUTPUT, 0) /* (Y24) VOUT0_DATA5 */
> +			AM62X_IOPAD(0x00d0, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA6 */
> +			AM62X_IOPAD(0x00d4, PIN_OUTPUT, 0) /* (AA25) VOUT0_DATA7 */
> +			AM62X_IOPAD(0x00d8, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA8 */
> +			AM62X_IOPAD(0x00dc, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA9 */
> +			AM62X_IOPAD(0x00e0, PIN_OUTPUT, 0) /* (V20) VOUT0_DATA10 */
> +			AM62X_IOPAD(0x00e4, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA11 */
> +			AM62X_IOPAD(0x00e8, PIN_OUTPUT, 0) /* (AB25) VOUT0_DATA12 */
> +			AM62X_IOPAD(0x00ec, PIN_OUTPUT, 0) /* (AA24) VOUT0_DATA13 */
> +			AM62X_IOPAD(0x00f0, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA14 */
> +			AM62X_IOPAD(0x00f4, PIN_OUTPUT, 0) /* (AA21) VOUT0_DATA15 */
> +			AM62X_IOPAD(0x005c, PIN_OUTPUT, 1) /* (R24) GPMC0_AD8.VOUT0_DATA16 */
> +			AM62X_IOPAD(0x0060, PIN_OUTPUT, 1) /* (R25) GPMC0_AD9.VOUT0_DATA17 */
> +			AM62X_IOPAD(0x0064, PIN_OUTPUT, 1) /* (T25) GPMC0_AD10.VOUT0_DATA18 */
> +			AM62X_IOPAD(0x0068, PIN_OUTPUT, 1) /* (R21) GPMC0_AD11.VOUT0_DATA19 */
> +			AM62X_IOPAD(0x006c, PIN_OUTPUT, 1) /* (T22) GPMC0_AD12.VOUT0_DATA20 */
> +			AM62X_IOPAD(0x0070, PIN_OUTPUT, 1) /* (T24) GPMC0_AD13.VOUT0_DATA21 */
> +			AM62X_IOPAD(0x0074, PIN_OUTPUT, 1) /* (U25) GPMC0_AD14.VOUT0_DATA22 */
> +			AM62X_IOPAD(0x0078, PIN_OUTPUT, 1) /* (U24) GPMC0_AD15.VOUT0_DATA23 */
> +		>;
> +	};
> +
> +	main_oldi0_pins_default: main-oldi0-default-pins {
> +		pinctrl-single,pins = <
> +			AM62X_IOPAD(0x0260, PIN_OUTPUT, 0) /* (AA5) OLDI0_A0N */
> +			AM62X_IOPAD(0x025c, PIN_OUTPUT, 0) /* (Y6) OLDI0_A0P */
> +			AM62X_IOPAD(0x0268, PIN_OUTPUT, 0) /* (AD3) OLDI0_A1N */
> +			AM62X_IOPAD(0x0264, PIN_OUTPUT, 0) /* (AB4) OLDI0_A1P */
> +			AM62X_IOPAD(0x0270, PIN_OUTPUT, 0) /* (Y8) OLDI0_A2N */
> +			AM62X_IOPAD(0x026c, PIN_OUTPUT, 0) /* (AA8) OLDI0_A2P */
> +			AM62X_IOPAD(0x0278, PIN_OUTPUT, 0) /* (AB6) OLDI0_A3N */
> +			AM62X_IOPAD(0x0274, PIN_OUTPUT, 0) /* (AA7) OLDI0_A3P */
> +			AM62X_IOPAD(0x0280, PIN_OUTPUT, 0) /* (AC6) OLDI0_A4N */
> +			AM62X_IOPAD(0x027c, PIN_OUTPUT, 0) /* (AC5) OLDI0_A4P */
> +			AM62X_IOPAD(0x0288, PIN_OUTPUT, 0) /* (AE5) OLDI0_A5N */
> +			AM62X_IOPAD(0x0284, PIN_OUTPUT, 0) /* (AD6) OLDI0_A5P */
> +			AM62X_IOPAD(0x0290, PIN_OUTPUT, 0) /* (AE6) OLDI0_A6N */
> +			AM62X_IOPAD(0x028c, PIN_OUTPUT, 0) /* (AD7) OLDI0_A6P */
> +			AM62X_IOPAD(0x0298, PIN_OUTPUT, 0) /* (AD8) OLDI0_A7N */
> +			AM62X_IOPAD(0x0294, PIN_OUTPUT, 0) /* (AE7) OLDI0_A7P */
> +			AM62X_IOPAD(0x02a0, PIN_OUTPUT, 0) /* (AD4) OLDI0_CLK0N */
> +			AM62X_IOPAD(0x029c, PIN_OUTPUT, 0) /* (AE3) OLDI0_CLK0P */
> +			AM62X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (AE4) OLDI0_CLK1N */
> +			AM62X_IOPAD(0x02a4, PIN_OUTPUT, 0) /* (AD5) OLDI0_CLK1P */
> +		>;
> +	};
>  };
>  
>  &mcu_pmx0 {
> @@ -410,3 +468,8 @@ &mcasp1 {
>  	tx-num-evt = <32>;
>  	rx-num-evt = <32>;
>  };
> +
> +&dss {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&main_dss0_pins_default &main_oldi0_pins_default>;
No. pinctrl-0 cells is 1.
pinctrl-0 = <&main_dss0_pins_default>, <&main_oldi0_pins_default>;

please.

> +};
> -- 
> 2.40.1
> 

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v3 3/8] arm64: dts: ti: k3-am62x-sk-common: Add DSS pinmux info
@ 2023-07-30 16:31     ` Nishanth Menon
  0 siblings, 0 replies; 31+ messages in thread
From: Nishanth Menon @ 2023-07-30 16:31 UTC (permalink / raw)
  To: Aradhya Bhatia
  Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley,
	Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary

On 23:04-20230728, Aradhya Bhatia wrote:
> Add pinmux info for video output signals from DSS and OLDI.
> 
> The DSS outputs OLDI signals through its first video port (VP1) and DPI
> signals via its second video port (VP2). DSS has 2 OLDI transmitters,
> and each of them outputs 4 Data Lanes and 1 Clock Lane. The DPI output
> from DSS is 24 bits (RGB888) and is forwarded to an HDMI transmitter
> (SIL9022) on the board.
> 
> Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
> ---
>  .../arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 63 +++++++++++++++++++
>  1 file changed, 63 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
> index 540ed8a0d7fb..d479c0c415a7 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
> +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
> @@ -226,6 +226,64 @@ AM62X_IOPAD(0x08c, PIN_OUTPUT, 2) /* (L25/J17) GPMC0_WEN.MCASP1_AXR0 */
>  			AM62X_IOPAD(0x084, PIN_INPUT, 2) /* (L23/K20) GPMC0_ADVN_ALE.MCASP1_AXR2 */
>  		>;
>  	};
> +
> +	main_dss0_pins_default: main-dss0-default-pins {
> +		pinctrl-single,pins = <
> +			AM62X_IOPAD(0x0100, PIN_OUTPUT, 0) /* (AC25) VOUT0_VSYNC */
> +			AM62X_IOPAD(0x00f8, PIN_OUTPUT, 0) /* (AB24) VOUT0_HSYNC */
> +			AM62X_IOPAD(0x0104, PIN_OUTPUT, 0) /* (AC24) VOUT0_PCLK */
> +			AM62X_IOPAD(0x00fc, PIN_OUTPUT, 0) /* (Y20) VOUT0_DE */
> +			AM62X_IOPAD(0x00b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
> +			AM62X_IOPAD(0x00bc, PIN_OUTPUT, 0) /* (V24) VOUT0_DATA1 */
> +			AM62X_IOPAD(0x00c0, PIN_OUTPUT, 0) /* (W25) VOUT0_DATA2 */
> +			AM62X_IOPAD(0x00c4, PIN_OUTPUT, 0) /* (W24) VOUT0_DATA3 */
> +			AM62X_IOPAD(0x00c8, PIN_OUTPUT, 0) /* (Y25) VOUT0_DATA4 */
> +			AM62X_IOPAD(0x00cc, PIN_OUTPUT, 0) /* (Y24) VOUT0_DATA5 */
> +			AM62X_IOPAD(0x00d0, PIN_OUTPUT, 0) /* (Y23) VOUT0_DATA6 */
> +			AM62X_IOPAD(0x00d4, PIN_OUTPUT, 0) /* (AA25) VOUT0_DATA7 */
> +			AM62X_IOPAD(0x00d8, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA8 */
> +			AM62X_IOPAD(0x00dc, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA9 */
> +			AM62X_IOPAD(0x00e0, PIN_OUTPUT, 0) /* (V20) VOUT0_DATA10 */
> +			AM62X_IOPAD(0x00e4, PIN_OUTPUT, 0) /* (AA23) VOUT0_DATA11 */
> +			AM62X_IOPAD(0x00e8, PIN_OUTPUT, 0) /* (AB25) VOUT0_DATA12 */
> +			AM62X_IOPAD(0x00ec, PIN_OUTPUT, 0) /* (AA24) VOUT0_DATA13 */
> +			AM62X_IOPAD(0x00f0, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA14 */
> +			AM62X_IOPAD(0x00f4, PIN_OUTPUT, 0) /* (AA21) VOUT0_DATA15 */
> +			AM62X_IOPAD(0x005c, PIN_OUTPUT, 1) /* (R24) GPMC0_AD8.VOUT0_DATA16 */
> +			AM62X_IOPAD(0x0060, PIN_OUTPUT, 1) /* (R25) GPMC0_AD9.VOUT0_DATA17 */
> +			AM62X_IOPAD(0x0064, PIN_OUTPUT, 1) /* (T25) GPMC0_AD10.VOUT0_DATA18 */
> +			AM62X_IOPAD(0x0068, PIN_OUTPUT, 1) /* (R21) GPMC0_AD11.VOUT0_DATA19 */
> +			AM62X_IOPAD(0x006c, PIN_OUTPUT, 1) /* (T22) GPMC0_AD12.VOUT0_DATA20 */
> +			AM62X_IOPAD(0x0070, PIN_OUTPUT, 1) /* (T24) GPMC0_AD13.VOUT0_DATA21 */
> +			AM62X_IOPAD(0x0074, PIN_OUTPUT, 1) /* (U25) GPMC0_AD14.VOUT0_DATA22 */
> +			AM62X_IOPAD(0x0078, PIN_OUTPUT, 1) /* (U24) GPMC0_AD15.VOUT0_DATA23 */
> +		>;
> +	};
> +
> +	main_oldi0_pins_default: main-oldi0-default-pins {
> +		pinctrl-single,pins = <
> +			AM62X_IOPAD(0x0260, PIN_OUTPUT, 0) /* (AA5) OLDI0_A0N */
> +			AM62X_IOPAD(0x025c, PIN_OUTPUT, 0) /* (Y6) OLDI0_A0P */
> +			AM62X_IOPAD(0x0268, PIN_OUTPUT, 0) /* (AD3) OLDI0_A1N */
> +			AM62X_IOPAD(0x0264, PIN_OUTPUT, 0) /* (AB4) OLDI0_A1P */
> +			AM62X_IOPAD(0x0270, PIN_OUTPUT, 0) /* (Y8) OLDI0_A2N */
> +			AM62X_IOPAD(0x026c, PIN_OUTPUT, 0) /* (AA8) OLDI0_A2P */
> +			AM62X_IOPAD(0x0278, PIN_OUTPUT, 0) /* (AB6) OLDI0_A3N */
> +			AM62X_IOPAD(0x0274, PIN_OUTPUT, 0) /* (AA7) OLDI0_A3P */
> +			AM62X_IOPAD(0x0280, PIN_OUTPUT, 0) /* (AC6) OLDI0_A4N */
> +			AM62X_IOPAD(0x027c, PIN_OUTPUT, 0) /* (AC5) OLDI0_A4P */
> +			AM62X_IOPAD(0x0288, PIN_OUTPUT, 0) /* (AE5) OLDI0_A5N */
> +			AM62X_IOPAD(0x0284, PIN_OUTPUT, 0) /* (AD6) OLDI0_A5P */
> +			AM62X_IOPAD(0x0290, PIN_OUTPUT, 0) /* (AE6) OLDI0_A6N */
> +			AM62X_IOPAD(0x028c, PIN_OUTPUT, 0) /* (AD7) OLDI0_A6P */
> +			AM62X_IOPAD(0x0298, PIN_OUTPUT, 0) /* (AD8) OLDI0_A7N */
> +			AM62X_IOPAD(0x0294, PIN_OUTPUT, 0) /* (AE7) OLDI0_A7P */
> +			AM62X_IOPAD(0x02a0, PIN_OUTPUT, 0) /* (AD4) OLDI0_CLK0N */
> +			AM62X_IOPAD(0x029c, PIN_OUTPUT, 0) /* (AE3) OLDI0_CLK0P */
> +			AM62X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (AE4) OLDI0_CLK1N */
> +			AM62X_IOPAD(0x02a4, PIN_OUTPUT, 0) /* (AD5) OLDI0_CLK1P */
> +		>;
> +	};
>  };
>  
>  &mcu_pmx0 {
> @@ -410,3 +468,8 @@ &mcasp1 {
>  	tx-num-evt = <32>;
>  	rx-num-evt = <32>;
>  };
> +
> +&dss {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&main_dss0_pins_default &main_oldi0_pins_default>;
No. pinctrl-0 cells is 1.
pinctrl-0 = <&main_dss0_pins_default>, <&main_oldi0_pins_default>;

please.

> +};
> -- 
> 2.40.1
> 

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v3 6/8] arm64: dts: ti: k3-am625-beagleplay: Add DSS pinmux info
  2023-07-28 17:34   ` Aradhya Bhatia
@ 2023-07-30 16:33     ` Nishanth Menon
  -1 siblings, 0 replies; 31+ messages in thread
From: Nishanth Menon @ 2023-07-30 16:33 UTC (permalink / raw)
  To: Aradhya Bhatia
  Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley,
	Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary

On 23:04-20230728, Aradhya Bhatia wrote:
[...]

> +&dss {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&dss0_pins_default &oldi0_pins_default>;

Same - 
pinctrl-0 = <&dss0_pins_default>, <&oldi0_pins_default>;
> +};
> -- 
> 2.40.1
> 

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v3 6/8] arm64: dts: ti: k3-am625-beagleplay: Add DSS pinmux info
@ 2023-07-30 16:33     ` Nishanth Menon
  0 siblings, 0 replies; 31+ messages in thread
From: Nishanth Menon @ 2023-07-30 16:33 UTC (permalink / raw)
  To: Aradhya Bhatia
  Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley,
	Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary

On 23:04-20230728, Aradhya Bhatia wrote:
[...]

> +&dss {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&dss0_pins_default &oldi0_pins_default>;

Same - 
pinctrl-0 = <&dss0_pins_default>, <&oldi0_pins_default>;
> +};
> -- 
> 2.40.1
> 

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v3 1/8] arm64: dts: ti: k3-am62x-sk-common: Update main-i2c1 frequency
  2023-07-30 16:30     ` Nishanth Menon
@ 2023-08-03  6:34       ` Aradhya Bhatia
  -1 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-08-03  6:34 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley,
	Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary

Hi Nishanth,

On 30-Jul-23 22:00, Nishanth Menon wrote:
> On 23:04-20230728, Aradhya Bhatia wrote:
>> The Display Data Channel (DDC) transactions between an HDMI transmitter
>> (SIL9022A in this case) and an HDMI monitor, occur at a maximum of
>> 100KHz. That's the maximum supported frequency within DDC standards.
>>
>> While the SIL9022A can transact with the core at 400KHz, it needs to
>> drop the frequency to 100KHz when communicating with the monitor,
>> otherwise, the i2c controller times out and shows warning like this.
>>
>> [  985.773431] omap_i2c 20010000.i2c: controller timed out
>>
>> That feature, however, has not been enabled in the SIL9022 driver.
>>
>> Since, dropping the frequency doesn't affect any other devices on the
>> bus, drop the main-i2c1 frequency from 400KHz to 100KHz.
>>
>> Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
>> ---
>>  arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
>> index 34c8ffc553ec..540ed8a0d7fb 100644
>> --- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
>> +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
>> @@ -300,7 +300,7 @@ &main_i2c1 {
>>  	status = "okay";
>>  	pinctrl-names = "default";
>>  	pinctrl-0 = <&main_i2c1_pins_default>;
>> -	clock-frequency = <400000>;
>> +	clock-frequency = <100000>;
>>  
>>  	tlv320aic3106: audio-codec@1b {
>>  		#sound-dai-cells = <0>;
>> -- 
>> 2.40.1
>>
> 
> I know we had issues with level shifters on the dev platform previously,
> but do we need this patch anymore with the production boards?
> 
> if so, use Fixes and I can pick for next.
> 

This doesn't have anything to do with the level shifter issue we have
had previously. The DDC communication between the monitor and the HDMI
bridge requires that the bus frequency be 100KHz. Some monitors still
end up supporting higher frequencies on higher quality HDMI cables,
but to support a larger variety, we need to ensure that it doesn't
exceed 100KHz. Hence, this is just as much applicable on the production
boards.

Since the capability of the SIL9022 to drop down the transaction
frequency to 100KHz has not been enabled in the driver, I am changing
the bus frequency for the whole i2c-1 bus.

And this patch is not required if display is not being used, so I don't
think we need to back-port to older versions via "Fixes" tag... unless I
am missing a deeper point you were trying to make?

If so, let me know, and I will post a new version with the said tag.


Regards
Aradhya

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v3 1/8] arm64: dts: ti: k3-am62x-sk-common: Update main-i2c1 frequency
@ 2023-08-03  6:34       ` Aradhya Bhatia
  0 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-08-03  6:34 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley,
	Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary

Hi Nishanth,

On 30-Jul-23 22:00, Nishanth Menon wrote:
> On 23:04-20230728, Aradhya Bhatia wrote:
>> The Display Data Channel (DDC) transactions between an HDMI transmitter
>> (SIL9022A in this case) and an HDMI monitor, occur at a maximum of
>> 100KHz. That's the maximum supported frequency within DDC standards.
>>
>> While the SIL9022A can transact with the core at 400KHz, it needs to
>> drop the frequency to 100KHz when communicating with the monitor,
>> otherwise, the i2c controller times out and shows warning like this.
>>
>> [  985.773431] omap_i2c 20010000.i2c: controller timed out
>>
>> That feature, however, has not been enabled in the SIL9022 driver.
>>
>> Since, dropping the frequency doesn't affect any other devices on the
>> bus, drop the main-i2c1 frequency from 400KHz to 100KHz.
>>
>> Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
>> ---
>>  arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
>> index 34c8ffc553ec..540ed8a0d7fb 100644
>> --- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
>> +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
>> @@ -300,7 +300,7 @@ &main_i2c1 {
>>  	status = "okay";
>>  	pinctrl-names = "default";
>>  	pinctrl-0 = <&main_i2c1_pins_default>;
>> -	clock-frequency = <400000>;
>> +	clock-frequency = <100000>;
>>  
>>  	tlv320aic3106: audio-codec@1b {
>>  		#sound-dai-cells = <0>;
>> -- 
>> 2.40.1
>>
> 
> I know we had issues with level shifters on the dev platform previously,
> but do we need this patch anymore with the production boards?
> 
> if so, use Fixes and I can pick for next.
> 

This doesn't have anything to do with the level shifter issue we have
had previously. The DDC communication between the monitor and the HDMI
bridge requires that the bus frequency be 100KHz. Some monitors still
end up supporting higher frequencies on higher quality HDMI cables,
but to support a larger variety, we need to ensure that it doesn't
exceed 100KHz. Hence, this is just as much applicable on the production
boards.

Since the capability of the SIL9022 to drop down the transaction
frequency to 100KHz has not been enabled in the driver, I am changing
the bus frequency for the whole i2c-1 bus.

And this patch is not required if display is not being used, so I don't
think we need to back-port to older versions via "Fixes" tag... unless I
am missing a deeper point you were trying to make?

If so, let me know, and I will post a new version with the said tag.


Regards
Aradhya

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v3 6/8] arm64: dts: ti: k3-am625-beagleplay: Add DSS pinmux info
  2023-07-30 16:33     ` Nishanth Menon
@ 2023-08-03  6:37       ` Aradhya Bhatia
  -1 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-08-03  6:37 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley,
	Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary


On 30-Jul-23 22:03, Nishanth Menon wrote:
> On 23:04-20230728, Aradhya Bhatia wrote:
> [...]
> 
>> +&dss {
>> +	pinctrl-names = "default";
>> +	pinctrl-0 = <&dss0_pins_default &oldi0_pins_default>;
> 
> Same - 
> pinctrl-0 = <&dss0_pins_default>, <&oldi0_pins_default>;

Thanks! Will fix this for both the patches in next version!

>> +};
>> -- 
>> 2.40.1
>>
> 

Regards
Aradhya

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v3 6/8] arm64: dts: ti: k3-am625-beagleplay: Add DSS pinmux info
@ 2023-08-03  6:37       ` Aradhya Bhatia
  0 siblings, 0 replies; 31+ messages in thread
From: Aradhya Bhatia @ 2023-08-03  6:37 UTC (permalink / raw)
  To: Nishanth Menon
  Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
	Krzysztof Kozlowski, Catalin Marinas, Conor Dooley,
	Devicetree List, Linux Kernel List, Linux ARM Kernel List,
	Tomi Valkeinen, Rahul T R, Devarsh Thakkar, Jai Luthra,
	Jayesh Choudhary


On 30-Jul-23 22:03, Nishanth Menon wrote:
> On 23:04-20230728, Aradhya Bhatia wrote:
> [...]
> 
>> +&dss {
>> +	pinctrl-names = "default";
>> +	pinctrl-0 = <&dss0_pins_default &oldi0_pins_default>;
> 
> Same - 
> pinctrl-0 = <&dss0_pins_default>, <&oldi0_pins_default>;

Thanks! Will fix this for both the patches in next version!

>> +};
>> -- 
>> 2.40.1
>>
> 

Regards
Aradhya

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v3 2/8] arm64: dts: ti: k3-am62-main: Add node for DSS
  2023-07-28 17:34   ` Aradhya Bhatia
@ 2023-08-03 14:14     ` Francesco Dolcini
  -1 siblings, 0 replies; 31+ messages in thread
From: Francesco Dolcini @ 2023-08-03 14:14 UTC (permalink / raw)
  To: Aradhya Bhatia, Nishanth Menon, Vignesh Raghavendra
  Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Catalin Marinas,
	Conor Dooley, Devicetree List, Linux Kernel List,
	Linux ARM Kernel List, Tomi Valkeinen, Rahul T R,
	Devarsh Thakkar, Jai Luthra, Jayesh Choudhary

Hello Aradhya, Nishanth and Vignesh

On Fri, Jul 28, 2023 at 11:04:32PM +0530, Aradhya Bhatia wrote:
> Add Display SubSystem (DSS) DT node for the AM625 SoC.
> 
> The DSS supports one each of video pipeline (vid) and video-lite
> pipeline (vidl1). It outputs OLDI signals on one video port (VP1) and
> DPI signals on another (VP2). The video ports are connected to the
> pipelines via 2 identical overlay managers (ovr1 and ovr2).

Not sure on the plan on the whole series, but from my point of view it
would make sense to have (at least) this patch, if deemed correctly,
applied for v6.6.

This will enable others TI AM625 user to start upstreaming their changes
and testing it.

Francesco


^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH v3 2/8] arm64: dts: ti: k3-am62-main: Add node for DSS
@ 2023-08-03 14:14     ` Francesco Dolcini
  0 siblings, 0 replies; 31+ messages in thread
From: Francesco Dolcini @ 2023-08-03 14:14 UTC (permalink / raw)
  To: Aradhya Bhatia, Nishanth Menon, Vignesh Raghavendra
  Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Catalin Marinas,
	Conor Dooley, Devicetree List, Linux Kernel List,
	Linux ARM Kernel List, Tomi Valkeinen, Rahul T R,
	Devarsh Thakkar, Jai Luthra, Jayesh Choudhary

Hello Aradhya, Nishanth and Vignesh

On Fri, Jul 28, 2023 at 11:04:32PM +0530, Aradhya Bhatia wrote:
> Add Display SubSystem (DSS) DT node for the AM625 SoC.
> 
> The DSS supports one each of video pipeline (vid) and video-lite
> pipeline (vidl1). It outputs OLDI signals on one video port (VP1) and
> DPI signals on another (VP2). The video ports are connected to the
> pipelines via 2 identical overlay managers (ovr1 and ovr2).

Not sure on the plan on the whole series, but from my point of view it
would make sense to have (at least) this patch, if deemed correctly,
applied for v6.6.

This will enable others TI AM625 user to start upstreaming their changes
and testing it.

Francesco


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2023-08-03 14:15 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-28 17:34 [PATCH v3 0/8] arm64: ti: k3-am62: Add display support Aradhya Bhatia
2023-07-28 17:34 ` Aradhya Bhatia
2023-07-28 17:34 ` [PATCH v3 1/8] arm64: dts: ti: k3-am62x-sk-common: Update main-i2c1 frequency Aradhya Bhatia
2023-07-28 17:34   ` Aradhya Bhatia
2023-07-30 16:30   ` Nishanth Menon
2023-07-30 16:30     ` Nishanth Menon
2023-08-03  6:34     ` Aradhya Bhatia
2023-08-03  6:34       ` Aradhya Bhatia
2023-07-28 17:34 ` [PATCH v3 2/8] arm64: dts: ti: k3-am62-main: Add node for DSS Aradhya Bhatia
2023-07-28 17:34   ` Aradhya Bhatia
2023-08-03 14:14   ` Francesco Dolcini
2023-08-03 14:14     ` Francesco Dolcini
2023-07-28 17:34 ` [PATCH v3 3/8] arm64: dts: ti: k3-am62x-sk-common: Add DSS pinmux info Aradhya Bhatia
2023-07-28 17:34   ` Aradhya Bhatia
2023-07-30 16:31   ` Nishanth Menon
2023-07-30 16:31     ` Nishanth Menon
2023-07-28 17:34 ` [PATCH v3 4/8] arm64: dts: ti: k3-am62x-sk-common: Add HDMI support Aradhya Bhatia
2023-07-28 17:34   ` Aradhya Bhatia
2023-07-28 17:34 ` [PATCH v3 5/8] arm64: dts: ti: am62x-sk: Add overlay for HDMI audio Aradhya Bhatia
2023-07-28 17:34   ` Aradhya Bhatia
2023-07-28 17:34 ` [PATCH v3 6/8] arm64: dts: ti: k3-am625-beagleplay: Add DSS pinmux info Aradhya Bhatia
2023-07-28 17:34   ` Aradhya Bhatia
2023-07-30 16:33   ` Nishanth Menon
2023-07-30 16:33     ` Nishanth Menon
2023-08-03  6:37     ` Aradhya Bhatia
2023-08-03  6:37       ` Aradhya Bhatia
2023-07-28 17:34 ` [PATCH v3 7/8] arm64: dts: ti: k3-am625-beagleplay: Add HDMI support Aradhya Bhatia
2023-07-28 17:34   ` Aradhya Bhatia
2023-07-30  2:20   ` kernel test robot
2023-07-28 17:34 ` [PATCH v3 8/8] arm64: defconfig: Enable ITE_IT66121 HDMI transmitter Aradhya Bhatia
2023-07-28 17:34   ` Aradhya Bhatia

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.