From: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> Trivial patch, no functional changes. [ balbi@xxxxxx : fixed up Documentation based on what we actually want to achieve ] Signed-off-by: Felipe Balbi <balbi@xxxxxx> --- Documentation/devicetree/bindings/usb/dwc3.txt | 66 ++++++++++++++++++++++++ drivers/usb/dwc3/dwc3-omap.c | 11 +++-- 2 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 Documentation/devicetree/bindings/usb/dwc3.txt diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt new file mode 100644 index 0000000..c936863 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/dwc3.txt @@ -0,0 +1,66 @@ +Synopsys DesignWareCores SuperSpeed USB 3.0 Controller + +The device node for a USB3 Wrapper that is part of an OMAP5 SoC is as described +in the document "Open Firmware Recommended Practice: Universal Serial Bus" with +the following modifications and additions: + +Required properties: + - compatible : should be "ti,omap5-dwc3" or "ti,omap5430-dwc3". + - reg : the first address and length contains the address of DRD. The + second address and length contains the address of the wrapper. + - interrupts : < a b > where 'a' is the interrupt number and 'b' is a + field that represents an encoding of the sense and level + information for the interrupt line. + - child device : The child Synopsys DesignWareCore USB 3.0 DRD Controller + +Optional properties: + - utmi_mode : UTMI mode of the wrapper Interrupts (SW or HW). Refer to + OMAP5 TRM for more details (for TI wrapper only) + +Example of hardware mode OMAP5: + + usb@4a020000 { + #address-cells = < 1 >; + #size-cells = < 1 >; + compatible = "ti,omap5430-dwc3", "ti,omap5-dwc3"; + interrupt-parent = < &intc >; + interrupts = < 93 4 >; + reg = < 0x4a020000 0x10000 >; + utmi_mode = "hardware"; + range; + + usb@4a030000 { + #address-cells = < 3 >; + #size-cells = < 3 >; + compatible = "synopsys,dwc3"; + interrupt-parent = < &intc >; + interupts = < 92 4 >; + reg = < 0x4a030000 0x8000 // First address is xHCI + 0x4a03c100 0x600 // Second is Global + 0x4a03c700 0x500 >; // Third is Device + }; + }; + +Example of software mode OMAP5: + + usb@4a020000 { + #address-cells = < 1 >; + #size-cells = < 1 >; + compatible = "ti,omap5430-dwc3", "ti,omap5-dwc3"; + interrupt-parent = < &intc >; + interrupts = < 93 4 >; + reg = < 0x4a020000 0x10000 ; + utmi_mode = "software"; + range; + + usb@4a030000 { + #address-cells = < 3 >; + #size-cells = < 3 >; + compatible = "synopsys,dwc3"; + interrupt-parent = < &intc >; + interupts = < 92 4 >; + reg = < 0x4a030000 0x8000 // First address is xHCI + 0x4a03c100 0x600 // Second is Global + 0x4a03c700 0x500 >; // Third is Device + }; + }; diff --git a/drivers/usb/dwc3/dwc3-omap.c b/drivers/usb/dwc3/dwc3-omap.c index 7bcf677..c9f3e61 100644 --- a/drivers/usb/dwc3/dwc3-omap.c +++ b/drivers/usb/dwc3/dwc3-omap.c @@ -367,20 +367,23 @@ static int __devexit dwc3_omap_remove(struct platform_device *pdev) return 0; } -static const struct of_device_id of_dwc3_matach[] = { +static const struct of_device_id of_dwc3_match[] = { { - "ti,dwc3", + "ti,omap5430-dwc3" + }, + { + "ti,omap5-dwc3" }, { }, }; -MODULE_DEVICE_TABLE(of, of_dwc3_matach); +MODULE_DEVICE_TABLE(of, of_dwc3_match); static struct platform_driver dwc3_omap_driver = { .probe = dwc3_omap_probe, .remove = __devexit_p(dwc3_omap_remove), .driver = { .name = "omap-dwc3", - .of_match_table = of_dwc3_matach, + .of_match_table = of_dwc3_match, }, }; -- 1.7.8.rc3 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html