2024-06-04 10:15:16

by Dmitry Baryshkov

[permalink] [raw]
Subject: [PATCH 0/2] arm64: dts: qcom: switch RB1 and RB2 platforms to i2c2-gpio

On the Qualcomm RB1 and RB2 platforms the I2C bus connected to the
LT9611UXC bridge under some circumstances can go into a state when all
transfers timeout. This causes both issues with fetching of EDID and
with updating of the bridge's firmware.

While we are debugging the issue, switch corresponding I2C bus to use
i2c-gpio driver. While using i2c-gpio no communication issues are
observed.

Signed-off-by: Dmitry Baryshkov <[email protected]>
---
Dmitry Baryshkov (2):
arm64: dts: qcom: qrb2210-rb1: switch I2C2 to i2c-gpio
arm64: dts: qcom: qrb4210-rb2: switch I2C2 to i2c-gpio

arch/arm64/boot/dts/qcom/qrb2210-rb1.dts | 13 ++++++++++++-
arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 13 ++++++++++++-
2 files changed, 24 insertions(+), 2 deletions(-)
---
base-commit: 0e1980c40b6edfa68b6acf926bab22448a6e40c9
change-id: 20240604-rb12-i2c2g-pio-f6035fa8e022

Best regards,
--
Dmitry Baryshkov <[email protected]>



2024-06-04 10:15:37

by Dmitry Baryshkov

[permalink] [raw]
Subject: [PATCH 2/2] arm64: dts: qcom: qrb4210-rb2: switch I2C2 to i2c-gpio

On the Qualcomm RB2 platform the I2C bus connected to the LT9611UXC
bridge under some circumstances can go into a state when all transfers
timeout. This causes both issues with fetching of EDID and with
updating of the bridge's firmware. While we are debugging the issue,
switch corresponding I2C bus to use i2c-gpio driver. While using
i2c-gpio no communication issues are observed.

This patch is asusmed to be a temporary fix, so it is implemented in a
non-intrusive manner to simply reverting it later.

Fixes: f7b01e07e89c ("arm64: dts: qcom: qrb4210-rb2: Enable display out")
Cc: [email protected]
Signed-off-by: Dmitry Baryshkov <[email protected]>
---
arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
index 2c39bb1b97db..5bfbd81db032 100644
--- a/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
+++ b/arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
@@ -60,6 +60,17 @@ hdmi_con: endpoint {
};
};

+ i2c2_gpio: i2c2-gpio {
+ compatible = "i2c-gpio";
+
+ sda-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
+ scl-gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+ };
+
leds {
compatible = "gpio-leds";

@@ -190,7 +201,7 @@ zap-shader {
};
};

