diff mbox series

[v3,1/8] arm64: dts: ti: k3-am62x-sk-common: Update main-i2c1 frequency

Message ID 20230728173438.12995-2-a-bhatia1@ti.com (mailing list archive)
State New, archived
Headers show
Series arm64: ti: k3-am62: Add display support | expand

Commit Message

Aradhya Bhatia July 28, 2023, 5:34 p.m. UTC
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(-)

Comments

Nishanth Menon July 30, 2023, 4:30 p.m. UTC | #1
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.
Aradhya Bhatia Aug. 3, 2023, 6:34 a.m. UTC | #2
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
diff mbox series

Patch

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>;