[PATCH] arm64: dts: rockchip: Enable TYPE-C PD for ROC-RK3399-PC

Jagan Teki jagan at amarulasolutions.com
Fri Jul 28 11:52:02 PDT 2023


Hi Christopher,

On Mon, Jul 24, 2023 at 7:25 PM Christopher Obbard
<chris.obbard at collabora.com> wrote:
>
> On Wed, 2023-07-19 at 17:51 +0530, Jagan Teki wrote:
> > 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.
>
> Hi Jagan,
>
> This series works fine with a "dumb" (no PD negotiation) 5.1V Raspberry Pi PSU.
>
> It also works fine with a Dell 45W USB-C Laptop Power Supply (model AA45NM170) which provides 5V at 3A,9V at 3A,15V at 3A,20V at 2.25A, where Linux master fails and just tells the USB-PD PSU to power-off.

Thanks for testing.

>
> It doesn't work with a Lenovo 65W PSU (model ADLX65YLC3D) which provides 5V at 2A,9V at 2A,15V at 3A,20V at 3.25A, after negotiation the driver turns the PD PSU off and on again, resetting the board.
> So it'd be great to get this fixed, but it seems like the sink-pdos should already support this PSU ?

Yes, it is already supported. Seems like some issues on tcpm+fusb302.

>
>
> As a side note for full transparency, another issue is that with Linux master or with this patch applied, applying power to the DC_12V header without a USB-C PSU connected (e.g. powering from the POE
> expansion shield), boot hangs and dumps to an initramfs shell with:
>
>   [    7.411798] random: crng init done
>   [   12.568138] platform fe3a0000.usb: deferred probe pending
>   [   12.568673] platform sdio-pwrseq: deferred probe pending
>   [   12.569162] platform fe3e0000.usb: deferred probe pending
>   [   12.569658] platform adc-keys: deferred probe pending
>   [   12.570123] i2c 7-0022: deferred probe pending
>   [   12.570533] i2c 4-0022: deferred probe pending
>   [   12.570944] platform ff940000.hdmi: deferred probe pending
>   [   12.571448] platform vcc3v0-sd: deferred probe pending
>   [   12.572000] platform vcc1v8-s3: deferred probe pending
>   [   12.572475] platform sys-12v: deferred probe pending
>   [   12.572933] platform vcc3v3-sys: deferred probe pending
>   [   12.573412] platform fe320000.mmc: deferred probe pending
>   [   12.573907] platform vcca-0v9: deferred probe pending
>   [   12.574371] platform vcc5v0-host-regulator: deferred probe pending
>   [   12.574935] platform ff770000.syscon:usb2phy at e450: deferred probe pending
>   [   12.575552] platform vcc-vbus-typec1: deferred probe pending
>   [   12.576090] platform fe300000.ethernet: deferred probe pending
>   [   12.576623] platform vcc-sys: deferred probe pending
>   [   12.577080] platform ff770000.syscon:usb2phy at e460: deferred probe pending
>   [   12.577697] platform ff320000.syscon:io-domains: deferred probe pending
>   [   12.578298] platform ff770000.syscon:io-domains: deferred probe pending
>   [   12.578901] platform fe800000.usb: deferred probe pending
>   [   12.579395] platform fe900000.usb: deferred probe pending
>   [   12.579904] platform vdd-log: deferred probe pending
>   [   12.580362] i2c 0-001b: deferred probe pending
>   [   12.580772] i2c 0-0040: deferred probe pending
>   [   12.581182] platform cpufreq-dt: deferred probe pending
>   [   12.581663] i2c 0-0041: deferred probe pending

I didn't test POE with this change, I will check this.

Thanks,
Jagan.



More information about the linux-arm-kernel mailing list