1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/usb251xb.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Microchip USB 2.0 Hi-Speed Hub Controller
8
9maintainers:
10  - Richard Leitner <richard.leitner@skidata.com>
11
12properties:
13  compatible:
14    enum:
15      - microchip,usb2422
16      - microchip,usb2512b
17      - microchip,usb2512bi
18      - microchip,usb2513b
19      - microchip,usb2513bi
20      - microchip,usb2514b
21      - microchip,usb2514bi
22      - microchip,usb2517
23      - microchip,usb2517i
24      - microchip,usb251xb
25
26  reg:
27    maxItems: 1
28
29  reset-gpios:
30    description: |
31      Should specify the gpio for hub reset
32
33  vdd-supply:
34    description: |
35      Should specify the phandle to the regulator supplying vdd
36
37  skip-config:
38    $ref: /schemas/types.yaml#/definitions/flag
39    description: |
40      Skip Hub configuration, but only send the USB-Attach command
41
42  vendor-id:
43    $ref: /schemas/types.yaml#/definitions/uint16
44    default: 0x0424
45    description: |
46      Set USB Vendor ID of the hub
47
48  product-id:
49    $ref: /schemas/types.yaml#/definitions/uint16
50    description: |
51      Set USB Product ID of the hub
52
53  device-id:
54    $ref: /schemas/types.yaml#/definitions/uint16
55    default: 0x0bb3
56    description: |
57      Set USB Device ID of the hub
58
59  language-id:
60    $ref: /schemas/types.yaml#/definitions/uint16
61    default: 0x0000
62    description: |
63      Set USB Language ID
64
65  manufacturer:
66    $ref: /schemas/types.yaml#/definitions/string
67    description: |
68      Set USB Manufacturer string (max 31 characters long)
69
70  product:
71    $ref: /schemas/types.yaml#/definitions/string
72    description: |
73      Set USB Product string (max 31 characters long)
74
75  serial:
76    $ref: /schemas/types.yaml#/definitions/string
77    description: |
78      Set USB Serial string (max 31 characters long)
79
80  bus-powered:
81    $ref: /schemas/types.yaml#/definitions/flag
82    description: |
83      selects between self- and bus-powered operation
84      (boolean, default is self-powered)
85
86  self-powered:
87    $ref: /schemas/types.yaml#/definitions/flag
88    description: |
89      selects between self- and bus-powered operation
90      (boolean, default is self-powered)
91
92  disable-hi-speed:
93    $ref: /schemas/types.yaml#/definitions/flag
94    description: |
95      disable USB Hi-Speed support (boolean)
96
97  multi-tt:
98    $ref: /schemas/types.yaml#/definitions/flag
99    description: |
100      selects between multi- and single-transaction-translator
101      (boolean, default is multi-tt)
102
103  single-tt:
104    $ref: /schemas/types.yaml#/definitions/flag
105    description: |
106      selects between multi- and single-transaction-translator
107      (boolean, default is multi-tt)
108
109  disable-eop:
110    $ref: /schemas/types.yaml#/definitions/flag
111    description: |
112      disable End of Packet generation in full-speed mode (boolean)
113
114  ganged-sensing:
115    $ref: /schemas/types.yaml#/definitions/flag
116    description: |
117      select over-current sense type in self-powered mode
118      (boolean, default is individual)
119
120  individual-sensing:
121    $ref: /schemas/types.yaml#/definitions/flag
122    description: |
123      select over-current sense type in self-powered mode
124      (boolean, default is individual)
125
126  ganged-port-switching:
127    $ref: /schemas/types.yaml#/definitions/flag
128    description: |
129      select port power switching mode (boolean, default is individual)
130
131  individual-port-switching:
132    $ref: /schemas/types.yaml#/definitions/flag
133    description: |
134      select port power switching mode (boolean, default is individual)
135
136  dynamic-power-switching:
137    $ref: /schemas/types.yaml#/definitions/flag
138    description: |
139      enable auto-switching from self- to bus-powered operation if the
140      local power source is removed or unavailable (boolean)
141
142  oc-delay-us:
143    enum: [100, 4000, 8000, 16000]
144    default: 8000
145    description: |
146      Delay time (in microseconds) for filtering the over-current sense
147      inputs. If an invalid value is given, the default is used instead.
148
149  compound-device:
150    $ref: /schemas/types.yaml#/definitions/flag
151    description: |
152      indicate the hub is part of a compound device (boolean)
153
154  port-mapping-mode:
155    $ref: /schemas/types.yaml#/definitions/flag
156    description: |
157      enable port mapping mode (boolean)
158
159  led-usb-mode:
160    $ref: /schemas/types.yaml#/definitions/flag
161    description: |
162      led usb/speed indication mode selection (boolean, default is speed mode)
163
164  led-speed-mode:
165    $ref: /schemas/types.yaml#/definitions/flag
166    description: |
167      led usb/speed indication mode selection (boolean, default is speed mode)
168
169  string-support:
170    $ref: /schemas/types.yaml#/definitions/flag
171    description: |
172      enable string descriptor support (required for manufacturer, product
173      and serial string configuration)
174
175  non-removable-ports:
176    $ref: /schemas/types.yaml#/definitions/uint8-array
177    description: |
178      Should specify the ports which have a non-removable device connected.
179
180  sp-disabled-ports:
181    $ref: /schemas/types.yaml#/definitions/uint8-array
182    description: |
183      Specifies the ports which will be self-power disabled
184
185  bp-disabled-ports:
186    $ref: /schemas/types.yaml#/definitions/uint8-array
187    description: |
188      Specifies the ports which will be bus-power disabled
189
190  sp-max-total-current-microamp:
191    maximum: 100000
192    default: 1000
193    description: |
194      Specifies max current consumed by the hub from VBUS when
195      operating in self-powered hub. It includes the hub silicon
196      along with all associated circuitry including a permanently
197      attached peripheral.
198
199  bp-max-total-current-microamp:
200    maximum: 510000
201    default: 100000
202    description: |
203      Specifies max current consumed by the hub from VBUS when
204      operating in self-powered hub. It includes the hub silicon
205      along with all associated circuitry including a permanently
206      attached peripheral.
207
208  sp-max-removable-current-microamp:
209    maximum: 100000
210    default: 1000
211    description: |
212      Specifies max current consumed by the hub from VBUS when
213      operating in self-powered hub. It includes the hub silicon
214      along with all associated circuitry excluding a permanently
215      attached peripheral.
216
217  bp-max-removable-current-microamp:
218    maximum: 510000
219    default: 100000
220    description: |
221      Specifies max current consumed by the hub from VBUS when
222      operating in self-powered hub. It includes the hub silicon
223      along with all associated circuitry excluding a permanently
224      attached peripheral.
225
226  power-on-time-ms:
227    maximum: 510
228    default: 100
229    description: |
230      Specifies the time it takes from the time the host initiates the
231      power-on sequence to a port until the port has adequate power.
232
233  swap-dx-lanes:
234    $ref: /schemas/types.yaml#/definitions/uint8-array
235    description: |
236      Specifies the ports which will swap the differential-pair (D+/D-),
237      default is not-swapped.
238
239additionalProperties: false
240
241required:
242  - compatible
243  - reg
244
245examples:
246  - |
247    #include <dt-bindings/gpio/gpio.h>
248
249    i2c {
250      #address-cells = <1>;
251      #size-cells = <0>;
252
253      usb-hub@2c {
254        compatible = "microchip,usb2512b";
255        reg = <0x2c>;
256        reset-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
257      };
258
259      usb-hub@2d {
260        compatible = "microchip,usb2514b";
261        reg = <0x2d>;
262        vendor-id = /bits/ 16 <0x0000>;
263        product-id = /bits/ 16 <0x0000>;
264        string-support;
265        manufacturer = "Foo";
266        product = "Foo-Bar";
267        serial = "1234567890A";
268        /* correct misplaced usb connectors on port 1,2 */
269        swap-dx-lanes = <1 2>;
270      };
271    };
272