0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 # Copyright (c) 2020 Facebook Inc.
0003 %YAML 1.2
0004 ---
0005 $id: http://devicetree.org/schemas/usb/aspeed,usb-vhub.yaml#
0006 $schema: http://devicetree.org/meta-schemas/core.yaml#
0007
0008 title: ASPEED USB 2.0 Virtual Hub Controller
0009
0010 maintainers:
0011 - Benjamin Herrenschmidt <benh@kernel.crashing.org>
0012
0013 description: |+
0014 The ASPEED USB 2.0 Virtual Hub Controller implements 1 set of USB Hub
0015 register and several sets of Device and Endpoint registers to support
0016 the Virtual Hub's downstream USB devices.
0017
0018 Supported number of devices and endpoints vary depending on hardware
0019 revisions. AST2400 and AST2500 Virtual Hub supports 5 downstream devices
0020 and 15 generic endpoints, while AST2600 Virtual Hub supports 7 downstream
0021 devices and 21 generic endpoints.
0022
0023 properties:
0024 compatible:
0025 enum:
0026 - aspeed,ast2400-usb-vhub
0027 - aspeed,ast2500-usb-vhub
0028 - aspeed,ast2600-usb-vhub
0029
0030 reg:
0031 maxItems: 1
0032
0033 clocks:
0034 maxItems: 1
0035
0036 interrupts:
0037 maxItems: 1
0038
0039 aspeed,vhub-downstream-ports:
0040 description: Number of downstream ports supported by the Virtual Hub
0041 $ref: /schemas/types.yaml#/definitions/uint32
0042 default: 5
0043 minimum: 1
0044 maximum: 7
0045
0046 aspeed,vhub-generic-endpoints:
0047 description: Number of generic endpoints supported by the Virtual Hub
0048 $ref: /schemas/types.yaml#/definitions/uint32
0049 default: 15
0050 minimum: 1
0051 maximum: 21
0052
0053 vhub-vendor-id:
0054 description: vhub Vendor ID
0055 $ref: /schemas/types.yaml#/definitions/uint32
0056 maximum: 65535
0057
0058 vhub-product-id:
0059 description: vhub Product ID
0060 $ref: /schemas/types.yaml#/definitions/uint32
0061 maximum: 65535
0062
0063 vhub-device-revision:
0064 description: vhub Device Revision in binary-coded decimal
0065 $ref: /schemas/types.yaml#/definitions/uint32
0066 maximum: 65535
0067
0068 vhub-strings:
0069 type: object
0070
0071 properties:
0072 '#address-cells':
0073 const: 1
0074
0075 '#size-cells':
0076 const: 0
0077
0078 patternProperties:
0079 '^string@[0-9a-f]+$':
0080 type: object
0081 description: string descriptors of the specific language
0082
0083 properties:
0084 reg:
0085 maxItems: 1
0086 description: 16-bit Language Identifier defined by USB-IF
0087
0088 manufacturer:
0089 description: vhub manufacturer
0090 $ref: /schemas/types.yaml#/definitions/string
0091
0092 product:
0093 description: vhub product name
0094 $ref: /schemas/types.yaml#/definitions/string
0095
0096 serial-number:
0097 description: vhub device serial number
0098 $ref: /schemas/types.yaml#/definitions/string
0099
0100 required:
0101 - compatible
0102 - reg
0103 - clocks
0104 - interrupts
0105 - aspeed,vhub-downstream-ports
0106 - aspeed,vhub-generic-endpoints
0107
0108 additionalProperties: false
0109
0110 examples:
0111 - |
0112 #include <dt-bindings/clock/aspeed-clock.h>
0113 vhub: usb-vhub@1e6a0000 {
0114 compatible = "aspeed,ast2500-usb-vhub";
0115 reg = <0x1e6a0000 0x300>;
0116 interrupts = <5>;
0117 clocks = <&syscon ASPEED_CLK_GATE_USBPORT1CLK>;
0118 aspeed,vhub-downstream-ports = <5>;
0119 aspeed,vhub-generic-endpoints = <15>;
0120 pinctrl-names = "default";
0121 pinctrl-0 = <&pinctrl_usb2ad_default>;
0122
0123 vhub-vendor-id = <0x1d6b>;
0124 vhub-product-id = <0x0107>;
0125 vhub-device-revision = <0x0100>;
0126 vhub-strings {
0127 #address-cells = <1>;
0128 #size-cells = <0>;
0129
0130 string@409 {
0131 reg = <0x409>;
0132 manufacturer = "ASPEED";
0133 product = "USB Virtual Hub";
0134 serial-number = "0000";
0135 };
0136 };
0137 };