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