| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| # Copyright (c) 2020 Facebook Inc. |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/usb/aspeed,usb-vhub.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: ASPEED USB 2.0 Virtual Hub Controller |
| |
| maintainers: |
| - Benjamin Herrenschmidt <benh@kernel.crashing.org> |
| |
| description: |+ |
| The ASPEED USB 2.0 Virtual Hub Controller implements 1 set of USB Hub |
| register and several sets of Device and Endpoint registers to support |
| the Virtual Hub's downstream USB devices. |
| |
| Supported number of devices and endpoints vary depending on hardware |
| revisions. AST2400 and AST2500 Virtual Hub supports 5 downstream devices |
| and 15 generic endpoints, while AST2600 Virtual Hub supports 7 downstream |
| devices and 21 generic endpoints. |
| |
| properties: |
| compatible: |
| enum: |
| - aspeed,ast2400-usb-vhub |
| - aspeed,ast2500-usb-vhub |
| - aspeed,ast2600-usb-vhub |
| |
| reg: |
| maxItems: 1 |
| |
| clocks: |
| maxItems: 1 |
| |
| interrupts: |
| maxItems: 1 |
| |
| aspeed,vhub-downstream-ports: |
| description: Number of downstream ports supported by the Virtual Hub |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| default: 5 |
| minimum: 1 |
| maximum: 7 |
| |
| aspeed,vhub-generic-endpoints: |
| description: Number of generic endpoints supported by the Virtual Hub |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| default: 15 |
| minimum: 1 |
| maximum: 21 |
| |
| vhub-vendor-id: |
| description: vhub Vendor ID |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 65535 |
| |
| vhub-product-id: |
| description: vhub Product ID |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 65535 |
| |
| vhub-device-revision: |
| description: vhub Device Revision in binary-coded decimal |
| $ref: /schemas/types.yaml#/definitions/uint32 |
| maximum: 65535 |
| |
| vhub-strings: |
| type: object |
| |
| properties: |
| '#address-cells': |
| const: 1 |
| |
| '#size-cells': |
| const: 0 |
| |
| patternProperties: |
| '^string@[0-9a-f]+$': |
| type: object |
| description: string descriptors of the specific language |
| |
| properties: |
| reg: |
| maxItems: 1 |
| description: 16-bit Language Identifier defined by USB-IF |
| |
| manufacturer: |
| description: vhub manufacturer |
| $ref: /schemas/types.yaml#/definitions/string |
| |
| product: |
| description: vhub product name |
| $ref: /schemas/types.yaml#/definitions/string |
| |
| serial-number: |
| description: vhub device serial number |
| $ref: /schemas/types.yaml#/definitions/string |
| |
| required: |
| - compatible |
| - reg |
| - clocks |
| - interrupts |
| - aspeed,vhub-downstream-ports |
| - aspeed,vhub-generic-endpoints |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/clock/aspeed-clock.h> |
| vhub: usb-vhub@1e6a0000 { |
| compatible = "aspeed,ast2500-usb-vhub"; |
| reg = <0x1e6a0000 0x300>; |
| interrupts = <5>; |
| clocks = <&syscon ASPEED_CLK_GATE_USBPORT1CLK>; |
| aspeed,vhub-downstream-ports = <5>; |
| aspeed,vhub-generic-endpoints = <15>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pinctrl_usb2ad_default>; |
| |
| vhub-vendor-id = <0x1d6b>; |
| vhub-product-id = <0x0107>; |
| vhub-device-revision = <0x0100>; |
| vhub-strings { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| string@409 { |
| reg = <0x409>; |
| manufacturer = "ASPEED"; |
| product = "USB Virtual Hub"; |
| serial-number = "0000"; |
| }; |
| }; |
| }; |