GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / usb / aspeed,usb-vhub.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 # Copyright (c) 2020 Facebook Inc.
3 %YAML 1.2
4 ---
5 $id: http://devicetree.org/schemas/usb/aspeed,usb-vhub.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
7
8 title: ASPEED USB 2.0 Virtual Hub Controller
9
10 maintainers:
11   - Benjamin Herrenschmidt <benh@kernel.crashing.org>
12
13 description: |+
14   The ASPEED USB 2.0 Virtual Hub Controller implements 1 set of USB Hub
15   register and several sets of Device and Endpoint registers to support
16   the Virtual Hub's downstream USB devices.
17
18   Supported number of devices and endpoints vary depending on hardware
19   revisions. AST2400 and AST2500 Virtual Hub supports 5 downstream devices
20   and 15 generic endpoints, while AST2600 Virtual Hub supports 7 downstream
21   devices and 21 generic endpoints.
22
23 properties:
24   compatible:
25     enum:
26       - aspeed,ast2400-usb-vhub
27       - aspeed,ast2500-usb-vhub
28       - aspeed,ast2600-usb-vhub
29
30   reg:
31     maxItems: 1
32
33   clocks:
34     maxItems: 1
35
36   interrupts:
37     maxItems: 1
38
39   aspeed,vhub-downstream-ports:
40     description: Number of downstream ports supported by the Virtual Hub
41     $ref: /schemas/types.yaml#/definitions/uint32
42     default: 5
43     minimum: 1
44     maximum: 7
45
46   aspeed,vhub-generic-endpoints:
47     description: Number of generic endpoints supported by the Virtual Hub
48     $ref: /schemas/types.yaml#/definitions/uint32
49     default: 15
50     minimum: 1
51     maximum: 21
52
53   vhub-vendor-id:
54     description: vhub Vendor ID
55     $ref: /schemas/types.yaml#/definitions/uint32
56     maximum: 65535
57
58   vhub-product-id:
59     description: vhub Product ID
60     $ref: /schemas/types.yaml#/definitions/uint32
61     maximum: 65535
62
63   vhub-device-revision:
64     description: vhub Device Revision in binary-coded decimal
65     $ref: /schemas/types.yaml#/definitions/uint32
66     maximum: 65535
67
68   vhub-strings:
69     type: object
70     additionalProperties: false
71
72     properties:
73       '#address-cells':
74         const: 1
75
76       '#size-cells':
77         const: 0
78
79     patternProperties:
80       '^string@[0-9a-f]+$':
81         type: object
82         additionalProperties: false
83         description: string descriptors of the specific language
84
85         properties:
86           reg:
87             maxItems: 1
88             description: 16-bit Language Identifier defined by USB-IF
89
90           manufacturer:
91             description: vhub manufacturer
92             $ref: /schemas/types.yaml#/definitions/string
93
94           product:
95             description: vhub product name
96             $ref: /schemas/types.yaml#/definitions/string
97
98           serial-number:
99             description: vhub device serial number
100             $ref: /schemas/types.yaml#/definitions/string
101
102 required:
103   - compatible
104   - reg
105   - clocks
106   - interrupts
107   - aspeed,vhub-downstream-ports
108   - aspeed,vhub-generic-endpoints
109
110 additionalProperties: false
111
112 examples:
113   - |
114     #include <dt-bindings/clock/aspeed-clock.h>
115     vhub: usb-vhub@1e6a0000 {
116             compatible = "aspeed,ast2500-usb-vhub";
117             reg = <0x1e6a0000 0x300>;
118             interrupts = <5>;
119             clocks = <&syscon ASPEED_CLK_GATE_USBPORT1CLK>;
120             aspeed,vhub-downstream-ports = <5>;
121             aspeed,vhub-generic-endpoints = <15>;
122             pinctrl-names = "default";
123             pinctrl-0 = <&pinctrl_usb2ad_default>;
124
125             vhub-vendor-id = <0x1d6b>;
126             vhub-product-id = <0x0107>;
127             vhub-device-revision = <0x0100>;
128             vhub-strings {
129                 #address-cells = <1>;
130                 #size-cells = <0>;
131
132                 string@409 {
133                         reg = <0x409>;
134                         manufacturer = "ASPEED";
135                         product = "USB Virtual Hub";
136                         serial-number = "0000";
137                 };
138             };
139     };