xref: /openbmc/linux/Documentation/devicetree/bindings/usb/cdns,usb3.yaml (revision 5261e48f9a705bf65e3d202eb44dc2e270911684)
168989fe1SRoger Quadros# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
268989fe1SRoger Quadros%YAML 1.2
368989fe1SRoger Quadros---
468989fe1SRoger Quadros$id: http://devicetree.org/schemas/usb/cdns,usb3.yaml#
568989fe1SRoger Quadros$schema: http://devicetree.org/meta-schemas/core.yaml#
668989fe1SRoger Quadros
768989fe1SRoger Quadrostitle: Cadence USBSS-DRD controller bindings
868989fe1SRoger Quadros
968989fe1SRoger Quadrosmaintainers:
1068989fe1SRoger Quadros  - Pawel Laszczak <pawell@cadence.com>
1168989fe1SRoger Quadros
1268989fe1SRoger Quadrosproperties:
1368989fe1SRoger Quadros  compatible:
1468989fe1SRoger Quadros    const: cdns,usb3
1568989fe1SRoger Quadros
1668989fe1SRoger Quadros  reg:
1768989fe1SRoger Quadros    items:
1868989fe1SRoger Quadros      - description: OTG controller registers
1968989fe1SRoger Quadros      - description: XHCI Host controller registers
2068989fe1SRoger Quadros      - description: DEVICE controller registers
2168989fe1SRoger Quadros
2268989fe1SRoger Quadros  reg-names:
2368989fe1SRoger Quadros    items:
2468989fe1SRoger Quadros      - const: otg
2568989fe1SRoger Quadros      - const: xhci
2668989fe1SRoger Quadros      - const: dev
2768989fe1SRoger Quadros
2868989fe1SRoger Quadros  interrupts:
2968989fe1SRoger Quadros    items:
3068989fe1SRoger Quadros      - description: OTG/DRD controller interrupt
3168989fe1SRoger Quadros      - description: XHCI host controller interrupt
3268989fe1SRoger Quadros      - description: Device controller interrupt
3368989fe1SRoger Quadros
3468989fe1SRoger Quadros  interrupt-names:
3568989fe1SRoger Quadros    items:
3668989fe1SRoger Quadros      - const: host
3768989fe1SRoger Quadros      - const: peripheral
3868989fe1SRoger Quadros      - const: otg
3968989fe1SRoger Quadros
4068989fe1SRoger Quadros  dr_mode:
4168989fe1SRoger Quadros    enum: [host, otg, peripheral]
4268989fe1SRoger Quadros
4368989fe1SRoger Quadros  maximum-speed:
4468989fe1SRoger Quadros    enum: [super-speed, high-speed, full-speed]
4568989fe1SRoger Quadros
4668989fe1SRoger Quadros  phys:
4768989fe1SRoger Quadros   minItems: 1
4868989fe1SRoger Quadros   maxItems: 2
4968989fe1SRoger Quadros
5068989fe1SRoger Quadros  phy-names:
5168989fe1SRoger Quadros    minItems: 1
5268989fe1SRoger Quadros    maxItems: 2
5368989fe1SRoger Quadros    items:
5468989fe1SRoger Quadros      anyOf:
5568989fe1SRoger Quadros        - const: cdns3,usb2-phy
5668989fe1SRoger Quadros        - const: cdns3,usb3-phy
5768989fe1SRoger Quadros
5868989fe1SRoger Quadros  cdns,on-chip-buff-size:
5968989fe1SRoger Quadros    description:
6068989fe1SRoger Quadros      size of memory intended as internal memory for endpoints
6168989fe1SRoger Quadros      buffers expressed in KB
6268989fe1SRoger Quadros    $ref: /schemas/types.yaml#/definitions/uint32
6368989fe1SRoger Quadros
64*5261e48fSRoger Quadros  cdns,phyrst-a-enable:
65*5261e48fSRoger Quadros    description: Enable resetting of PHY if Rx fail is detected
66*5261e48fSRoger Quadros    type: boolean
67*5261e48fSRoger Quadros
6868989fe1SRoger Quadrosrequired:
6968989fe1SRoger Quadros  - compatible
7068989fe1SRoger Quadros  - reg
7168989fe1SRoger Quadros  - reg-names
7268989fe1SRoger Quadros  - interrupts
7368989fe1SRoger Quadros
7468989fe1SRoger QuadrosadditionalProperties: false
7568989fe1SRoger Quadros
7668989fe1SRoger Quadrosexamples:
7768989fe1SRoger Quadros  - |
7868989fe1SRoger Quadros    #include <dt-bindings/interrupt-controller/arm-gic.h>
7968989fe1SRoger Quadros    bus {
8068989fe1SRoger Quadros        #address-cells = <2>;
8168989fe1SRoger Quadros        #size-cells = <2>;
8268989fe1SRoger Quadros
8368989fe1SRoger Quadros        usb@6000000 {
8468989fe1SRoger Quadros            compatible = "cdns,usb3";
8568989fe1SRoger Quadros            reg = <0x00 0x6000000 0x00 0x10000>,
8668989fe1SRoger Quadros                  <0x00 0x6010000 0x00 0x10000>,
8768989fe1SRoger Quadros                  <0x00 0x6020000 0x00 0x10000>;
8868989fe1SRoger Quadros            reg-names = "otg", "xhci", "dev";
8968989fe1SRoger Quadros            interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
9068989fe1SRoger Quadros                         <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
9168989fe1SRoger Quadros                         <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
9268989fe1SRoger Quadros            interrupt-names = "host", "peripheral", "otg";
9368989fe1SRoger Quadros            maximum-speed = "super-speed";
9468989fe1SRoger Quadros            dr_mode = "otg";
9568989fe1SRoger Quadros        };
9668989fe1SRoger Quadros    };
97