xref: /linux/Documentation/devicetree/bindings/usb/aspeed,usb-vhub.yaml (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
14a5dbd90STao Ren# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
24a5dbd90STao Ren# Copyright (c) 2020 Facebook Inc.
34a5dbd90STao Ren%YAML 1.2
44a5dbd90STao Ren---
54a5dbd90STao Ren$id: http://devicetree.org/schemas/usb/aspeed,usb-vhub.yaml#
64a5dbd90STao Ren$schema: http://devicetree.org/meta-schemas/core.yaml#
74a5dbd90STao Ren
84a5dbd90STao Rentitle: ASPEED USB 2.0 Virtual Hub Controller
94a5dbd90STao Ren
104a5dbd90STao Renmaintainers:
114a5dbd90STao Ren  - Benjamin Herrenschmidt <benh@kernel.crashing.org>
124a5dbd90STao Ren
134a5dbd90STao Rendescription: |+
144a5dbd90STao Ren  The ASPEED USB 2.0 Virtual Hub Controller implements 1 set of USB Hub
154a5dbd90STao Ren  register and several sets of Device and Endpoint registers to support
164a5dbd90STao Ren  the Virtual Hub's downstream USB devices.
174a5dbd90STao Ren
184a5dbd90STao Ren  Supported number of devices and endpoints vary depending on hardware
194a5dbd90STao Ren  revisions. AST2400 and AST2500 Virtual Hub supports 5 downstream devices
204a5dbd90STao Ren  and 15 generic endpoints, while AST2600 Virtual Hub supports 7 downstream
214a5dbd90STao Ren  devices and 21 generic endpoints.
224a5dbd90STao Ren
234a5dbd90STao Renproperties:
244a5dbd90STao Ren  compatible:
254a5dbd90STao Ren    enum:
264a5dbd90STao Ren      - aspeed,ast2400-usb-vhub
274a5dbd90STao Ren      - aspeed,ast2500-usb-vhub
284a5dbd90STao Ren      - aspeed,ast2600-usb-vhub
294a5dbd90STao Ren
304a5dbd90STao Ren  reg:
314a5dbd90STao Ren    maxItems: 1
324a5dbd90STao Ren
334a5dbd90STao Ren  clocks:
344a5dbd90STao Ren    maxItems: 1
354a5dbd90STao Ren
364a5dbd90STao Ren  interrupts:
374a5dbd90STao Ren    maxItems: 1
384a5dbd90STao Ren
394a5dbd90STao Ren  aspeed,vhub-downstream-ports:
404a5dbd90STao Ren    description: Number of downstream ports supported by the Virtual Hub
413d21a460SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
423d21a460SRob Herring    default: 5
434a5dbd90STao Ren    minimum: 1
444a5dbd90STao Ren    maximum: 7
454a5dbd90STao Ren
464a5dbd90STao Ren  aspeed,vhub-generic-endpoints:
474a5dbd90STao Ren    description: Number of generic endpoints supported by the Virtual Hub
483d21a460SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
493d21a460SRob Herring    default: 15
504a5dbd90STao Ren    minimum: 1
514a5dbd90STao Ren    maximum: 21
524a5dbd90STao Ren
533428b96fSTao Ren  vhub-vendor-id:
543428b96fSTao Ren    description: vhub Vendor ID
55086e9074SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
56086e9074SRob Herring    maximum: 65535
573428b96fSTao Ren
583428b96fSTao Ren  vhub-product-id:
593428b96fSTao Ren    description: vhub Product ID
60086e9074SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
61086e9074SRob Herring    maximum: 65535
623428b96fSTao Ren
633428b96fSTao Ren  vhub-device-revision:
643428b96fSTao Ren    description: vhub Device Revision in binary-coded decimal
65086e9074SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32
66086e9074SRob Herring    maximum: 65535
673428b96fSTao Ren
683428b96fSTao Ren  vhub-strings:
693428b96fSTao Ren    type: object
70*e372a6dbSRob Herring    additionalProperties: false
713428b96fSTao Ren
723428b96fSTao Ren    properties:
733428b96fSTao Ren      '#address-cells':
743428b96fSTao Ren        const: 1
753428b96fSTao Ren
763428b96fSTao Ren      '#size-cells':
773428b96fSTao Ren        const: 0
783428b96fSTao Ren
793428b96fSTao Ren    patternProperties:
803428b96fSTao Ren      '^string@[0-9a-f]+$':
813428b96fSTao Ren        type: object
82*e372a6dbSRob Herring        additionalProperties: false
833428b96fSTao Ren        description: string descriptors of the specific language
843428b96fSTao Ren
853428b96fSTao Ren        properties:
863428b96fSTao Ren          reg:
873428b96fSTao Ren            maxItems: 1
883428b96fSTao Ren            description: 16-bit Language Identifier defined by USB-IF
893428b96fSTao Ren
903428b96fSTao Ren          manufacturer:
913428b96fSTao Ren            description: vhub manufacturer
92086e9074SRob Herring            $ref: /schemas/types.yaml#/definitions/string
933428b96fSTao Ren
943428b96fSTao Ren          product:
953428b96fSTao Ren            description: vhub product name
96086e9074SRob Herring            $ref: /schemas/types.yaml#/definitions/string
973428b96fSTao Ren
983428b96fSTao Ren          serial-number:
993428b96fSTao Ren            description: vhub device serial number
100086e9074SRob Herring            $ref: /schemas/types.yaml#/definitions/string
1013428b96fSTao Ren
1024a5dbd90STao Renrequired:
1034a5dbd90STao Ren  - compatible
1044a5dbd90STao Ren  - reg
1054a5dbd90STao Ren  - clocks
1064a5dbd90STao Ren  - interrupts
1074a5dbd90STao Ren  - aspeed,vhub-downstream-ports
1084a5dbd90STao Ren  - aspeed,vhub-generic-endpoints
1094a5dbd90STao Ren
1104a5dbd90STao RenadditionalProperties: false
1114a5dbd90STao Ren
1124a5dbd90STao Renexamples:
1134a5dbd90STao Ren  - |
1144a5dbd90STao Ren    #include <dt-bindings/clock/aspeed-clock.h>
1154a5dbd90STao Ren    vhub: usb-vhub@1e6a0000 {
1164a5dbd90STao Ren            compatible = "aspeed,ast2500-usb-vhub";
1174a5dbd90STao Ren            reg = <0x1e6a0000 0x300>;
1184a5dbd90STao Ren            interrupts = <5>;
1194a5dbd90STao Ren            clocks = <&syscon ASPEED_CLK_GATE_USBPORT1CLK>;
1204a5dbd90STao Ren            aspeed,vhub-downstream-ports = <5>;
1214a5dbd90STao Ren            aspeed,vhub-generic-endpoints = <15>;
1224a5dbd90STao Ren            pinctrl-names = "default";
1234a5dbd90STao Ren            pinctrl-0 = <&pinctrl_usb2ad_default>;
1243428b96fSTao Ren
1253428b96fSTao Ren            vhub-vendor-id = <0x1d6b>;
1263428b96fSTao Ren            vhub-product-id = <0x0107>;
1273428b96fSTao Ren            vhub-device-revision = <0x0100>;
1283428b96fSTao Ren            vhub-strings {
1293428b96fSTao Ren                #address-cells = <1>;
1303428b96fSTao Ren                #size-cells = <0>;
1313428b96fSTao Ren
132dd075b66SFabio Estevam                string@409 {
133dd075b66SFabio Estevam                        reg = <0x409>;
1343428b96fSTao Ren                        manufacturer = "ASPEED";
1353428b96fSTao Ren                        product = "USB Virtual Hub";
1363428b96fSTao Ren                        serial-number = "0000";
1373428b96fSTao Ren                };
1383428b96fSTao Ren            };
1394a5dbd90STao Ren    };
140