xref: /linux/Documentation/devicetree/bindings/usb/chipidea,usb2-common.yaml (revision 3bf4c5970ca8c4bcd8312a3e9d577894e438c3a1)
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        maxItems: 1
101      - description: id extcon
102        maxItems: 1
103
104  phy-clkgate-delay-us:
105    description:
106      The delay time (us) between putting the PHY into low power mode and
107      gating the PHY clock.
108
109  non-zero-ttctrl-ttha:
110    description:
111      After setting this property, the value of register ttctrl.ttha
112      will be 0x7f; if not, the value will be 0x0, this is the default
113      value. It needs to be very carefully for setting this property, it
114      is recommended that consult with your IC engineer before setting
115      this value.  On the most of chipidea platforms, the "usage_tt" flag
116      at RTL is 0, so this property only affects siTD.
117
118      If this property is not set, the max packet size is 1023 bytes, and
119      if the total of packet size for previous transactions are more than
120      256 bytes, it can't accept any transactions within this frame. The
121      use case is single transaction, but higher frame rate.
122
123      If this property is set, the max packet size is 188 bytes, it can
124      handle more transactions than above case, it can accept transactions
125      until it considers the left room size within frame is less than 188
126      bytes, software needs to make sure it does not send more than 90%
127      maximum_periodic_data_per_frame. The use case is multiple
128      transactions, but less frame rate.
129    type: boolean
130
131  mux-controls:
132    description:
133      The mux control for toggling host/device output of this controller.
134      It's expected that a mux state of 0 indicates device mode and a mux
135      state of 1 indicates host mode.
136    maxItems: 1
137
138  mux-control-names:
139    const: usb_switch
140
141  pinctrl-names:
142    description:
143      Names for optional pin modes in "default", "host", "device".
144      In case of HSIC-mode, "idle" and "active" pin modes are mandatory.
145      In this case, the "idle" state needs to pull down the data and
146      strobe pin and the "active" state needs to pull up the strobe pin.
147    oneOf:
148      - items:
149          - const: idle
150          - const: active
151      - items:
152          - const: default
153          - const: host
154          - const: device
155      - items:
156          - const: default
157          - enum:
158              - host
159              - device
160      - items:
161          - const: default
162
163  pinctrl-0:
164    maxItems: 1
165
166  pinctrl-1:
167    maxItems: 1
168
169  phys:
170    maxItems: 1
171
172  phy-names:
173    const: usb-phy
174
175  vbus-supply:
176    description: reference to the VBUS regulator.
177
178  usb-phy:
179    description: phandle for the PHY device. Use "phys" instead.
180    maxItems: 1
181    deprecated: true
182
183  port:
184    description:
185      Any connector to the data bus of this controller should be modelled
186      using the OF graph bindings specified, if the "usb-role-switch"
187      property is used.
188    $ref: /schemas/graph.yaml#/properties/port
189
190  reset-gpios:
191    maxItems: 1
192
193dependencies:
194  port: [ usb-role-switch ]
195  mux-controls: [ mux-control-names ]
196
197required:
198  - reg
199  - interrupts
200
201allOf:
202  - $ref: usb-hcd.yaml#
203  - $ref: usb-drd.yaml#
204
205additionalProperties: true
206