xref: /linux/Documentation/devicetree/bindings/usb/chipidea,usb2-common.yaml (revision c0c9379f235df33a12ceae94370ad80c5278324d)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/usb/chipidea,usb2-common.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: USB2 ChipIdea USB controller Common Properties
8
9maintainers:
10  - Xu Yang <xu.yang_2@nxp.com>
11
12properties:
13  reg:
14    minItems: 1
15    maxItems: 2
16
17  interrupts:
18    minItems: 1
19    maxItems: 2
20
21  clocks:
22    minItems: 1
23    maxItems: 3
24
25  clock-names:
26    minItems: 1
27    maxItems: 3
28
29  dr_mode: true
30
31  power-domains:
32    maxItems: 1
33
34  resets:
35    maxItems: 1
36
37  reset-names:
38    maxItems: 1
39
40  "#reset-cells":
41    const: 1
42
43  phy_type: true
44
45  iommus:
46    maxItems: 1
47
48  itc-setting:
49    description:
50      interrupt threshold control register control, the setting should be
51      aligned with ITC bits at register USBCMD.
52    $ref: /schemas/types.yaml#/definitions/uint32
53
54  ahb-burst-config:
55    description:
56      it is vendor dependent, the required value should be aligned with
57      AHBBRST at SBUSCFG, the range is from 0x0 to 0x7. This property is
58      used to change AHB burst configuration, check the chipidea spec for
59      meaning of each value. If this property is not existed, it will use
60      the reset value.
61    $ref: /schemas/types.yaml#/definitions/uint32
62    minimum: 0x0
63    maximum: 0x7
64
65  tx-burst-size-dword:
66    description:
67      it is vendor dependent, the tx burst size in dword (4 bytes), This
68      register represents the maximum length of a the burst in 32-bit
69      words while moving data from system memory to the USB bus, the value
70      of this property will only take effect if property "ahb-burst-config"
71      is set to 0, if this property is missing the reset default of the
72      hardware implementation will be used.
73    $ref: /schemas/types.yaml#/definitions/uint32
74    minimum: 0x0
75    maximum: 0x20
76
77  rx-burst-size-dword:
78    description:
79      it is vendor dependent, the rx burst size in dword (4 bytes), This
80      register represents the maximum length of a the burst in 32-bit words
81      while moving data from the USB bus to system memory, the value of
82      this property will only take effect if property "ahb-burst-config"
83      is set to 0, if this property is missing the reset default of the
84      hardware implementation will be used.
85    $ref: /schemas/types.yaml#/definitions/uint32
86    minimum: 0x0
87    maximum: 0x20
88
89  extcon:
90    description:
91      Phandles to external connector devices. First phandle should point
92      to external connector, which provide "USB" cable events, the second
93      should point to external connector device, which provide "USB-HOST"
94      cable events. If one of the external connector devices is not
95      required, empty <0> phandle should be specified.
96    $ref: /schemas/types.yaml#/definitions/phandle-array
97    minItems: 1
98    items:
99      - description: vbus extcon
100      - description: id extcon
101
102  phy-clkgate-delay-us:
103    description:
104      The delay time (us) between putting the PHY into low power mode and
105      gating the PHY clock.
106
107  non-zero-ttctrl-ttha:
108    description:
109      After setting this property, the value of register ttctrl.ttha
110      will be 0x7f; if not, the value will be 0x0, this is the default
111      value. It needs to be very carefully for setting this property, it
112      is recommended that consult with your IC engineer before setting
113      this value.  On the most of chipidea platforms, the "usage_tt" flag
114      at RTL is 0, so this property only affects siTD.
115
116      If this property is not set, the max packet size is 1023 bytes, and
117      if the total of packet size for previous transactions are more than
118      256 bytes, it can't accept any transactions within this frame. The
119      use case is single transaction, but higher frame rate.
120
121      If this property is set, the max packet size is 188 bytes, it can
122      handle more transactions than above case, it can accept transactions
123      until it considers the left room size within frame is less than 188
124      bytes, software needs to make sure it does not send more than 90%
125      maximum_periodic_data_per_frame. The use case is multiple
126      transactions, but less frame rate.
127    type: boolean
128
129  mux-controls:
130    description:
131      The mux control for toggling host/device output of this controller.
132      It's expected that a mux state of 0 indicates device mode and a mux
133      state of 1 indicates host mode.
134    maxItems: 1
135
136  mux-control-names:
137    const: usb_switch
138
139  pinctrl-names:
140    description:
141      Names for optional pin modes in "default", "host", "device".
142      In case of HSIC-mode, "idle" and "active" pin modes are mandatory.
143      In this case, the "idle" state needs to pull down the data and
144      strobe pin and the "active" state needs to pull up the strobe pin.
145    oneOf:
146      - items:
147          - const: idle
148          - const: active
149      - items:
150          - const: default
151          - const: host
152          - const: device
153      - items:
154          - const: default
155          - enum:
156              - host
157              - device
158      - items:
159          - const: default
160
161  pinctrl-0:
162    maxItems: 1
163
164  pinctrl-1:
165    maxItems: 1
166
167  phys:
168    maxItems: 1
169
170  phy-names:
171    const: usb-phy
172
173  vbus-supply:
174    description: reference to the VBUS regulator.
175
176  usb-phy:
177    description: phandle for the PHY device. Use "phys" instead.
178    maxItems: 1
179    deprecated: true
180
181  port:
182    description:
183      Any connector to the data bus of this controller should be modelled
184      using the OF graph bindings specified, if the "usb-role-switch"
185      property is used.
186    $ref: /schemas/graph.yaml#/properties/port
187
188  reset-gpios:
189    maxItems: 1
190
191dependencies:
192  port: [ usb-role-switch ]
193  mux-controls: [ mux-control-names ]
194
195required:
196  - reg
197  - interrupts
198
199allOf:
200  - $ref: usb-hcd.yaml#
201  - $ref: usb-drd.yaml#
202
203additionalProperties: true
204