-&i2c2 {
+&i2c2_gpio {
clock-frequency = <400000>;
status = "okay";


--
2.39.2


2024-06-04 10:21:46

by Dmitry Baryshkov

[permalink] [raw]
Subject: [PATCH 1/2] arm64: dts: qcom: qrb2210-rb1: switch I2C2 to i2c-gpio

On the Qualcomm RB1 platform the I2C bus connected to the LT9611UXC
bridge under some circumstances can go into a state when all transfers
timeout. This causes both issues with fetching of EDID and with
updating of the bridge's firmware. While we are debugging the issue,
switch corresponding I2C bus to use i2c-gpio driver. While using
i2c-gpio no communication issues are observed.

This patch is asusmed to be a temporary fix, so it is implemented in a
non-intrusive manner to simply reverting it later.

Fixes: 616eda24edd4 ("arm64: dts: qcom: qrb2210-rb1: Set up HDMI")
Cc: [email protected]
Signed-off-by: Dmitry Baryshkov <[email protected]>
---
arch/arm64/boot/dts/qcom/qrb2210-rb1.dts | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts b/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts
index bb5191422660..7ab55337cdfd 100644
--- a/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts
+++ b/arch/arm64/boot/dts/qcom/qrb2210-rb1.dts
@@ -59,6 +59,17 @@ hdmi_con: endpoint {
};
};

+ i2c2_gpio: i2c2-gpio {
+ compatible = "i2c-gpio";
+
+ sda-gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>;
+ scl-gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ status = "disabled";
+ };
+
leds {
compatible = "gpio-leds";

@@ -199,7 +210,7 @@ &gpi_dma0 {
status = "okay";
};

-&i2c2 {
+&i2c2_gpio {
clock-frequency = <400000>;
status = "okay";


--
2.39.2


2024-06-04 16:12:50

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH 0/2] arm64: dts: qcom: switch RB1 and RB2 platforms to i2c2-gpio


On Tue, 04 Jun 2024 13:14:57 +0300, Dmitry Baryshkov wrote:
> On the Qualcomm RB1 and RB2 platforms the I2C bus connected to the
> LT9611UXC bridge under some circumstances can go into a state when all
> transfers timeout. This causes both issues with fetching of EDID and
> with updating of the bridge's firmware.
>
> While we are debugging the issue, switch corresponding I2C bus to use
> i2c-gpio driver. While using i2c-gpio no communication issues are
> observed.
>
> Signed-off-by: Dmitry Baryshkov <[email protected]>
> ---
> Dmitry Baryshkov (2):
> arm64: dts: qcom: qrb2210-rb1: switch I2C2 to i2c-gpio
> arm64: dts: qcom: qrb4210-rb2: switch I2C2 to i2c-gpio
>
> arch/arm64/boot/dts/qcom/qrb2210-rb1.dts | 13 ++++++++++++-
> arch/arm64/boot/dts/qcom/qrb4210-rb2.dts | 13 ++++++++++++-
> 2 files changed, 24 insertions(+), 2 deletions(-)
> ---
> base-commit: 0e1980c40b6edfa68b6acf926bab22448a6e40c9
> change-id: 20240604-rb12-i2c2g-pio-f6035fa8e022
>
> Best regards,
> --
> Dmitry Baryshkov <[email protected]>
>
>
>


My bot found new DTB warnings on the .dts files added or changed in this
series.

Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.

If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:

pip3 install dtschema --upgrade


New warnings running 'make CHECK_DTBS=y qcom/qrb2210-rb1.dtb qcom/qrb4210-rb2.dtb' for [email protected]:

arch/arm64/boot/dts/qcom/qrb2210-rb1.dtb: /: i2c2-gpio: {'compatible': ['i2c-gpio'], 'sda-gpios': [[25, 6, 0]], 'scl-gpios': [[25, 7, 0]], '#address-cells': [[1]], '#size-cells': [[0]], 'status': ['okay'], 'clock-frequency': [[400000]], 'hdmi-bridge@2b': {'compatible': ['lontium,lt9611uxc'], 'reg': [[43]], 'interrupts-extended': [[25, 46, 2]], 'reset-gpios': [[25, 41, 0]], 'vdd-supply': [[107]], 'vcc-supply': [[108]], 'pinctrl-0': [[109, 110]], 'pinctrl-names': ['default'], '#sound-dai-cells': [[1]], 'ports': {'#address-cells': [[1]], '#size-cells': [[0]], 'port@0': {'reg': [[0]], 'endpoint': {'remote-endpoint': [[111]], 'phandle': [[92]]}}, 'port@2': {'reg': [[2]], 'endpoint': {'remote-endpoint': [[112]], 'phandle': [[106]]}}}}} is not of type 'array'
from schema $id: http://devicetree.org/schemas/gpio/gpio-consumer.yaml#
arch/arm64/boot/dts/qcom/qrb4210-rb2.dtb: /: i2c2-gpio: {'compatible': ['i2c-gpio'], 'sda-gpios': [[43, 6, 0]], 'scl-gpios': [[43, 7, 0]], '#address-cells': [[1]], '#size-cells': [[0]], 'status': ['okay'], 'clock-frequency': [[400000]], 'hdmi-bridge@2b': {'compatible': ['lontium,lt9611uxc'], 'reg': [[43]], 'interrupts-extended': [[43, 46, 2]], 'reset-gpios': [[43, 41, 0]], 'vdd-supply': [[178]], 'vcc-supply': [[179]], 'pinctrl-0': [[180, 181]], 'pinctrl-names': ['default'], '#sound-dai-cells': [[1]], 'ports': {'#address-cells': [[1]], '#size-cells': [[0]], 'port@0': {'reg': [[0]], 'endpoint': {'remote-endpoint': [[182]], 'phandle': [[127]]}}, 'port@2': {'reg': [[2]], 'endpoint': {'remote-endpoint': [[183]], 'phandle': [[177]]}}}}} is not of type 'array'
from schema $id: http://devicetree.org/schemas/gpio/gpio-consumer.yaml#
arch/arm64/boot/dts/qcom/qrb2210-rb1.dtb: i2c2-gpio: $nodename:0: 'i2c2-gpio' does not match '^i2c(@.*|-[0-9a-z]+)?$'
from schema $id: http://devicetree.org/schemas/i2c/i2c-gpio.yaml#
arch/arm64/boot/dts/qcom/qrb2210-rb1.dtb: i2c2-gpio: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'clock-frequency', 'hdmi-bridge@2b' were unexpected)
from schema $id: http://devicetree.org/schemas/i2c/i2c-gpio.yaml#
arch/arm64/boot/dts/qcom/qrb4210-rb2.dtb: i2c2-gpio: $nodename:0: 'i2c2-gpio' does not match '^i2c(@.*|-[0-9a-z]+)?$'
from schema $id: http://devicetree.org/schemas/i2c/i2c-gpio.yaml#
arch/arm64/boot/dts/qcom/qrb4210-rb2.dtb: i2c2-gpio: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'clock-frequency', 'hdmi-bridge@2b' were unexpected)
from schema $id: http://devicetree.org/schemas/i2c/i2c-gpio.yaml#