1c3e2485dSMaxime Ripard# SPDX-License-Identifier: GPL-2.0
2c3e2485dSMaxime Ripard%YAML 1.2
3c3e2485dSMaxime Ripard---
4c3e2485dSMaxime Ripard$id: http://devicetree.org/schemas/usb/generic-ehci.yaml#
5c3e2485dSMaxime Ripard$schema: http://devicetree.org/meta-schemas/core.yaml#
6c3e2485dSMaxime Ripard
7*dd3cb467SAndrew Lunntitle: USB EHCI Controller
8c3e2485dSMaxime Ripard
9c3e2485dSMaxime Ripardmaintainers:
10c3e2485dSMaxime Ripard  - Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11c3e2485dSMaxime Ripard
123c9ab53fSRob HerringallOf:
133c9ab53fSRob Herring  - $ref: "usb-hcd.yaml"
143c9ab53fSRob Herring  - if:
153c9ab53fSRob Herring      properties:
163c9ab53fSRob Herring        compatible:
173c9ab53fSRob Herring          not:
183c9ab53fSRob Herring            contains:
193c9ab53fSRob Herring              const: ibm,usb-ehci-440epx
203c9ab53fSRob Herring    then:
213c9ab53fSRob Herring      properties:
223c9ab53fSRob Herring        reg:
233c9ab53fSRob Herring          maxItems: 1
243c9ab53fSRob Herring
25c3e2485dSMaxime Ripardproperties:
26c3e2485dSMaxime Ripard  compatible:
275ae01e76SRob Herring    oneOf:
285ae01e76SRob Herring      - items:
295ae01e76SRob Herring          - enum:
305ae01e76SRob Herring              - allwinner,sun4i-a10-ehci
315ae01e76SRob Herring              - allwinner,sun50i-a64-ehci
325ae01e76SRob Herring              - allwinner,sun50i-h6-ehci
335ae01e76SRob Herring              - allwinner,sun5i-a13-ehci
345ae01e76SRob Herring              - allwinner,sun6i-a31-ehci
355ae01e76SRob Herring              - allwinner,sun7i-a20-ehci
365ae01e76SRob Herring              - allwinner,sun8i-a23-ehci
3739c0bf56SMaxime Ripard              - allwinner,sun8i-a83t-ehci
385ae01e76SRob Herring              - allwinner,sun8i-h3-ehci
395ae01e76SRob Herring              - allwinner,sun8i-r40-ehci
405ae01e76SRob Herring              - allwinner,sun9i-a80-ehci
41821d83c2SSamuel Holland              - allwinner,sun20i-d1-ehci
425ae01e76SRob Herring              - aspeed,ast2400-ehci
435ae01e76SRob Herring              - aspeed,ast2500-ehci
445ae01e76SRob Herring              - aspeed,ast2600-ehci
455ae01e76SRob Herring              - brcm,bcm3384-ehci
465ae01e76SRob Herring              - brcm,bcm63268-ehci
475ae01e76SRob Herring              - brcm,bcm6328-ehci
485ae01e76SRob Herring              - brcm,bcm6358-ehci
495ae01e76SRob Herring              - brcm,bcm6362-ehci
505ae01e76SRob Herring              - brcm,bcm6368-ehci
515ae01e76SRob Herring              - brcm,bcm7125-ehci
525ae01e76SRob Herring              - brcm,bcm7346-ehci
535ae01e76SRob Herring              - brcm,bcm7358-ehci
545ae01e76SRob Herring              - brcm,bcm7360-ehci
555ae01e76SRob Herring              - brcm,bcm7362-ehci
565ae01e76SRob Herring              - brcm,bcm7420-ehci
575ae01e76SRob Herring              - brcm,bcm7425-ehci
585ae01e76SRob Herring              - brcm,bcm7435-ehci
59501c12a6SNick Hawkins              - hpe,gxp-ehci
605ae01e76SRob Herring              - ibm,476gtr-ehci
615ae01e76SRob Herring              - nxp,lpc1850-ehci
625ae01e76SRob Herring              - qca,ar7100-ehci
635ae01e76SRob Herring              - snps,hsdk-v1.0-ehci
645ae01e76SRob Herring              - socionext,uniphier-ehci
655ae01e76SRob Herring          - const: generic-ehci
665ae01e76SRob Herring      - items:
675ae01e76SRob Herring          - enum:
685ae01e76SRob Herring              - cavium,octeon-6335-ehci
695ae01e76SRob Herring              - ibm,usb-ehci-440epx
705ae01e76SRob Herring              - ibm,usb-ehci-460ex
715ae01e76SRob Herring              - nintendo,hollywood-usb-ehci
725ae01e76SRob Herring              - st,spear600-ehci
735ae01e76SRob Herring          - const: usb-ehci
745ae01e76SRob Herring      - enum:
755ae01e76SRob Herring          - generic-ehci
765ae01e76SRob Herring          - usb-ehci
77c3e2485dSMaxime Ripard
78c3e2485dSMaxime Ripard  reg:
793c9ab53fSRob Herring    minItems: 1
803c9ab53fSRob Herring    maxItems: 2
81c3e2485dSMaxime Ripard
82c3e2485dSMaxime Ripard  interrupts:
83c3e2485dSMaxime Ripard    maxItems: 1
84c3e2485dSMaxime Ripard
85c3e2485dSMaxime Ripard  resets:
86c3e2485dSMaxime Ripard    minItems: 1
87c3e2485dSMaxime Ripard    maxItems: 4
88c3e2485dSMaxime Ripard
89c3e2485dSMaxime Ripard  clocks:
90c3e2485dSMaxime Ripard    minItems: 1
91c3e2485dSMaxime Ripard    maxItems: 4
92c3e2485dSMaxime Ripard    description: |
93c3e2485dSMaxime Ripard      In case the Renesas R-Car Gen3 SoCs:
94c3e2485dSMaxime Ripard        - if a host only channel: first clock should be host.
95c3e2485dSMaxime Ripard        - if a USB DRD channel: first clock should be host and second
96c3e2485dSMaxime Ripard          one should be peripheral
97c3e2485dSMaxime Ripard
98f98d7c3aSGeert Uytterhoeven  power-domains:
99f98d7c3aSGeert Uytterhoeven    maxItems: 1
100f98d7c3aSGeert Uytterhoeven
101c3e2485dSMaxime Ripard  big-endian:
102c3e2485dSMaxime Ripard    $ref: /schemas/types.yaml#/definitions/flag
103c3e2485dSMaxime Ripard    description:
104c3e2485dSMaxime Ripard      Set this flag for HCDs with big endian descriptors and big
105c3e2485dSMaxime Ripard      endian registers.
106c3e2485dSMaxime Ripard
107c3e2485dSMaxime Ripard  big-endian-desc:
108c3e2485dSMaxime Ripard    $ref: /schemas/types.yaml#/definitions/flag
109c3e2485dSMaxime Ripard    description:
110c3e2485dSMaxime Ripard      Set this flag for HCDs with big endian descriptors.
111c3e2485dSMaxime Ripard
112c3e2485dSMaxime Ripard  big-endian-regs:
113c3e2485dSMaxime Ripard    $ref: /schemas/types.yaml#/definitions/flag
114c3e2485dSMaxime Ripard    description:
115c3e2485dSMaxime Ripard      Set this flag for HCDs with big endian registers.
116c3e2485dSMaxime Ripard
117c3e2485dSMaxime Ripard  has-transaction-translator:
118c3e2485dSMaxime Ripard    $ref: /schemas/types.yaml#/definitions/flag
119c3e2485dSMaxime Ripard    description:
120c3e2485dSMaxime Ripard      Set this flag if EHCI has a Transaction Translator built into
121c3e2485dSMaxime Ripard      the root hub.
122c3e2485dSMaxime Ripard
123c3e2485dSMaxime Ripard  needs-reset-on-resume:
124c3e2485dSMaxime Ripard    $ref: /schemas/types.yaml#/definitions/flag
125c3e2485dSMaxime Ripard    description:
126c3e2485dSMaxime Ripard      Set this flag to force EHCI reset after resume.
127c3e2485dSMaxime Ripard
12881d23855SÁlvaro Fernández Rojas  spurious-oc:
12981d23855SÁlvaro Fernández Rojas    $ref: /schemas/types.yaml#/definitions/flag
13081d23855SÁlvaro Fernández Rojas    description:
13181d23855SÁlvaro Fernández Rojas      Set this flag to indicate that the hardware sometimes turns on
13281d23855SÁlvaro Fernández Rojas      the OC bit when an over-current isn't actually present.
13381d23855SÁlvaro Fernández Rojas
1343aa3c66aSMaxime Ripard  phys:
1359faa1c8fSGeert Uytterhoeven    minItems: 1
1369faa1c8fSGeert Uytterhoeven    maxItems: 3
1373aa3c66aSMaxime Ripard
1383aa3c66aSMaxime Ripard  phy-names:
1393aa3c66aSMaxime Ripard    const: usb
140c3e2485dSMaxime Ripard
14159ffe4edSAndre Przywara  iommus:
14259ffe4edSAndre Przywara    maxItems: 1
14359ffe4edSAndre Przywara
14431f21e2aSBiju Das  dr_mode:
14531f21e2aSBiju Das    enum:
14631f21e2aSBiju Das      - host
14731f21e2aSBiju Das      - otg
14831f21e2aSBiju Das
149c3e2485dSMaxime Ripardrequired:
150c3e2485dSMaxime Ripard  - compatible
151c3e2485dSMaxime Ripard  - reg
152c3e2485dSMaxime Ripard  - interrupts
153c3e2485dSMaxime Ripard
154817f9ee0SFabrice GasnierunevaluatedProperties: false
155c3e2485dSMaxime Ripard
156c3e2485dSMaxime Ripardexamples:
157c3e2485dSMaxime Ripard  - |
1585ff88144SMaxime Ripard    usb@e0000300 {
1595ae01e76SRob Herring        compatible = "ibm,usb-ehci-440epx", "usb-ehci";
160c3e2485dSMaxime Ripard        interrupt-parent = <&UIC0>;
161c3e2485dSMaxime Ripard        interrupts = <0x1a 4>;
162fba56184SRob Herring        reg = <0xe0000300 90>, <0xe0000390 70>;
163c3e2485dSMaxime Ripard        big-endian;
164c3e2485dSMaxime Ripard    };
165c3e2485dSMaxime Ripard
166c3e2485dSMaxime Ripard  - |
167c3e2485dSMaxime Ripard    ehci0: usb@1c14000 {
168c3e2485dSMaxime Ripard        compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
169c3e2485dSMaxime Ripard        reg = <0x01c14000 0x100>;
170c3e2485dSMaxime Ripard        interrupts = <39>;
171c3e2485dSMaxime Ripard        clocks = <&ahb_gates 1>;
172c3e2485dSMaxime Ripard        phys = <&usbphy 1>;
1733aa3c66aSMaxime Ripard        phy-names = "usb";
174c3e2485dSMaxime Ripard    };
175c3e2485dSMaxime Ripard
176c3e2485dSMaxime Ripard...
177