OSDN Git Service

usb: cdns3: core: get role switch node from firmware
authorPeter Chen <peter.chen@nxp.com>
Tue, 31 Mar 2020 08:10:02 +0000 (16:10 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 16 Apr 2020 13:31:35 +0000 (15:31 +0200)
After that, the role switch device (eg, Type-C device) could call
cdns3_role_set to finish the role switch.

Signed-off-by: Peter Chen <peter.chen@nxp.com>
Reviewed-by: Roger Quadros <rogerq@ti.com>
Link: https://lore.kernel.org/r/20200331081005.32752-1-peter.chen@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/cdns3/core.c

index 4aafba2..704c679 100644 (file)
@@ -528,6 +528,8 @@ static int cdns3_probe(struct platform_device *pdev)
        sw_desc.get = cdns3_role_get;
        sw_desc.allow_userspace_control = true;
        sw_desc.driver_data = cdns;
+       if (device_property_read_bool(dev, "usb-role-switch"))
+               sw_desc.fwnode = dev->fwnode;
 
        cdns->role_sw = usb_role_switch_register(dev, &sw_desc);
        if (IS_ERR(cdns->role_sw)) {