blob: a86bcd95100eb3e3968df0dd042069e120ad455c [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# 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
8title: ASPEED USB 2.0 Virtual Hub Controller
9
10maintainers:
11 - Benjamin Herrenschmidt <benh@kernel.crashing.org>
12
13description: |+
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
23properties:
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
102required:
103 - compatible
104 - reg
105 - clocks
106 - interrupts
107 - aspeed,vhub-downstream-ports
108 - aspeed,vhub-generic-endpoints
109
110additionalProperties: false
111
112examples:
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 };