xref: /linux/Documentation/devicetree/bindings/usb/apple,dwc3.yaml (revision f5e9d31e79c1ce8ba948ecac74d75e9c8d2f0c87)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/apple,dwc3.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Apple Silicon DWC3 USB controller
8
9maintainers:
10  - Sven Peter <sven@kernel.org>
11
12description:
13  Apple Silicon SoCs use a Synopsys DesignWare DWC3 based controller for each of
14  their Type-C ports.
15
16allOf:
17  - $ref: snps,dwc3-common.yaml#
18
19properties:
20  compatible:
21    oneOf:
22      - items:
23          - enum:
24              - apple,t6000-dwc3
25              - apple,t6020-dwc3
26              - apple,t8112-dwc3
27          - const: apple,t8103-dwc3
28      - const: apple,t8103-dwc3
29
30  reg:
31    items:
32      - description: Core DWC3 region
33      - description: Apple-specific DWC3 region
34
35  reg-names:
36    items:
37      - const: dwc3-core
38      - const: dwc3-apple
39
40  interrupts:
41    maxItems: 1
42
43  iommus:
44    maxItems: 2
45
46  resets:
47    maxItems: 1
48
49  power-domains:
50    maxItems: 1
51
52required:
53  - compatible
54  - reg
55  - reg-names
56  - interrupts
57  - iommus
58  - resets
59  - power-domains
60  - usb-role-switch
61
62unevaluatedProperties: false
63
64examples:
65  - |
66    #include <dt-bindings/interrupt-controller/apple-aic.h>
67    #include <dt-bindings/interrupt-controller/irq.h>
68
69    usb@82280000 {
70      compatible = "apple,t8103-dwc3";
71      reg = <0x82280000 0xcd00>, <0x8228cd00 0x3200>;
72      reg-names = "dwc3-core", "dwc3-apple";
73      interrupts = <AIC_IRQ 777 IRQ_TYPE_LEVEL_HIGH>;
74      iommus = <&dwc3_0_dart_0 0>, <&dwc3_0_dart_1 1>;
75
76      power-domains = <&ps_atc0_usb>;
77      resets = <&atcphy0>;
78
79      usb-role-switch;
80    };
81