Skip to content

Commit af9feb0

Browse files
Andy Yanmmind
authored andcommitted
arm64: dts: rockchip: Adjust the HDMI DDC IO driver strength for rk3588
For the RK3588 HDMI controller, the falling edge of DDC SDA and SCL almost coincide and cannot be adjusted by HDMI registrer, resulting in poor compatibility of DDC communication. An improvement of the compatibility of DDC can be done by increasing the driver strength of SCL and decreasing the driver strength of SDA to increase the slope of the falling edge. It should be noted that the maximum driving strength of hdmim0_tx1_scl is only 3, which is different from that of the other IOs. Signed-off-by: Andy Yan <[email protected]> Tested-by: Nicolas Frattaroli <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Heiko Stuebner <[email protected]>
1 parent af0f43d commit af9feb0

File tree

3 files changed

+48
-12
lines changed

3 files changed

+48
-12
lines changed

arch/arm64/boot/dts/rockchip/rk3588-base-pinctrl.dtsi

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -578,14 +578,14 @@
578578
hdmim0_tx0_scl: hdmim0-tx0-scl {
579579
rockchip,pins =
580580
/* hdmim0_tx0_scl */
581-
<4 RK_PB7 5 &pcfg_pull_none>;
581+
<4 RK_PB7 5 &pcfg_pull_none_drv_level_5_smt>;
582582
};
583583

584584
/omit-if-no-ref/
585585
hdmim0_tx0_sda: hdmim0-tx0-sda {
586586
rockchip,pins =
587587
/* hdmim0_tx0_sda */
588-
<4 RK_PC0 5 &pcfg_pull_none>;
588+
<4 RK_PC0 5 &pcfg_pull_none_drv_level_1_smt>;
589589
};
590590

591591
/omit-if-no-ref/
@@ -640,14 +640,14 @@
640640
hdmim1_tx0_scl: hdmim1-tx0-scl {
641641
rockchip,pins =
642642
/* hdmim1_tx0_scl */
643-
<0 RK_PD5 11 &pcfg_pull_none>;
643+
<0 RK_PD5 11 &pcfg_pull_none_drv_level_5_smt>;
644644
};
645645

646646
/omit-if-no-ref/
647647
hdmim1_tx0_sda: hdmim1-tx0-sda {
648648
rockchip,pins =
649649
/* hdmim1_tx0_sda */
650-
<0 RK_PD4 11 &pcfg_pull_none>;
650+
<0 RK_PD4 11 &pcfg_pull_none_drv_level_1_smt>;
651651
};
652652

653653
/omit-if-no-ref/
@@ -668,14 +668,14 @@
668668
hdmim1_tx1_scl: hdmim1-tx1-scl {
669669
rockchip,pins =
670670
/* hdmim1_tx1_scl */
671-
<3 RK_PC6 5 &pcfg_pull_none>;
671+
<3 RK_PC6 5 &pcfg_pull_none_drv_level_5_smt>;
672672
};
673673

674674
/omit-if-no-ref/
675675
hdmim1_tx1_sda: hdmim1-tx1-sda {
676676
rockchip,pins =
677677
/* hdmim1_tx1_sda */
678-
<3 RK_PC5 5 &pcfg_pull_none>;
678+
<3 RK_PC5 5 &pcfg_pull_none_drv_level_1_smt>;
679679
};
680680
/omit-if-no-ref/
681681
hdmim2_rx_cec: hdmim2-rx-cec {
@@ -709,14 +709,14 @@
709709
hdmim2_tx0_scl: hdmim2-tx0-scl {
710710
rockchip,pins =
711711
/* hdmim2_tx0_scl */
712-
<3 RK_PC7 5 &pcfg_pull_none>;
712+
<3 RK_PC7 5 &pcfg_pull_none_drv_level_5_smt>;
713713
};
714714

715715
/omit-if-no-ref/
716716
hdmim2_tx0_sda: hdmim2-tx0-sda {
717717
rockchip,pins =
718718
/* hdmim2_tx0_sda */
719-
<3 RK_PD0 5 &pcfg_pull_none>;
719+
<3 RK_PD0 5 &pcfg_pull_none_drv_level_1_smt>;
720720
};
721721

722722
/omit-if-no-ref/
@@ -730,14 +730,14 @@
730730
hdmim2_tx1_scl: hdmim2-tx1-scl {
731731
rockchip,pins =
732732
/* hdmim2_tx1_scl */
733-
<1 RK_PA4 5 &pcfg_pull_none>;
733+
<1 RK_PA4 5 &pcfg_pull_none_drv_level_5_smt>;
734734
};
735735

736736
/omit-if-no-ref/
737737
hdmim2_tx1_sda: hdmim2-tx1-sda {
738738
rockchip,pins =
739739
/* hdmim2_tx1_sda */
740-
<1 RK_PA3 5 &pcfg_pull_none>;
740+
<1 RK_PA3 5 &pcfg_pull_none_drv_level_1_smt>;
741741
};
742742

743743
/omit-if-no-ref/

arch/arm64/boot/dts/rockchip/rk3588-extra-pinctrl.dtsi

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,14 +160,15 @@
160160
hdmim0_tx1_scl: hdmim0-tx1-scl {
161161
rockchip,pins =
162162
/* hdmim0_tx1_scl */
163-
<2 RK_PB5 4 &pcfg_pull_none>;
163+
<2 RK_PB5 4 &pcfg_pull_none_drv_level_3_smt>;
164164
};
165165

166166
/omit-if-no-ref/
167167
hdmim0_tx1_sda: hdmim0-tx1-sda {
168168
rockchip,pins =
169169
/* hdmim0_tx1_sda */
170-
<2 RK_PB4 4 &pcfg_pull_none>;
170+
<2 RK_PB4 4 &pcfg_pull_none_drv_level_1_smt>;
171+
171172
};
172173
};
173174

arch/arm64/boot/dts/rockchip/rockchip-pinconf.dtsi

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,41 @@
332332
input-schmitt-enable;
333333
};
334334

335+
/omit-if-no-ref/
336+
pcfg_pull_none_drv_level_1_smt: pcfg-pull-none-drv-level-1-smt {
337+
bias-disable;
338+
drive-strength = <1>;
339+
input-schmitt-enable;
340+
};
341+
342+
/omit-if-no-ref/
343+
pcfg_pull_none_drv_level_2_smt: pcfg-pull-none-drv-level-2-smt {
344+
bias-disable;
345+
drive-strength = <2>;
346+
input-schmitt-enable;
347+
};
348+
349+
/omit-if-no-ref/
350+
pcfg_pull_none_drv_level_3_smt: pcfg-pull-none-drv-level-3-smt {
351+
bias-disable;
352+
drive-strength = <3>;
353+
input-schmitt-enable;
354+
};
355+
356+
/omit-if-no-ref/
357+
pcfg_pull_none_drv_level_4_smt: pcfg-pull-none-drv-level-4-smt {
358+
bias-disable;
359+
drive-strength = <4>;
360+
input-schmitt-enable;
361+
};
362+
363+
/omit-if-no-ref/
364+
pcfg_pull_none_drv_level_5_smt: pcfg-pull-none-drv-level-5-smt {
365+
bias-disable;
366+
drive-strength = <5>;
367+
input-schmitt-enable;
368+
};
369+
335370
/omit-if-no-ref/
336371
pcfg_output_high: pcfg-output-high {
337372
output-high;

0 commit comments

Comments
 (0)