Re: [PATCH v3 0/5] Add Type-C DP support for RK3399 EVB IND board

Chaoyi Chen
2025-07-31T02:20:13Z

Hi Dmitry,

On 7/31/2025 3:13 AM, Dmitry Baryshkov wrote:
> On Tue, Jul 29, 2025 at 05:00:27PM +0800, Chaoyi Chen wrote:
>> From: Chaoyi Chen <chaoyi.chen@rock-chips.com>
>>
>> This series focuses on adding Type-C DP support for USBDP PHY and DP
>> driver. The USBDP PHY and DP will perceive the changes in cable status
>> based on the USB PD and Type-C state machines provided by TCPM. Before
>> this, the USBDP PHY and DP controller of RK3399 sensed cable state
>> changes through extcon, and devices such as the RK3399 Gru-Chromebook
>> rely on them. This series should not break them.
>>
> [....]
>
>> ====
>> 2. DP HPD event notify
>>
>> The RK3399 has two USB/DP combo PHY and one CDN-DP controller. And
>> the CDN-DP can be switched to output to one of the PHYs.
>>
>> USB/DP PHY0 ---+
>> | <----> CDN-DP controller
>> USB/DP PHY1 ---+
> Could you please clarify this, can you switch DP stream between two
> USB-C outputs? What happens if user plugs in DP dongles in both USB-C
> ports?

Currently, the software simply selects the first available port. So if
user plugs in DP dongles in both USB-C ports, the DP driver will select
the first port. This process is implemented in cdn_dp_connected_port() .

>
>> BTW, one of the important things to do is to implement extcon-like
>> notifications. I found include/drm/bridge/aux-bridge.h , but if the
>> aux-bridge is used, the bridge chain would look like this:
>>
>> PHY0 aux-bridge ---+
>> | ----> CDN-DP bridge
>> PHY1 aux-bridge ---+
>>
>> Oh, CDN-DP bridge has two previous aux-bridge!
>>
>> Now, I try to use drm_connector_oob_hotplug_event() to notify HPD
>> state between PHY and CDN-DP controller.
> Does it actually work? The OOB HPD event will be repoted for the usb-c
> connector's fwnode, but the DP controller isn't connected to that node
> anyhow. If I'm not mistaken, the HPD signal will not reach DP driver in
> this case.

Yes.  What you mentioned is the case in
drivers/usb/typec/altmodes/displayport.c . I have also added a new OOB
event notify in the PHY driver in Patch 3, where the expected fwnode is
used in the PHY. So now we have two OOB HPD events, one from
altmodes/displayport.c and the other from PHY. Only the HPD from PHY is
eventually passed to the DP driver.

>
>> Patch1 add new Type-C mode switch for RK3399 USBDP phy binding.
>> Patch2 add typec_mux and typec_switch for RK3399 USBDP PHY.
>> Patch3 drops CDN-DP's extcon dependency when Type-C is present.
>> Patch4 add missing dp_out port for RK3399 CDN-DP.
>> Patch5 add Type-C DP support for RK3399 EVB IND board.
>>