2024-06-05 08:56:31

by Dmitry Baryshkov

[permalink] [raw]
Subject: [PATCH v2 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]>
---
Changes in v2:
- Fixed i2c node names to fix DT validation issues (Rob)
- Link to v1: https://lore.kernel.org/r/[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-05 08:56:37

by Dmitry Baryshkov

[permalink] [raw]
Subject: [PATCH v2 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..cb8a62714a30 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: i2c {
+ 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-05 08:56:56

by Dmitry Baryshkov

[permalink] [raw]
Subject: [PATCH v2 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..8c27d52139a1 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: i2c {
+ 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-05 11:45:30

by Caleb Connolly

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



On 05/06/2024 10:55, Dmitry Baryshkov wrote:
> 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]>

Reviewed-by: Caleb Connolly <[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..cb8a62714a30 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: i2c {
> + 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";
>
>

--
// Caleb (they/them)

2024-06-05 11:45:47

by Caleb Connolly

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



On 05/06/2024 10:55, Dmitry Baryshkov wrote:
> 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]>

Reviewed-by: Caleb Connolly <[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..8c27d52139a1 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: i2c {
> + 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";
>
>

--
// Caleb (they/them)

2024-06-06 03:22:06

by Bjorn Andersson

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


On Wed, 05 Jun 2024 11:55:55 +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.
>
> [...]

Applied, thanks!

[1/2] arm64: dts: qcom: qrb2210-rb1: switch I2C2 to i2c-gpio
commit: b7b545ccc08873e107aa24c461b1fdb123dd3761
[2/2] arm64: dts: qcom: qrb4210-rb2: switch I2C2 to i2c-gpio
commit: f77e7bd40c3c2d79685e9cc80de874b69a976f55

Best regards,
--
Bjorn Andersson <[email protected]>