Skip to content

Commit d56de8c

Browse files
Junlisuzhougregkh
authored andcommitted
usb: typec: tcpm: try to get role switch from tcpc fwnode
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 <[email protected]> Reviewed-by: Heikki Krogerus <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent 8000540 commit d56de8c

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

drivers/usb/typec/tcpm/tcpm.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6577,6 +6577,8 @@ struct tcpm_port *tcpm_register_port(struct device *dev, struct tcpc_dev *tcpc)
65776577
port->port_type = port->typec_caps.type;
65786578

65796579
port->role_sw = usb_role_switch_get(port->dev);
6580+
if (!port->role_sw)
6581+
port->role_sw = fwnode_usb_role_switch_get(tcpc->fwnode);
65806582
if (IS_ERR(port->role_sw)) {
65816583
err = PTR_ERR(port->role_sw);
65826584
goto out_destroy_wq;

0 commit comments

Comments
 (0)