1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/usb/ci-hdrc-usb2.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: USB2 ChipIdea USB controller
10 - Xu Yang <xu.yang_2@nxp.com>
11 - Peng Fan <peng.fan@nxp.com>
28 - nvidia,tegra114-ehci
29 - nvidia,tegra124-ehci
30 - nvidia,tegra210-ehci
31 - const: nvidia,tegra30-ehci
47 - const: fsl,imx27-usb
52 - const: fsl,imx7ulp-usb
53 - const: fsl,imx6ul-usb
58 - const: fsl,imx7d-usb
59 - const: fsl,imx27-usb
64 - const: fsl,imx6ul-usb
65 - const: fsl,imx27-usb
67 - const: xlnx,zynq-usb-2.20a
68 - const: chipidea,usb2
104 interrupt threshold control register control, the setting should be
105 aligned with ITC bits at register USBCMD.
106 $ref: /schemas/types.yaml#/definitions/uint32
110 it is vendor dependent, the required value should be aligned with
111 AHBBRST at SBUSCFG, the range is from 0x0 to 0x7. This property is
112 used to change AHB burst configuration, check the chipidea spec for
113 meaning of each value. If this property is not existed, it will use
115 $ref: /schemas/types.yaml#/definitions/uint32
121 it is vendor dependent, the tx burst size in dword (4 bytes), This
122 register represents the maximum length of a the burst in 32-bit
123 words while moving data from system memory to the USB bus, the value
124 of this property will only take effect if property "ahb-burst-config"
125 is set to 0, if this property is missing the reset default of the
126 hardware implementation will be used.
127 $ref: /schemas/types.yaml#/definitions/uint32
133 it is vendor dependent, the rx burst size in dword (4 bytes), This
134 register represents the maximum length of a the burst in 32-bit words
135 while moving data from the USB bus to system memory, the value of
136 this property will only take effect if property "ahb-burst-config"
137 is set to 0, if this property is missing the reset default of the
138 hardware implementation will be used.
139 $ref: /schemas/types.yaml#/definitions/uint32
145 Phandles to external connector devices. First phandle should point
146 to external connector, which provide "USB" cable events, the second
147 should point to external connector device, which provide "USB-HOST"
148 cable events. If one of the external connector devices is not
149 required, empty <0> phandle should be specified.
150 $ref: /schemas/types.yaml#/definitions/phandle-array
153 - description: vbus extcon
154 - description: id extcon
156 phy-clkgate-delay-us:
158 The delay time (us) between putting the PHY into low power mode and
159 gating the PHY clock.
161 non-zero-ttctrl-ttha:
163 After setting this property, the value of register ttctrl.ttha
164 will be 0x7f; if not, the value will be 0x0, this is the default
165 value. It needs to be very carefully for setting this property, it
166 is recommended that consult with your IC engineer before setting
167 this value. On the most of chipidea platforms, the "usage_tt" flag
168 at RTL is 0, so this property only affects siTD.
170 If this property is not set, the max packet size is 1023 bytes, and
171 if the total of packet size for previous transactions are more than
172 256 bytes, it can't accept any transactions within this frame. The
173 use case is single transaction, but higher frame rate.
175 If this property is set, the max packet size is 188 bytes, it can
176 handle more transactions than above case, it can accept transactions
177 until it considers the left room size within frame is less than 188
178 bytes, software needs to make sure it does not send more than 90%
179 maximum_periodic_data_per_frame. The use case is multiple
180 transactions, but less frame rate.
185 The mux control for toggling host/device output of this controller.
186 It's expected that a mux state of 0 indicates device mode and a mux
187 state of 1 indicates host mode.
194 description: A phandle to the OPP table containing the performance states.
195 $ref: /schemas/types.yaml#/definitions/phandle
199 Names for optional pin modes in "default", "host", "device".
200 In case of HSIC-mode, "idle" and "active" pin modes are mandatory.
201 In this case, the "idle" state needs to pull down the data and
202 strobe pin and the "active" state needs to pull up the strobe pin.
229 Phandler of TCSR node with two argument that indicate register
230 offset, and phy index
231 $ref: /schemas/types.yaml#/definitions/phandle-array
233 - description: phandle to TCSR node
234 - description: register offset
235 - description: phy index
238 description: reference to the VBUS regulator.
242 Phandler of non-core register device, with one argument that
243 indicate usb controller index
244 $ref: /schemas/types.yaml#/definitions/phandle-array
247 - description: phandle to usbmisc node
248 - description: index of usb controller
251 description: phandle for the anatop node.
252 $ref: /schemas/types.yaml#/definitions/phandle
254 disable-over-current:
256 description: disable over current detect
258 over-current-active-low:
260 description: over current signal polarity is active low
262 over-current-active-high:
265 Over current signal polarity is active high. It's recommended to
266 specify the over current polarity.
270 description: power signal polarity is active high
272 external-vbus-divider:
274 description: enables off-chip resistor divider for Vbus
276 samsung,picophy-pre-emp-curr-control:
278 HS Transmitter Pre-Emphasis Current Control. This signal controls
279 the amount of current sourced to the USB_OTG*_DP and USB_OTG*_DN
280 pins after a J-to-K or K-to-J transition. The range is from 0x0 to
281 0x3, the default value is 0x1. Details can refer to TXPREEMPAMPTUNE0
282 bits of USBNC_n_PHY_CFG1.
283 $ref: /schemas/types.yaml#/definitions/uint32
287 samsung,picophy-dc-vol-level-adjust:
289 HS DC Voltage Level Adjustment. Adjust the high-speed transmitter DC
290 level voltage. The range is from 0x0 to 0xf, the default value is
291 0x3. Details can refer to TXVREFTUNE0 bits of USBNC_n_PHY_CFG1.
292 $ref: /schemas/types.yaml#/definitions/uint32
296 fsl,picophy-rise-fall-time-adjust:
298 HS Transmitter Rise/Fall Time Adjustment. Adjust the rise/fall times
299 of the high-speed transmitter waveform. It has no unit. The rise/fall
300 time will be increased or decreased by a certain percentage relative
301 to design default time. (0:-10%; 1:design default; 2:+15%; 3:+20%)
302 Details can refer to TXRISETUNE0 bit of USBNC_n_PHY_CFG1.
303 $ref: /schemas/types.yaml#/definitions/uint32
309 description: phandle for the PHY device. Use "phys" instead.
310 $ref: /schemas/types.yaml#/definitions/phandle
314 description: phandle of usb phy that connects to the port. Use "phys" instead.
315 $ref: /schemas/types.yaml#/definitions/phandle
319 description: phandle of usb phy that connects to the port. Use "phys" instead.
320 $ref: /schemas/types.yaml#/definitions/phandle
323 nvidia,needs-double-reset:
324 description: Indicates double reset or not.
330 Any connector to the data bus of this controller should be modelled
331 using the OF graph bindings specified, if the "usb-role-switch"
333 $ref: /schemas/graph.yaml#/properties/port
340 additionalProperties: false
343 description: The phy child node for Qcom chips.
345 $ref: /schemas/phy/qcom,usb-hs-phy.yaml
348 port: [ usb-role-switch ]
349 mux-controls: [ mux-control-names ]
357 - $ref: usb-hcd.yaml#
358 - $ref: usb-drd.yaml#
393 - nvidia,tegra114-udc
394 - nvidia,tegra124-udc
396 - xlnx,zynq-usb-2.20a
400 disable-over-current: false
401 over-current-active-low: false
402 over-current-active-high: false
403 power-active-high: false
404 external-vbus-divider: false
405 samsung,picophy-pre-emp-curr-control: false
406 samsung,picophy-dc-vol-level-adjust: false
408 unevaluatedProperties: false
412 #include <dt-bindings/interrupt-controller/arm-gic.h>
413 #include <dt-bindings/clock/berlin2.h>
416 compatible = "chipidea,usb2";
417 reg = <0xf7ed0000 0x10000>;
418 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
419 clocks = <&chip CLKID_USB0>;
421 phy-names = "usb-phy";
422 vbus-supply = <®_usb0_vbus>;
423 itc-setting = <0x4>; /* 4 micro-frames */
424 /* Incremental burst of unspecified length */
425 ahb-burst-config = <0x0>;
426 tx-burst-size-dword = <0x10>; /* 64 bytes */
427 rx-burst-size-dword = <0x10>;
428 extcon = <0>, <&usb_id>;
429 phy-clkgate-delay-us = <400>;
430 mux-controls = <&usb_switch>;
431 mux-control-names = "usb_switch";
436 #include <dt-bindings/interrupt-controller/arm-gic.h>
437 #include <dt-bindings/clock/imx6qdl-clock.h>
440 compatible = "fsl,imx6q-usb", "fsl,imx27-usb";
441 reg = <0x02184400 0x200>;
442 interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
443 clocks = <&clks IMX6QDL_CLK_USBOH3>;
444 fsl,usbphy = <&usbphynop1>;
445 fsl,usbmisc = <&usbmisc 2>;
448 ahb-burst-config = <0x0>;
449 tx-burst-size-dword = <0x10>;
450 rx-burst-size-dword = <0x10>;
451 pinctrl-names = "idle", "active";
452 pinctrl-0 = <&pinctrl_usbh2_idle>;
453 pinctrl-1 = <&pinctrl_usbh2_active>;
454 #address-cells = <1>;
458 compatible = "usb424,9730";