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