Re: [PATCH v1 1/3] arm64: dts: rockchip: rk3588-rock-5b-5bp-5t: Correct Type-C pin bias settings
From: Anand Moon <hidden>
Date: 2026-01-08 06:55:12
Also in:
linux-arm-kernel, linux-rockchip, linux-usb, lkml
Hi Sebastian, Thanks for your review comments. On Sat, 3 Jan 2026 at 19:23, Sebastian Reichel [off-list ref] wrote:
Hi, On Sat, Jan 03, 2026 at 02:01:17PM +0530, Anand Moon wrote:quoted
As pre FUSB302 datasheet interrupt line (INT_N) is an open-drain, active-low signal. It requires a pull-up resistor to maintain a stable high state when deasserted. Similarly, the TYPEC5V_PWREN_H enable signal requires a pull-down resistor to ensure it defaults to a low state, preventing unintended power delivery during the boot sequence. Update the pinctrl entries to use pcfg_pull_up for usbc0_int and pcfg_pull_down for vbus5v0_typec_en to align with the hardware's electrical requirements. Cc: Sebastian Reichel <redacted> Fixes: 67b2c15d8fb3 ("arm64: dts: rockchip: add USB-C support for ROCK 5B/5B+/5T") Signed-off-by: Anand Moon <redacted> --- v1: As per the shematics CC_INT_L interrupt pin is GPIO3_B4_u As per the shematics TYPEC5V_PWREN_H pin is GPIO2_B6_d ---Checking the schematics: 5B v1.45 - CC_INT_L - R2613 10K pull-up resistor 5B v1.45 - TYPEC5V_PWREN_H - GPIO is effectively unused because R95035 is NC 5B+ v1.2 - CC_INT_L - R2613 10K pull-up resistor 5B+ v1.2 - TYPEC5V_PWREN_H - R163 100K pull-down resistor 5T v1.2 - CC_INT_L - R2613 10K pull-up resistor 5T v1.2 - TYPEC5V_PWREN_H - R163 100K pull-down resistor
CC_INT_L is gpio interrupt pin to enable the I2C read operation. As per FUSB302 datasheet, here is the updated version of the commit message Configure CC_INT_L as an active-low, open-drain output. Per the hardware design, this pin utilizes an external pull-up and is driven LOW by the Type-C controller to signal the processor to perform I2C register reads. The TYPEC5V_PWREN_H pull-down resistor is turned on as a signal to the Type-C regulator, which has an active-enable-high property. In this context, the regulator is used to set the polarity of the GPIO used to enable or disable the regulator.
TLDR: All GPIOs have pull resistors in discrete hardware and do not need them muxed in the SoC.
It depends on the GPIO, pinctrl PMU configuration. I was thinking of converting the vbus5v0_typec regulator to 'regulator-gpio.' to better reflect the hardware schematics. The TYPEC5V_PWREN_H signal (GPIO2_B6_d) acts as a state controller rather than a simple enable pin, and this change ensures the device tree aligns with that design [1] https://dl.radxa.com/rock5/5b/docs/hw/radxa_rock_5b_v1450_schematic.pdf (page 28) $ git diff arch/arm64/boot/dts/rockchip/rk3588-rock-5b-5bp-5t.dtsi
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b-5bp-5t.dtsib/arch/arm64/boot/dts/rockchip/rk3588-rock-5b-5bp-5t.dtsi index 5f58e339a052..387ff009ec76 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b-5bp-5t.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b-5bp-5t.dtsi@@ -57,9 +57,10 @@ rfkill-bt { }; vbus5v0_typec: vbus5v0-typec { - compatible = "regulator-fixed"; + compatible = "regulator-gpio"; enable-active-high; - gpio = <&gpio2 RK_PB6 GPIO_ACTIVE_HIGH>; + gpios = <&gpio2 RK_PB6 GPIO_ACTIVE_HIGH>; + states = <5000000 0x1>, <0 0x0>; pinctrl-names = "default"; pinctrl-0 = <&vbus5v0_typec_en>; regulator-name = "vbus5v0_typec";
Could you please try this at your end? Thanks -Anand