xref: /freebsd-src/sys/contrib/device-tree/Bindings/usb/ci-hdrc-usb2.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
1fac71e4eSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2fac71e4eSEmmanuel Vadot%YAML 1.2
3fac71e4eSEmmanuel Vadot---
4fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/usb/ci-hdrc-usb2.yaml#
5fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6fac71e4eSEmmanuel Vadot
7fac71e4eSEmmanuel Vadottitle: USB2 ChipIdea USB controller
8fac71e4eSEmmanuel Vadot
9fac71e4eSEmmanuel Vadotmaintainers:
10fac71e4eSEmmanuel Vadot  - Xu Yang <xu.yang_2@nxp.com>
11fac71e4eSEmmanuel Vadot  - Peng Fan <peng.fan@nxp.com>
12fac71e4eSEmmanuel Vadot
13fac71e4eSEmmanuel Vadotproperties:
14fac71e4eSEmmanuel Vadot  compatible:
15fac71e4eSEmmanuel Vadot    oneOf:
16fac71e4eSEmmanuel Vadot      - enum:
17fac71e4eSEmmanuel Vadot          - chipidea,usb2
18fac71e4eSEmmanuel Vadot          - lsi,zevio-usb
1984943d6fSEmmanuel Vadot          - nuvoton,npcm750-udc
20fac71e4eSEmmanuel Vadot          - nvidia,tegra20-ehci
21fac71e4eSEmmanuel Vadot          - nvidia,tegra20-udc
22fac71e4eSEmmanuel Vadot          - nvidia,tegra30-ehci
23fac71e4eSEmmanuel Vadot          - nvidia,tegra30-udc
24fac71e4eSEmmanuel Vadot          - nvidia,tegra114-udc
25fac71e4eSEmmanuel Vadot          - nvidia,tegra124-udc
26fac71e4eSEmmanuel Vadot          - qcom,ci-hdrc
27fac71e4eSEmmanuel Vadot      - items:
28fac71e4eSEmmanuel Vadot          - enum:
29fac71e4eSEmmanuel Vadot              - nvidia,tegra114-ehci
30fac71e4eSEmmanuel Vadot              - nvidia,tegra124-ehci
31fac71e4eSEmmanuel Vadot              - nvidia,tegra210-ehci
32fac71e4eSEmmanuel Vadot          - const: nvidia,tegra30-ehci
33fac71e4eSEmmanuel Vadot      - items:
34fac71e4eSEmmanuel Vadot          - const: xlnx,zynq-usb-2.20a
35fac71e4eSEmmanuel Vadot          - const: chipidea,usb2
3684943d6fSEmmanuel Vadot      - items:
3784943d6fSEmmanuel Vadot          - enum:
3884943d6fSEmmanuel Vadot              - nuvoton,npcm845-udc
3984943d6fSEmmanuel Vadot          - const: nuvoton,npcm750-udc
40fac71e4eSEmmanuel Vadot
41fac71e4eSEmmanuel Vadot  clocks:
42fac71e4eSEmmanuel Vadot    minItems: 1
43*7d0873ebSEmmanuel Vadot    maxItems: 2
44fac71e4eSEmmanuel Vadot
45fac71e4eSEmmanuel Vadot  clock-names:
46fac71e4eSEmmanuel Vadot    minItems: 1
47*7d0873ebSEmmanuel Vadot    maxItems: 2
48fac71e4eSEmmanuel Vadot
49fac71e4eSEmmanuel Vadot  operating-points-v2:
50fac71e4eSEmmanuel Vadot    description: A phandle to the OPP table containing the performance states.
51fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
52fac71e4eSEmmanuel Vadot
53fac71e4eSEmmanuel Vadot  phy-select:
54fac71e4eSEmmanuel Vadot    description:
55fac71e4eSEmmanuel Vadot      Phandler of TCSR node with two argument that indicate register
56fac71e4eSEmmanuel Vadot      offset, and phy index
57fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle-array
58fac71e4eSEmmanuel Vadot    items:
59fac71e4eSEmmanuel Vadot      - description: phandle to TCSR node
60fac71e4eSEmmanuel Vadot      - description: register offset
61fac71e4eSEmmanuel Vadot      - description: phy index
62fac71e4eSEmmanuel Vadot
63fac71e4eSEmmanuel Vadot  nvidia,phy:
64fac71e4eSEmmanuel Vadot    description: phandle of usb phy that connects to the port. Use "phys" instead.
65fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
66fac71e4eSEmmanuel Vadot    deprecated: true
67fac71e4eSEmmanuel Vadot
68fac71e4eSEmmanuel Vadot  nvidia,needs-double-reset:
69fac71e4eSEmmanuel Vadot    description: Indicates double reset or not.
70fac71e4eSEmmanuel Vadot    type: boolean
71fac71e4eSEmmanuel Vadot    deprecated: true
72fac71e4eSEmmanuel Vadot
73fac71e4eSEmmanuel Vadot  ulpi:
74fac71e4eSEmmanuel Vadot    type: object
75fac71e4eSEmmanuel Vadot    additionalProperties: false
76fac71e4eSEmmanuel Vadot    patternProperties:
77fac71e4eSEmmanuel Vadot      "^phy(-[0-9])?$":
78fac71e4eSEmmanuel Vadot        description: The phy child node for Qcom chips.
79fac71e4eSEmmanuel Vadot        type: object
80fac71e4eSEmmanuel Vadot        $ref: /schemas/phy/qcom,usb-hs-phy.yaml
81fac71e4eSEmmanuel Vadot
82fac71e4eSEmmanuel Vadotrequired:
83fac71e4eSEmmanuel Vadot  - compatible
84fac71e4eSEmmanuel Vadot
85fac71e4eSEmmanuel VadotallOf:
86*7d0873ebSEmmanuel Vadot  - $ref: chipidea,usb2-common.yaml#
87fac71e4eSEmmanuel Vadot  - $ref: usb-hcd.yaml#
88fac71e4eSEmmanuel Vadot  - $ref: usb-drd.yaml#
89fac71e4eSEmmanuel Vadot
90fac71e4eSEmmanuel VadotunevaluatedProperties: false
91fac71e4eSEmmanuel Vadot
92fac71e4eSEmmanuel Vadotexamples:
93fac71e4eSEmmanuel Vadot  - |
94fac71e4eSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
95fac71e4eSEmmanuel Vadot    #include <dt-bindings/clock/berlin2.h>
96fac71e4eSEmmanuel Vadot
97fac71e4eSEmmanuel Vadot    usb@f7ed0000 {
98fac71e4eSEmmanuel Vadot        compatible = "chipidea,usb2";
99fac71e4eSEmmanuel Vadot        reg = <0xf7ed0000 0x10000>;
100fac71e4eSEmmanuel Vadot        interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
101fac71e4eSEmmanuel Vadot        clocks = <&chip CLKID_USB0>;
102fac71e4eSEmmanuel Vadot        phys = <&usb_phy0>;
103fac71e4eSEmmanuel Vadot        phy-names = "usb-phy";
104fac71e4eSEmmanuel Vadot        vbus-supply = <&reg_usb0_vbus>;
105fac71e4eSEmmanuel Vadot        itc-setting = <0x4>; /* 4 micro-frames */
106fac71e4eSEmmanuel Vadot         /* Incremental burst of unspecified length */
107fac71e4eSEmmanuel Vadot        ahb-burst-config = <0x0>;
108fac71e4eSEmmanuel Vadot        tx-burst-size-dword = <0x10>; /* 64 bytes */
109fac71e4eSEmmanuel Vadot        rx-burst-size-dword = <0x10>;
110fac71e4eSEmmanuel Vadot        extcon = <0>, <&usb_id>;
111fac71e4eSEmmanuel Vadot        phy-clkgate-delay-us = <400>;
112fac71e4eSEmmanuel Vadot        mux-controls = <&usb_switch>;
113fac71e4eSEmmanuel Vadot        mux-control-names = "usb_switch";
114fac71e4eSEmmanuel Vadot    };
115fac71e4eSEmmanuel Vadot
116fac71e4eSEmmanuel Vadot...
117