mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-08-29 19:49:10 +00:00

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 <andy.yan@rock-chips.com> Tested-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com> Link: https://lore.kernel.org/r/20250522020537.1884771-1-andyshrk@163.com Signed-off-by: Heiko Stuebner <heiko@sntech.de>
380 lines
7.4 KiB
Plaintext
380 lines
7.4 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
/*
|
|
* Copyright (c) 2021 Rockchip Electronics Co., Ltd.
|
|
*/
|
|
|
|
&pinctrl {
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up: pcfg-pull-up {
|
|
bias-pull-up;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down: pcfg-pull-down {
|
|
bias-pull-down;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none: pcfg-pull-none {
|
|
bias-disable;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_0: pcfg-pull-none-drv-level-0 {
|
|
bias-disable;
|
|
drive-strength = <0>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_1: pcfg-pull-none-drv-level-1 {
|
|
bias-disable;
|
|
drive-strength = <1>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_2: pcfg-pull-none-drv-level-2 {
|
|
bias-disable;
|
|
drive-strength = <2>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_3: pcfg-pull-none-drv-level-3 {
|
|
bias-disable;
|
|
drive-strength = <3>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_4: pcfg-pull-none-drv-level-4 {
|
|
bias-disable;
|
|
drive-strength = <4>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_5: pcfg-pull-none-drv-level-5 {
|
|
bias-disable;
|
|
drive-strength = <5>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_6: pcfg-pull-none-drv-level-6 {
|
|
bias-disable;
|
|
drive-strength = <6>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_7: pcfg-pull-none-drv-level-7 {
|
|
bias-disable;
|
|
drive-strength = <7>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_8: pcfg-pull-none-drv-level-8 {
|
|
bias-disable;
|
|
drive-strength = <8>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_9: pcfg-pull-none-drv-level-9 {
|
|
bias-disable;
|
|
drive-strength = <9>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_10: pcfg-pull-none-drv-level-10 {
|
|
bias-disable;
|
|
drive-strength = <10>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_11: pcfg-pull-none-drv-level-11 {
|
|
bias-disable;
|
|
drive-strength = <11>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_12: pcfg-pull-none-drv-level-12 {
|
|
bias-disable;
|
|
drive-strength = <12>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_13: pcfg-pull-none-drv-level-13 {
|
|
bias-disable;
|
|
drive-strength = <13>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_14: pcfg-pull-none-drv-level-14 {
|
|
bias-disable;
|
|
drive-strength = <14>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_15: pcfg-pull-none-drv-level-15 {
|
|
bias-disable;
|
|
drive-strength = <15>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_0: pcfg-pull-up-drv-level-0 {
|
|
bias-pull-up;
|
|
drive-strength = <0>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_1: pcfg-pull-up-drv-level-1 {
|
|
bias-pull-up;
|
|
drive-strength = <1>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_2: pcfg-pull-up-drv-level-2 {
|
|
bias-pull-up;
|
|
drive-strength = <2>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_3: pcfg-pull-up-drv-level-3 {
|
|
bias-pull-up;
|
|
drive-strength = <3>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_4: pcfg-pull-up-drv-level-4 {
|
|
bias-pull-up;
|
|
drive-strength = <4>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_5: pcfg-pull-up-drv-level-5 {
|
|
bias-pull-up;
|
|
drive-strength = <5>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_6: pcfg-pull-up-drv-level-6 {
|
|
bias-pull-up;
|
|
drive-strength = <6>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_7: pcfg-pull-up-drv-level-7 {
|
|
bias-pull-up;
|
|
drive-strength = <7>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_8: pcfg-pull-up-drv-level-8 {
|
|
bias-pull-up;
|
|
drive-strength = <8>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_9: pcfg-pull-up-drv-level-9 {
|
|
bias-pull-up;
|
|
drive-strength = <9>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_10: pcfg-pull-up-drv-level-10 {
|
|
bias-pull-up;
|
|
drive-strength = <10>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_11: pcfg-pull-up-drv-level-11 {
|
|
bias-pull-up;
|
|
drive-strength = <11>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_12: pcfg-pull-up-drv-level-12 {
|
|
bias-pull-up;
|
|
drive-strength = <12>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_13: pcfg-pull-up-drv-level-13 {
|
|
bias-pull-up;
|
|
drive-strength = <13>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_14: pcfg-pull-up-drv-level-14 {
|
|
bias-pull-up;
|
|
drive-strength = <14>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_drv_level_15: pcfg-pull-up-drv-level-15 {
|
|
bias-pull-up;
|
|
drive-strength = <15>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_0: pcfg-pull-down-drv-level-0 {
|
|
bias-pull-down;
|
|
drive-strength = <0>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_1: pcfg-pull-down-drv-level-1 {
|
|
bias-pull-down;
|
|
drive-strength = <1>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_2: pcfg-pull-down-drv-level-2 {
|
|
bias-pull-down;
|
|
drive-strength = <2>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_3: pcfg-pull-down-drv-level-3 {
|
|
bias-pull-down;
|
|
drive-strength = <3>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_4: pcfg-pull-down-drv-level-4 {
|
|
bias-pull-down;
|
|
drive-strength = <4>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_5: pcfg-pull-down-drv-level-5 {
|
|
bias-pull-down;
|
|
drive-strength = <5>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_6: pcfg-pull-down-drv-level-6 {
|
|
bias-pull-down;
|
|
drive-strength = <6>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_7: pcfg-pull-down-drv-level-7 {
|
|
bias-pull-down;
|
|
drive-strength = <7>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_8: pcfg-pull-down-drv-level-8 {
|
|
bias-pull-down;
|
|
drive-strength = <8>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_9: pcfg-pull-down-drv-level-9 {
|
|
bias-pull-down;
|
|
drive-strength = <9>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_10: pcfg-pull-down-drv-level-10 {
|
|
bias-pull-down;
|
|
drive-strength = <10>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_11: pcfg-pull-down-drv-level-11 {
|
|
bias-pull-down;
|
|
drive-strength = <11>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_12: pcfg-pull-down-drv-level-12 {
|
|
bias-pull-down;
|
|
drive-strength = <12>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_13: pcfg-pull-down-drv-level-13 {
|
|
bias-pull-down;
|
|
drive-strength = <13>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_14: pcfg-pull-down-drv-level-14 {
|
|
bias-pull-down;
|
|
drive-strength = <14>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_drv_level_15: pcfg-pull-down-drv-level-15 {
|
|
bias-pull-down;
|
|
drive-strength = <15>;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_up_smt: pcfg-pull-up-smt {
|
|
bias-pull-up;
|
|
input-schmitt-enable;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_down_smt: pcfg-pull-down-smt {
|
|
bias-pull-down;
|
|
input-schmitt-enable;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_smt: pcfg-pull-none-smt {
|
|
bias-disable;
|
|
input-schmitt-enable;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_0_smt: pcfg-pull-none-drv-level-0-smt {
|
|
bias-disable;
|
|
drive-strength = <0>;
|
|
input-schmitt-enable;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_1_smt: pcfg-pull-none-drv-level-1-smt {
|
|
bias-disable;
|
|
drive-strength = <1>;
|
|
input-schmitt-enable;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_2_smt: pcfg-pull-none-drv-level-2-smt {
|
|
bias-disable;
|
|
drive-strength = <2>;
|
|
input-schmitt-enable;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_3_smt: pcfg-pull-none-drv-level-3-smt {
|
|
bias-disable;
|
|
drive-strength = <3>;
|
|
input-schmitt-enable;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_4_smt: pcfg-pull-none-drv-level-4-smt {
|
|
bias-disable;
|
|
drive-strength = <4>;
|
|
input-schmitt-enable;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_pull_none_drv_level_5_smt: pcfg-pull-none-drv-level-5-smt {
|
|
bias-disable;
|
|
drive-strength = <5>;
|
|
input-schmitt-enable;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_output_high: pcfg-output-high {
|
|
output-high;
|
|
};
|
|
|
|
/omit-if-no-ref/
|
|
pcfg_output_low: pcfg-output-low {
|
|
output-low;
|
|
};
|
|
};
|