xref: /linux/Documentation/devicetree/bindings/usb/cdns,usb3.yaml (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/cdns,usb3.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Cadence USBSS-DRD controller
8
9maintainers:
10  - Pawel Laszczak <pawell@cadence.com>
11
12properties:
13  compatible:
14    const: cdns,usb3
15
16  reg:
17    items:
18      - description: OTG controller registers
19      - description: XHCI Host controller registers
20      - description: DEVICE controller registers
21
22  reg-names:
23    items:
24      - const: otg
25      - const: xhci
26      - const: dev
27
28  interrupts:
29    minItems: 3
30    items:
31      - description: XHCI host controller interrupt
32      - description: Device controller interrupt
33      - description: OTG/DRD controller interrupt
34      - description: interrupt used to wake up core, e.g when usbcmd.rs is
35                     cleared by xhci core, this interrupt is optional
36
37  interrupt-names:
38    minItems: 3
39    items:
40      - const: host
41      - const: peripheral
42      - const: otg
43      - const: wakeup
44
45  port:
46    $ref: /schemas/graph.yaml#/properties/port
47    description:
48      This port is used with the 'usb-role-switch' property to connect the
49      cdns3 to type C connector.
50
51  maximum-speed:
52    enum: [super-speed, high-speed, full-speed]
53
54  phys:
55    minItems: 1
56    maxItems: 2
57
58  phy-names:
59    minItems: 1
60    maxItems: 2
61    items:
62      anyOf:
63        - const: cdns3,usb2-phy
64        - const: cdns3,usb3-phy
65
66  cdns,on-chip-buff-size:
67    description:
68      size of memory intended as internal memory for endpoints
69      buffers expressed in KB
70    $ref: /schemas/types.yaml#/definitions/uint16
71
72  cdns,phyrst-a-enable:
73    description: Enable resetting of PHY if Rx fail is detected
74    type: boolean
75
76dependencies:
77  port: [ usb-role-switch ]
78
79required:
80  - compatible
81  - reg
82  - reg-names
83  - interrupts
84  - interrupt-names
85
86allOf:
87  - $ref: usb-drd.yaml#
88
89unevaluatedProperties: false
90
91examples:
92  - |
93    #include <dt-bindings/interrupt-controller/arm-gic.h>
94    bus {
95        #address-cells = <2>;
96        #size-cells = <2>;
97
98        usb@6000000 {
99            compatible = "cdns,usb3";
100            reg = <0x00 0x6000000 0x00 0x10000>,
101                  <0x00 0x6010000 0x00 0x10000>,
102                  <0x00 0x6020000 0x00 0x10000>;
103            reg-names = "otg", "xhci", "dev";
104            interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
105                         <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
106                         <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
107            interrupt-names = "host", "peripheral", "otg";
108            maximum-speed = "super-speed";
109            dr_mode = "otg";
110        };
111    };
112