linux-loongson/arch/arm64/boot/dts/rockchip/rk3588-extra-pinctrl.dtsi
Andy Yan af9feb0b85 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 <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>
2025-06-09 11:11:44 +02:00

518 lines
9.7 KiB
Plaintext

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2021 Rockchip Electronics Co., Ltd.
*/
#include <dt-bindings/pinctrl/rockchip.h>
#include "rockchip-pinconf.dtsi"
/*
* This file is auto generated by pin2dts tool, please keep these code
* by adding changes at end of this file.
*/
&pinctrl {
clk32k {
/omit-if-no-ref/
clk32k_out1: clk32k-out1 {
rockchip,pins =
/* clk32k_out1 */
<2 RK_PC5 1 &pcfg_pull_none>;
};
};
eth0 {
/omit-if-no-ref/
eth0_pins: eth0-pins {
rockchip,pins =
/* eth0_refclko_25m */
<2 RK_PC3 1 &pcfg_pull_none>;
};
};
fspi {
/omit-if-no-ref/
fspim1_pins: fspim1-pins {
rockchip,pins =
/* fspi_clk_m1 */
<2 RK_PB3 3 &pcfg_pull_up_drv_level_2>,
/* fspi_cs0n_m1 */
<2 RK_PB4 3 &pcfg_pull_up_drv_level_2>,
/* fspi_d0_m1 */
<2 RK_PA6 3 &pcfg_pull_up_drv_level_2>,
/* fspi_d1_m1 */
<2 RK_PA7 3 &pcfg_pull_up_drv_level_2>,
/* fspi_d2_m1 */
<2 RK_PB0 3 &pcfg_pull_up_drv_level_2>,
/* fspi_d3_m1 */
<2 RK_PB1 3 &pcfg_pull_up_drv_level_2>;
};
/omit-if-no-ref/
fspim1_cs1: fspim1-cs1 {
rockchip,pins =
/* fspi_cs1n_m1 */
<2 RK_PB5 3 &pcfg_pull_up_drv_level_2>;
};
};
gmac0 {
/omit-if-no-ref/
gmac0_miim: gmac0-miim {
rockchip,pins =
/* gmac0_mdc */
<4 RK_PC4 1 &pcfg_pull_none>,
/* gmac0_mdio */
<4 RK_PC5 1 &pcfg_pull_none>;
};
/omit-if-no-ref/
gmac0_clkinout: gmac0-clkinout {
rockchip,pins =
/* gmac0_mclkinout */
<4 RK_PC3 1 &pcfg_pull_none>;
};
/omit-if-no-ref/
gmac0_rx_bus2: gmac0-rx-bus2 {
rockchip,pins =
/* gmac0_rxd0 */
<2 RK_PC1 1 &pcfg_pull_none>,
/* gmac0_rxd1 */
<2 RK_PC2 1 &pcfg_pull_none>,
/* gmac0_rxdv_crs */
<4 RK_PC2 1 &pcfg_pull_none>;
};
/omit-if-no-ref/
gmac0_tx_bus2: gmac0-tx-bus2 {
rockchip,pins =
/* gmac0_txd0 */
<2 RK_PB6 1 &pcfg_pull_none>,
/* gmac0_txd1 */
<2 RK_PB7 1 &pcfg_pull_none>,
/* gmac0_txen */
<2 RK_PC0 1 &pcfg_pull_none>;
};
/omit-if-no-ref/
gmac0_rgmii_clk: gmac0-rgmii-clk {
rockchip,pins =
/* gmac0_rxclk */
<2 RK_PB0 1 &pcfg_pull_none>,
/* gmac0_txclk */
<2 RK_PB3 1 &pcfg_pull_none>;
};
/omit-if-no-ref/
gmac0_rgmii_bus: gmac0-rgmii-bus {
rockchip,pins =
/* gmac0_rxd2 */
<2 RK_PA6 1 &pcfg_pull_none>,
/* gmac0_rxd3 */
<2 RK_PA7 1 &pcfg_pull_none>,
/* gmac0_txd2 */
<2 RK_PB1 1 &pcfg_pull_none>,
/* gmac0_txd3 */
<2 RK_PB2 1 &pcfg_pull_none>;
};
/omit-if-no-ref/
gmac0_ppsclk: gmac0-ppsclk {
rockchip,pins =
/* gmac0_ppsclk */
<2 RK_PC4 1 &pcfg_pull_none>;
};
/omit-if-no-ref/
gmac0_ppstring: gmac0-ppstring {
rockchip,pins =
/* gmac0_ppstring */
<2 RK_PB5 1 &pcfg_pull_none>;
};
/omit-if-no-ref/
gmac0_ptp_refclk: gmac0-ptp-refclk {
rockchip,pins =
/* gmac0_ptp_refclk */
<2 RK_PB4 1 &pcfg_pull_none>;
};
/omit-if-no-ref/
gmac0_txer: gmac0-txer {
rockchip,pins =
/* gmac0_txer */
<4 RK_PC6 1 &pcfg_pull_none>;
};
};
hdmi {
/omit-if-no-ref/
hdmim0_tx1_cec: hdmim0-tx1-cec {
rockchip,pins =
/* hdmim0_tx1_cec */
<2 RK_PC4 4 &pcfg_pull_none>;
};
/omit-if-no-ref/
hdmim0_tx1_scl: hdmim0-tx1-scl {
rockchip,pins =
/* hdmim0_tx1_scl */
<2 RK_PB5 4 &pcfg_pull_none_drv_level_3_smt>;
};
/omit-if-no-ref/
hdmim0_tx1_sda: hdmim0-tx1-sda {
rockchip,pins =
/* hdmim0_tx1_sda */
<2 RK_PB4 4 &pcfg_pull_none_drv_level_1_smt>;
};
};
i2c0 {
/omit-if-no-ref/
i2c0m1_xfer: i2c0m1-xfer {
rockchip,pins =
/* i2c0_scl_m1 */
<4 RK_PC5 9 &pcfg_pull_none_smt>,
/* i2c0_sda_m1 */
<4 RK_PC6 9 &pcfg_pull_none_smt>;
};
};
i2c2 {
/omit-if-no-ref/
i2c2m1_xfer: i2c2m1-xfer {
rockchip,pins =
/* i2c2_scl_m1 */
<2 RK_PC1 9 &pcfg_pull_none_smt>,
/* i2c2_sda_m1 */
<2 RK_PC0 9 &pcfg_pull_none_smt>;
};
};
i2c3 {
/omit-if-no-ref/
i2c3m3_xfer: i2c3m3-xfer {
rockchip,pins =
/* i2c3_scl_m3 */
<2 RK_PB2 9 &pcfg_pull_none_smt>,
/* i2c3_sda_m3 */
<2 RK_PB3 9 &pcfg_pull_none_smt>;
};
};
i2c4 {
/omit-if-no-ref/
i2c4m1_xfer: i2c4m1-xfer {
rockchip,pins =
/* i2c4_scl_m1 */
<2 RK_PB5 9 &pcfg_pull_none_smt>,
/* i2c4_sda_m1 */
<2 RK_PB4 9 &pcfg_pull_none_smt>;
};
};
i2c5 {
/omit-if-no-ref/
i2c5m4_xfer: i2c5m4-xfer {
rockchip,pins =
/* i2c5_scl_m4 */
<2 RK_PB6 9 &pcfg_pull_none_smt>,
/* i2c5_sda_m4 */
<2 RK_PB7 9 &pcfg_pull_none_smt>;
};
};
i2c6 {
/omit-if-no-ref/
i2c6m2_xfer: i2c6m2-xfer {
rockchip,pins =
/* i2c6_scl_m2 */
<2 RK_PC3 9 &pcfg_pull_none_smt>,
/* i2c6_sda_m2 */
<2 RK_PC2 9 &pcfg_pull_none_smt>;
};
};
i2c7 {
/omit-if-no-ref/
i2c7m1_xfer: i2c7m1-xfer {
rockchip,pins =
/* i2c7_scl_m1 */
<4 RK_PC3 9 &pcfg_pull_none_smt>,
/* i2c7_sda_m1 */
<4 RK_PC4 9 &pcfg_pull_none_smt>;
};
};
i2c8 {
/omit-if-no-ref/
i2c8m1_xfer: i2c8m1-xfer {
rockchip,pins =
/* i2c8_scl_m1 */
<2 RK_PB0 9 &pcfg_pull_none_smt>,
/* i2c8_sda_m1 */
<2 RK_PB1 9 &pcfg_pull_none_smt>;
};
};
i2s2 {
/omit-if-no-ref/
i2s2m0_lrck: i2s2m0-lrck {
rockchip,pins =
/* i2s2m0_lrck */
<2 RK_PC0 2 &pcfg_pull_none>;
};
/omit-if-no-ref/
i2s2m0_mclk: i2s2m0-mclk {
rockchip,pins =
/* i2s2m0_mclk */
<2 RK_PB6 2 &pcfg_pull_none>;
};
/omit-if-no-ref/
i2s2m0_sclk: i2s2m0-sclk {
rockchip,pins =
/* i2s2m0_sclk */
<2 RK_PB7 2 &pcfg_pull_none>;
};
/omit-if-no-ref/
i2s2m0_sdi: i2s2m0-sdi {
rockchip,pins =
/* i2s2m0_sdi */
<2 RK_PC3 2 &pcfg_pull_none>;
};
/omit-if-no-ref/
i2s2m0_sdo: i2s2m0-sdo {
rockchip,pins =
/* i2s2m0_sdo */
<4 RK_PC3 2 &pcfg_pull_none>;
};
};
pwm2 {
/omit-if-no-ref/
pwm2m2_pins: pwm2m2-pins {
rockchip,pins =
/* pwm2_m2 */
<4 RK_PC2 11 &pcfg_pull_none>;
};
};
pwm4 {
/omit-if-no-ref/
pwm4m1_pins: pwm4m1-pins {
rockchip,pins =
/* pwm4_m1 */
<4 RK_PC3 11 &pcfg_pull_none>;
};
};
pwm5 {
/omit-if-no-ref/
pwm5m2_pins: pwm5m2-pins {
rockchip,pins =
/* pwm5_m2 */
<4 RK_PC4 11 &pcfg_pull_none>;
};
};
pwm6 {
/omit-if-no-ref/
pwm6m2_pins: pwm6m2-pins {
rockchip,pins =
/* pwm6_m2 */
<4 RK_PC5 11 &pcfg_pull_none>;
};
};
pwm7 {
/omit-if-no-ref/
pwm7m3_pins: pwm7m3-pins {
rockchip,pins =
/* pwm7_ir_m3 */
<4 RK_PC6 11 &pcfg_pull_none>;
};
};
sdio {
/omit-if-no-ref/
sdiom0_pins: sdiom0-pins {
rockchip,pins =
/* sdio_clk_m0 */
<2 RK_PB3 2 &pcfg_pull_none>,
/* sdio_cmd_m0 */
<2 RK_PB2 2 &pcfg_pull_none>,
/* sdio_d0_m0 */
<2 RK_PA6 2 &pcfg_pull_none>,
/* sdio_d1_m0 */
<2 RK_PA7 2 &pcfg_pull_none>,
/* sdio_d2_m0 */
<2 RK_PB0 2 &pcfg_pull_none>,
/* sdio_d3_m0 */
<2 RK_PB1 2 &pcfg_pull_none>;
};
};
spi1 {
/omit-if-no-ref/
spi1m0_pins: spi1m0-pins {
rockchip,pins =
/* spi1_clk_m0 */
<2 RK_PC0 8 &pcfg_pull_up_drv_level_1>,
/* spi1_miso_m0 */
<2 RK_PC1 8 &pcfg_pull_up_drv_level_1>,
/* spi1_mosi_m0 */
<2 RK_PC2 8 &pcfg_pull_up_drv_level_1>;
};
/omit-if-no-ref/
spi1m0_cs0: spi1m0-cs0 {
rockchip,pins =
/* spi1_cs0_m0 */
<2 RK_PC3 8 &pcfg_pull_up_drv_level_1>;
};
/omit-if-no-ref/
spi1m0_cs1: spi1m0-cs1 {
rockchip,pins =
/* spi1_cs1_m0 */
<2 RK_PC4 8 &pcfg_pull_up_drv_level_1>;
};
};
spi3 {
/omit-if-no-ref/
spi3m0_pins: spi3m0-pins {
rockchip,pins =
/* spi3_clk_m0 */
<4 RK_PC6 8 &pcfg_pull_up_drv_level_1>,
/* spi3_miso_m0 */
<4 RK_PC4 8 &pcfg_pull_up_drv_level_1>,
/* spi3_mosi_m0 */
<4 RK_PC5 8 &pcfg_pull_up_drv_level_1>;
};
/omit-if-no-ref/
spi3m0_cs0: spi3m0-cs0 {
rockchip,pins =
/* spi3_cs0_m0 */
<4 RK_PC2 8 &pcfg_pull_up_drv_level_1>;
};
/omit-if-no-ref/
spi3m0_cs1: spi3m0-cs1 {
rockchip,pins =
/* spi3_cs1_m0 */
<4 RK_PC3 8 &pcfg_pull_up_drv_level_1>;
};
};
uart1 {
/omit-if-no-ref/
uart1m0_xfer: uart1m0-xfer {
rockchip,pins =
/* uart1_rx_m0 */
<2 RK_PB6 10 &pcfg_pull_up>,
/* uart1_tx_m0 */
<2 RK_PB7 10 &pcfg_pull_up>;
};
/omit-if-no-ref/
uart1m0_ctsn: uart1m0-ctsn {
rockchip,pins =
/* uart1m0_ctsn */
<2 RK_PC1 10 &pcfg_pull_none>;
};
/omit-if-no-ref/
uart1m0_rtsn: uart1m0-rtsn {
rockchip,pins =
/* uart1m0_rtsn */
<2 RK_PC0 10 &pcfg_pull_none>;
};
};
uart6 {
/omit-if-no-ref/
uart6m0_xfer: uart6m0-xfer {
rockchip,pins =
/* uart6_rx_m0 */
<2 RK_PA6 10 &pcfg_pull_up>,
/* uart6_tx_m0 */
<2 RK_PA7 10 &pcfg_pull_up>;
};
/omit-if-no-ref/
uart6m0_ctsn: uart6m0-ctsn {
rockchip,pins =
/* uart6m0_ctsn */
<2 RK_PB1 10 &pcfg_pull_none>;
};
/omit-if-no-ref/
uart6m0_rtsn: uart6m0-rtsn {
rockchip,pins =
/* uart6m0_rtsn */
<2 RK_PB0 10 &pcfg_pull_none>;
};
};
uart7 {
/omit-if-no-ref/
uart7m0_xfer: uart7m0-xfer {
rockchip,pins =
/* uart7_rx_m0 */
<2 RK_PB4 10 &pcfg_pull_up>,
/* uart7_tx_m0 */
<2 RK_PB5 10 &pcfg_pull_up>;
};
/omit-if-no-ref/
uart7m0_ctsn: uart7m0-ctsn {
rockchip,pins =
/* uart7m0_ctsn */
<4 RK_PC6 10 &pcfg_pull_none>;
};
/omit-if-no-ref/
uart7m0_rtsn: uart7m0-rtsn {
rockchip,pins =
/* uart7m0_rtsn */
<4 RK_PC2 10 &pcfg_pull_none>;
};
};
uart9 {
/omit-if-no-ref/
uart9m0_xfer: uart9m0-xfer {
rockchip,pins =
/* uart9_rx_m0 */
<2 RK_PC4 10 &pcfg_pull_up>,
/* uart9_tx_m0 */
<2 RK_PC2 10 &pcfg_pull_up>;
};
/omit-if-no-ref/
uart9m0_ctsn: uart9m0-ctsn {
rockchip,pins =
/* uart9m0_ctsn */
<4 RK_PC5 10 &pcfg_pull_none>;
};
/omit-if-no-ref/
uart9m0_rtsn: uart9m0-rtsn {
rockchip,pins =
/* uart9m0_rtsn */
<4 RK_PC4 10 &pcfg_pull_none>;
};
};
};