2022-05-06 18:14:53

by Aradhya Bhatia

[permalink] [raw]
Subject: [PATCH v2 0/4] arm64: ti: k3-am62: Add DT nodes to enable

The patch series adds DT nodes for Display SubSystem and other
peripherals required to enable the display on the AM625-SK board. An
HDMI monitor can be connected to the board to view the image/video
outputs.

This series should be applied on top of Vignesh Raghavendra's patch
series that introduces the basic soc and board peripherals for AM62x.

Link for Vignesh's Patch series:
https://lore.kernel.org/linux-arm-kernel/[email protected]/

Changelog:
V2:
- Removed repetitive data in dss_ports

Aradhya Bhatia (4):
arm64: dts: ti: k3-am62-main: Add node for Display SubSystem
arm64: dts: ti: k3-am625-sk: Add DSS pinmux info
arm64: dts: ti: k3-am625-sk: Update main-i2c1 frequency
arm64: dts: ti: k3-am625-sk: Add DSS ports, HDMI tx & peripherals

arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 30 +++++++
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 100 ++++++++++++++++++++++-
2 files changed, 129 insertions(+), 1 deletion(-)

--
2.36.0



2022-05-09 05:13:37

by Aradhya Bhatia

[permalink] [raw]
Subject: [PATCH v2 4/4] arm64: dts: ti: k3-am625-sk: Add DSS ports, HDMI tx & peripherals

Add DT nodes for sil9022 HDMI transmitter (tx), HDMI connector and the
HDMI fixed master clock on the am625-sk board.

Additionally, add and connect output port for DSS (vp2), input and output
ports for the sil9022 HDMI tx and the input port for the HDMI connector.

The sil9022 HDMI tx is connected on the i2c1 bus. The HDMI connector on
the board is of type "a". The clock frequency of the master clock that
supports the HDMI tx is 12.288 MHz.

The dpi output signals from the vp2 of DSS are fed into the sil9022 HDMI
transmitter. These signals are converted into HDMI signals which are
further passed on to the HDMI connector on the board, on which display
can be connected via appropriate HDMI cables.

Signed-off-by: Aradhya Bhatia <[email protected]>
Reviewed-by: Rahul T R <[email protected]>
---
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 60 ++++++++++++++++++++++++++
1 file changed, 60 insertions(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk.dts b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
index 96414c5dacf7..e5b05223e9a1 100644
--- a/arch/arm64/boot/dts/ti/k3-am625-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
@@ -134,6 +134,23 @@ led-0 {
default-state = "off";
};
};
+
+ hdmi_mstrclk: hdmi-mstrclk {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <12288000>;
+ };
+
+ hdmi: connector {
+ compatible = "hdmi-connector";
+ label = "hdmi";
+ type = "a";
+ port {
+ hdmi_connector_in: endpoint {
+ remote-endpoint = <&sii9022_out>;
+ };
+ };
+ };
};

&main_pmx0 {
@@ -385,6 +402,38 @@ exp1: gpio@22 {
pinctrl-names = "default";
pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>;
};
+
+ sii9022: sii9022@3b {
+ compatible = "sil,sii9022";
+ reg = <0x3b>;
+
+ clocks = <&hdmi_mstrclk>;
+ clock-names = "mclk";
+
+ interrupt-parent = <&exp1>;
+ interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
+
+ 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>;
+ };
+ };
+ };
+ };
};

&main_i2c2 {
@@ -450,6 +499,17 @@ &dss {
pinctrl-0 = <&main_dss0_pins_default>;
};

+&dss_ports {
+ /* VP2: DPI Output */
+ port@1 {
+ reg = <1>;
+
+ dpi1_out: endpoint {
+ remote-endpoint = <&sii9022_in>;
+ };
+ };
+};
+
&mailbox0_cluster0 {
mbox_m4_0: mbox-m4-0 {
ti,mbox-rx = <0 0 0>;
--
2.36.0


2022-05-09 08:19:58

by Aradhya Bhatia

[permalink] [raw]
Subject: [PATCH v2 3/4] arm64: dts: ti: k3-am625-sk: Update main-i2c1 frequency

Update the main-i2c1 frequency from 400KHz to 100KHz.

There are 2 devices on the i2c-1 bus. An IO-Expander and an HDMI TX.
Both of these are capable of servicing i2c upto a max frequency of
400KHz.

However, below warning log shows up while running any userspace
application that uses the HDMI display when the main-i2c1 frequency is
set at 400KHz.

[ 985.773431] omap_i2c 20010000.i2c: controller timed out

With some further tests using 2 frequencies, 100 KHz and 400KHz across
different HDMI cable & monitor setups, it was observed that,

- i2c frequency of 400KHz works fine with standard good quality HDMI
cables with branded displays. It will show the controller timeout
warnings only when a sub-standard / generic HDMI cable is being used.

- Using 100KHz for i2c frequency, stops the warning from showing up
for the generic HDMI cables as well.

Since, the IO-Expander is the only other component on that i2c bus and
we are not performing any intensive operations on it, it would be safe
to set the i2c frequency at 100KHz in order to support a broader variety
of HDMI cables.

Signed-off-by: Aradhya Bhatia <[email protected]>
Reviewed-by: Rahul T R <[email protected]>
---
arch/arm64/boot/dts/ti/k3-am625-sk.dts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk.dts b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
index ab3d90d358ee..96414c5dacf7 100644
--- a/arch/arm64/boot/dts/ti/k3-am625-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
@@ -357,7 +357,7 @@ &main_i2c0 {
&main_i2c1 {
pinctrl-names = "default";
pinctrl-0 = <&main_i2c1_pins_default>;
- clock-frequency = <400000>;
+ clock-frequency = <100000>;

exp1: gpio@22 {
compatible = "ti,tca6424";
--
2.36.0


2022-05-11 09:18:16

by Vignesh Raghavendra

[permalink] [raw]
Subject: Re: [PATCH v2 4/4] arm64: dts: ti: k3-am625-sk: Add DSS ports, HDMI tx & peripherals

Hi Aradhya,

On 05/05/22 19:13, Aradhya Bhatia wrote:
> +
> + sii9022: sii9022@3b {
> + compatible = "sil,sii9022";

Please convert
Documentation/devicetree/bindings/display/bridge/sii902x.txt to YAML format

> + reg = <0x3b>;
> +
> + clocks = <&hdmi_mstrclk>;
> + clock-names = "mclk";
> +
> + interrupt-parent = <&exp1>;
> + interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
> +
> + 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>;
> + };
> + };
> + };
> + };

--
Regards
Vignesh