Re: [PATCH] usb: typec: tcpm: try to get role switch from tcpc fwnode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>

Reviewed-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx>

> ---
>  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;
> -- 
> 2.34.1

-- 
heikki



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux