|
@@ -420,13 +420,19 @@ static int dwc3_probe(struct platform_device *pdev)
|
|
|
return -ENOMEM;
|
|
|
}
|
|
|
|
|
|
- dwc->usb2_phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2);
|
|
|
+ if (node) {
|
|
|
+ dwc->usb2_phy = devm_usb_get_phy_by_phandle(dev, "usb-phy", 0);
|
|
|
+ dwc->usb3_phy = devm_usb_get_phy_by_phandle(dev, "usb-phy", 1);
|
|
|
+ } else {
|
|
|
+ dwc->usb2_phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2);
|
|
|
+ dwc->usb3_phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB3);
|
|
|
+ }
|
|
|
+
|
|
|
if (IS_ERR_OR_NULL(dwc->usb2_phy)) {
|
|
|
dev_err(dev, "no usb2 phy configured\n");
|
|
|
return -EPROBE_DEFER;
|
|
|
}
|
|
|
|
|
|
- dwc->usb3_phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB3);
|
|
|
if (IS_ERR_OR_NULL(dwc->usb3_phy)) {
|
|
|
dev_err(dev, "no usb3 phy configured\n");
|
|
|
return -EPROBE_DEFER;
|
|
@@ -450,8 +456,7 @@ static int dwc3_probe(struct platform_device *pdev)
|
|
|
else
|
|
|
dwc->maximum_speed = DWC3_DCFG_SUPERSPEED;
|
|
|
|
|
|
- if (of_get_property(node, "tx-fifo-resize", NULL))
|
|
|
- dwc->needs_fifo_resize = true;
|
|
|
+ dwc->needs_fifo_resize = of_property_read_bool(node, "tx-fifo-resize");
|
|
|
|
|
|
pm_runtime_enable(dev);
|
|
|
pm_runtime_get_sync(dev);
|
|
@@ -580,11 +585,22 @@ static int dwc3_remove(struct platform_device *pdev)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+#ifdef CONFIG_OF
|
|
|
+static const struct of_device_id of_dwc3_match[] = {
|
|
|
+ {
|
|
|
+ .compatible = "synopsys,dwc3"
|
|
|
+ },
|
|
|
+ { },
|
|
|
+};
|
|
|
+MODULE_DEVICE_TABLE(of, of_dwc3_match);
|
|
|
+#endif
|
|
|
+
|
|
|
static struct platform_driver dwc3_driver = {
|
|
|
.probe = dwc3_probe,
|
|
|
.remove = dwc3_remove,
|
|
|
.driver = {
|
|
|
.name = "dwc3",
|
|
|
+ .of_match_table = of_match_ptr(of_dwc3_match),
|
|
|
},
|
|
|
};
|
|
|
|