On Tue, Mar 28, 2023 at 05:11:49PM +0300, Heikki Krogerus wrote: > +Bryan > > On Tue, Mar 28, 2023 at 04:23:04PM +0800, Li Jun wrote: > > Try to get usb role switch from tcpc fwnode if failed to > > get role switch from port dev, this is for case the port > > for role switch endpoint is located in connector node, > > as per connector binding doc, port@0 for HS is required. > > > > ptn5110: tcpc@50 { > > compatible = "nxp,ptn5110"; > > ... > > status = "okay"; > > > > connector { > > compatible = "usb-c-connector"; > > label = "USB-C"; > > ... > > > > ports { > > #address-cells = <1>; > > #size-cells = <0>; > > > > port@0 { > > reg = <0>; > > > > typec_conn: endpoint { > > remote-endpoint = <&usb2_controller>; > > }; > > }; > > }; > > }; > > }; > > > > Signed-off-by: Li Jun <jun.li@xxxxxxx> > > --- > > drivers/usb/typec/tcpm/tcpm.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c > > index a0d943d78580..f0534bdb4462 100644 > > --- a/drivers/usb/typec/tcpm/tcpm.c > > +++ b/drivers/usb/typec/tcpm/tcpm.c > > @@ -6557,6 +6557,8 @@ struct tcpm_port *tcpm_register_port(struct device *dev, struct tcpc_dev *tcpc) > > port->port_type = port->typec_caps.type; > > > > port->role_sw = usb_role_switch_get(port->dev); > > + if (!port->role_sw) > > + port->role_sw = fwnode_usb_role_switch_get(tcpc->fwnode); > > if (IS_ERR(port->role_sw)) { > > err = PTR_ERR(port->role_sw); > > goto out_destroy_wq; > > This looks like exactly the same as the RFC from Bryan that I just > commented. I have not objections if this looks okay to you Brian. I > think we should still wait for comments also from Guenter. > Ok with me. Guenter > thanks, > > -- > heikki