| Generic USB Device Properties |
| |
| Usually, we only use device tree for hard wired USB device. |
| The reference binding doc is from: |
| http://www.devicetree.org/open-firmware/bindings/usb/usb-1_0.ps |
| |
| Four types of device-tree nodes are defined: "host-controller nodes" |
| representing USB host controllers, "device nodes" representing USB devices, |
| "interface nodes" representing USB interfaces and "combined nodes" |
| representing simple USB devices. |
| |
| A combined node shall be used instead of a device node and an interface node |
| for devices of class 0 or 9 (hub) with a single configuration and a single |
| interface. |
| |
| A "hub node" is a combined node or an interface node that represents a USB |
| hub. |
| |
| |
| Required properties for device nodes: |
| - compatible: "usbVID,PID", where VID is the vendor id and PID the product id. |
| The textual representation of VID and PID shall be in lower case hexadecimal |
| with leading zeroes suppressed. 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". |
| - reg: the number of the USB hub port or the USB host-controller port to which |
| this device is attached. The range is 1-255. |
| |
| |
| Required properties for device nodes with interface nodes: |
| - #address-cells: shall be 2 |
| - #size-cells: shall be 0 |
| |
| |
| Required properties for interface nodes: |
| - compatible: "usbifVID,PID.configCN.IN", where VID is the vendor id, PID is |
| the product id, CN is the configuration value and IN is the interface |
| number. The textual representation of VID, PID, CN and IN shall be in lower |
| case hexadecimal with leading zeroes suppressed. 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 |
| "usbifVID,PID.configCN.IN". |
| - reg: the interface number and configuration value |
| |
| The configuration component is not included in the textual representation of |
| an interface-node unit address for configuration 1. |
| |
| |
| Required properties for combined nodes: |
| - compatible: "usbVID,PID", where VID is the vendor id and PID the product id. |
| The textual representation of VID and PID shall be in lower case hexadecimal |
| with leading zeroes suppressed. 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". |
| - reg: the number of the USB hub port or the USB host-controller port to which |
| this device is attached. The range is 1-255. |
| |
| |
| Required properties for hub nodes with device nodes: |
| - #address-cells: shall be 1 |
| - #size-cells: shall be 0 |
| |
| |
| Required properties for host-controller nodes with device nodes: |
| - #address-cells: shall be 1 |
| - #size-cells: shall be 0 |
| |
| |
| Example: |
| |
| &usb1 { /* host controller */ |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| hub@1 { /* hub connected to port 1 */ |
| compatible = "usb5e3,608"; |
| reg = <1>; |
| }; |
| |
| device@2 { /* device connected to port 2 */ |
| compatible = "usb123,4567"; |
| reg = <2>; |
| }; |
| |
| device@3 { /* device connected to port 3 */ |
| compatible = "usb123,abcd"; |
| reg = <3>; |
| |
| #address-cells = <2>; |
| #size-cells = <0>; |
| |
| interface@0 { /* interface 0 of configuration 1 */ |
| compatible = "usbif123,abcd.config1.0"; |
| reg = <0 1>; |
| }; |
| |
| interface@0,2 { /* interface 0 of configuration 2 */ |
| compatible = "usbif123,abcd.config2.0"; |
| reg = <0 2>; |
| }; |
| }; |
| }; |