The power supply circuit in ROC-RK3399-PC is Power Supply (or PPS) => FUSB => MP8859 VUBS pin of FUSB and IN pin of MP8859 is supplied via TYPEC_IN. The MP8859 operated with 2.8V to 22V supply voltage and typical applications this supply can be 12V. This patch is trying to support the PD by changing the FUSB VBUS supply to 12V and tune the I2C7 timings from downstream kernel. Tested with PD3.0 PPS with supply voltages of 12V/3A and 20V/5A. Cc: Corentin Labbe <clabbe@xxxxxxxxxxxx> Signed-off-by: Jagan Teki <jagan@xxxxxxxxxxxxxxxxxxxx> --- .../boot/dts/rockchip/rk3399-roc-pc.dtsi | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dtsi index c32913df93c3..8963b3858eae 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dtsi @@ -6,6 +6,7 @@ /dts-v1/; #include <dt-bindings/input/linux-event-codes.h> #include <dt-bindings/pwm/pwm.h> +#include "dt-bindings/usb/pd.h" #include "rk3399.dtsi" #include "rk3399-opp.dtsi" @@ -524,8 +525,9 @@ &i2c3 { }; &i2c4 { - i2c-scl-rising-time-ns = <600>; - i2c-scl-falling-time-ns = <20>; + clock-frequency = <400000>; + i2c-scl-rising-time-ns = <345>; + i2c-scl-falling-time-ns = <11>; status = "okay"; fusb1: usb-typec@22 { @@ -552,8 +554,19 @@ fusb0: usb-typec@22 { interrupts = <2 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&fusb0_int>; - vbus-supply = <&vcc_vbus_typec0>; + vbus-supply = <&dc_12v>; status = "okay"; + + connector { + compatible = "usb-c-connector"; + data-role = "dual"; + label = "USB-C"; + power-role = "sink"; + try-power-role = "sink"; + op-sink-microwatt = <10000000>; + sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM) + PDO_VAR(5000, 20000, 5000)>; + }; }; mp8859: regulator@66 { -- 2.25.1