Hi Peter, Am Dienstag, den 16.02.2016, 16:42 +0800 schrieb Peter Chen: > From: Peter Chen <peter.chen@xxxxxxxxxxxxx> > > Although most of USB devices are hot-plug's, there are still some devices > are hard wired on the board, eg, for HSIC and SSIC interface USB devices. > If these kinds of USB devices are multiple functions, and they can supply > other interfaces like i2c, gpios for other devices, we may need to > describe these at device tree. > > In this commit, it uses "reg" in dts as physical port number to match > the phyiscal port number decided by USB core, if they are the same, > then the device node is for the device we are creating for USB core. > > Signed-off-by: Peter Chen <peter.chen@xxxxxxxxxxxxx> > --- > Changes for v5: > - Refine the code how to get the device node at usb_alloc_dev according > to Alan's comment. > - Point out "usbVID,PID" is the recommented compatible, and others > compatibles at binding doc could also be used. > > Changes for v4: > - The range of "reg" should be 1-31, changing device node address > style as in lower case hexadecimal with leading zeroes suppressed > [binding doc, usb-device.txt] > - Improve the example at binding doc, it describes node from the top > (the controller) > - Delete the struct of_node * within struct usb_device > - Using usb_hcd_find_raw_port_number to get raw port number under root > hub port > > Changes for v3: > - typo: s/descirbe/describe/ > > Changes for v2: > - Fix build error reported by kbuild robot, lack of "static" for > inline usb_of_get_child_node > - Fix typo, "devcie_node" -> "device_node" > - Add kernel-doc for of_node at struct usb_device > > Changes from RFC: > - Fix the error address for binding doc, and add compatible for binding doc > - Change get child node API from "usb_of_find_node" to > "usb_of_get_child_node" > - Delete unecessary header files > - One typo > > .../devicetree/bindings/usb/usb-device.txt | 26 ++++++++++++ > drivers/usb/core/Makefile | 2 +- > drivers/usb/core/of.c | 47 ++++++++++++++++++++++ > drivers/usb/core/usb.c | 10 +++++ > include/linux/usb/of.h | 7 ++++ > 5 files changed, 91 insertions(+), 1 deletion(-) > create mode 100644 Documentation/devicetree/bindings/usb/usb-device.txt > create mode 100644 drivers/usb/core/of.c > > diff --git a/Documentation/devicetree/bindings/usb/usb-device.txt b/Documentation/devicetree/bindings/usb/usb-device.txt > new file mode 100644 > index 0000000..a997a23 > --- /dev/null > +++ b/Documentation/devicetree/bindings/usb/usb-device.txt > @@ -0,0 +1,26 @@ > +Generic USB Device Properties > + > +Usually, we only use device tree for hard wired USB device. > +The reference binding doc is from: > +http://www.firmware.org/1275/bindings/usb/usb-1_0.ps > + > +Required properties: > +- compatible: usbVID,PID. The other compatible strings from the above > + standard binding could also be used, but a device adhering to this > + binding may leave out all except for usbVID,PID. I asked to document the format of VID and PID ("lower case hexadecimal with leading zeroes suppressed") here. > +- reg: the port number which this device is connecting to, the range > + is 1-31. > + > +Example: > + > +&usb1 { > + status = "okay"; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + hub: genesys@1 { > + compatible = "usb05e3,0608"; This should be: compatible = "usb5e3,608"; After those two issues are fixed, Acked-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> best regards Philipp -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html