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 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 allOf: 56 - $ref: /schemas/types.yaml#/definitions/uint32 57 - maximum: 65535 58 59 vhub-product-id: 60 description: vhub Product ID 61 allOf: 62 - $ref: /schemas/types.yaml#/definitions/uint32 63 - maximum: 65535 64 65 vhub-device-revision: 66 description: vhub Device Revision in binary-coded decimal 67 allOf: 68 - $ref: /schemas/types.yaml#/definitions/uint32 69 - maximum: 65535 70 71 vhub-strings: 72 type: object 73 74 properties: 75 '#address-cells': 76 const: 1 77 78 '#size-cells': 79 const: 0 80 81 patternProperties: 82 '^string@[0-9a-f]+$': 83 type: object 84 description: string descriptors of the specific language 85 86 properties: 87 reg: 88 maxItems: 1 89 description: 16-bit Language Identifier defined by USB-IF 90 91 manufacturer: 92 description: vhub manufacturer 93 allOf: 94 - $ref: /schemas/types.yaml#/definitions/string 95 96 product: 97 description: vhub product name 98 allOf: 99 - $ref: /schemas/types.yaml#/definitions/string 100 101 serial-number: 102 description: vhub device serial number 103 allOf: 104 - $ref: /schemas/types.yaml#/definitions/string 105 106required: 107 - compatible 108 - reg 109 - clocks 110 - interrupts 111 - aspeed,vhub-downstream-ports 112 - aspeed,vhub-generic-endpoints 113 114additionalProperties: false 115 116examples: 117 - | 118 #include <dt-bindings/clock/aspeed-clock.h> 119 vhub: usb-vhub@1e6a0000 { 120 compatible = "aspeed,ast2500-usb-vhub"; 121 reg = <0x1e6a0000 0x300>; 122 interrupts = <5>; 123 clocks = <&syscon ASPEED_CLK_GATE_USBPORT1CLK>; 124 aspeed,vhub-downstream-ports = <5>; 125 aspeed,vhub-generic-endpoints = <15>; 126 pinctrl-names = "default"; 127 pinctrl-0 = <&pinctrl_usb2ad_default>; 128 129 vhub-vendor-id = <0x1d6b>; 130 vhub-product-id = <0x0107>; 131 vhub-device-revision = <0x0100>; 132 vhub-strings { 133 #address-cells = <1>; 134 #size-cells = <0>; 135 136 string@0409 { 137 reg = <0x0409>; 138 manufacturer = "ASPEED"; 139 product = "USB Virtual Hub"; 140 serial-number = "0000"; 141 }; 142 }; 143 }; 144