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