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 <[email protected]>
---
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
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 <[email protected]>
> ---
> 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
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 <[email protected]>
>> ---
>> 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