On Thu, Oct 30, 2025 at 11:14 AM Chaoyi Chen <[email protected]> wrote: > > On 10/30/2025 10:50 AM, Peter Chen wrote: > > >>> Okay. My question is basic: USB2 PHY supplies DP/DM, and the DP/DM is > >>> short for Type-C connector, > >>> and no control is needed for Type-C application. > >>> Why is there a remote-endpoint connection between USB2 PHY and Type-C > >>> connector? > >> From the perspective of Type-C, this should not be added. Is the > >> approach in v2 correct [0] ? > >> > > Have you tried debugging based on upstream code? > > Yes, I have tried both the v2 and v8 approaches, and both can work. > > > > v2 is correct, but the dts needs to improve. > > - There is a remote-endpoint connection for USB role switch between > > Type-C connector > > device and USB controller device > > - There is a remote-endpoint connection for orientation and lane > > configuration > > between Type-C connector device and USB/DP PHY device. > > In v8 patch5, we implemented typec_mux and typec_switch in the USB/DP PHY. > > I think the current remote-endpoint connections are all child node of the > USB/DP PHY. That is: > > > &tcphy0_dp { > mode-switch; > ... > }; > > > &tcphy0_usb3 { > orientation-switch; > ... > }; > > > Does this still need to be improved? Thank you. >
Hi Chaoyi, There are two questions I have still not seen the answer to: - Why USB2 PHY is related to your Type-C patch? - How does the USB role switch event notify the USB controller driver, eg dwc3? Peter > > > > > Peter > > > >> [0]: https://lore.kernel.org/all/[email protected]/ > >> > >> Or is the following approach correct? > >> > >> > >> port@0 { > >> reg = <0>; > >> > >> usbc_hs: endpoint { > >> remote-endpoint = <&tcphy0>; > >> }; > >> }; > >> > >> port@1 { > >> reg = <1>; > >> > >> usbc_ss: endpoint { > >> remote-endpoint = <&tcphy0>; > >> }; > >> }; > >> > >> port@2 { > >> reg = <2>; > >> > >> usbc_dp: endpoint { > >> remote-endpoint = <&tcphy0_typec_dp>; > >> }; > >> }; > >> > >> > >>>>>>> + port@1 { > >>>>>>> + reg = <1>; > >>>>>>> + > >>>>>>> + usbc_ss: endpoint { > >>>>>>> + remote-endpoint = <&tcphy0_typec_ss>; > >>>>>>> + }; > >>>>>>> + }; > >>>>>>> + > >>>>>>> + port@2 { > >>>>>>> + reg = <2>; > >>>>>>> + > >>>>>>> + usbc_dp: endpoint { > >>>>>>> + remote-endpoint = <&tcphy0_typec_dp>; > >>>>>>> + }; > >>>>>>> + }; > >>>>>>> + }; > >>>>>>> + }; > >>>>>>> + }; > >>>>>>> +}; > >>>>>>> + > >>>>>> ..... > >>>>>>> &u2phy0 { > >>>>>>> status = "okay"; > >>>>>>> + > >>>>>>> + port { > >>>>>>> + u2phy0_typec_hs: endpoint { > >>>>>>> + remote-endpoint = <&usbc_hs>; > >>>>>>> + }; > >>>>>>> + }; > >>>>>>> }; > >>>>>>> > >>>>>> There is no switch and mux, how to co-work with Type-C? > >>>>> I checked the phy-rockchip-inno-usb2.c but did not find any switch or > >>>>> mux. Does this mean that we need to implement them? Thank you. > >>>> Wait a minute, actually we have multiple hardware interfaces, one of > >>>> which is Type-C, eventually connected to USBDPPHY, and the other is > >>>> micro-usb connected to U2PHY. > >>> I assume the Micro-USB connector does not use Type-C/PD IC, is it > >>> right? Does it relate to this patch? > >>> > >>> Best regards, > >>> Peter > >>> > > > -- > Best, > Chaoyi >
