1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/mmc/mmc-controller.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: MMC Controller Common Properties
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Ulf Hansson <ulf.hansson@linaro.org>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot  These properties are common to multiple MMC host controllers. Any host
14c66ec88fSEmmanuel Vadot  that requires the respective functionality should implement them using
15c66ec88fSEmmanuel Vadot  these definitions.
16c66ec88fSEmmanuel Vadot
176be33864SEmmanuel Vadot  It is possible to assign a fixed index mmcN to an MMC host controller
186be33864SEmmanuel Vadot  (and the corresponding mmcblkN devices) by defining an alias in the
196be33864SEmmanuel Vadot  /aliases device tree node.
206be33864SEmmanuel Vadot
21c66ec88fSEmmanuel Vadotproperties:
22c66ec88fSEmmanuel Vadot  $nodename:
23c66ec88fSEmmanuel Vadot    pattern: "^mmc(@.*)?$"
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot  "#address-cells":
26c66ec88fSEmmanuel Vadot    const: 1
27c66ec88fSEmmanuel Vadot    description: |
28c66ec88fSEmmanuel Vadot      The cell is the slot ID if a function subnode is used.
29c66ec88fSEmmanuel Vadot
30c66ec88fSEmmanuel Vadot  "#size-cells":
31c66ec88fSEmmanuel Vadot    const: 0
32c66ec88fSEmmanuel Vadot
33c66ec88fSEmmanuel Vadot  # Card Detection.
34c66ec88fSEmmanuel Vadot  # If none of these properties are supplied, the host native card
35c66ec88fSEmmanuel Vadot  # detect will be used. Only one of them should be provided.
36c66ec88fSEmmanuel Vadot
37c66ec88fSEmmanuel Vadot  broken-cd:
38c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
39c66ec88fSEmmanuel Vadot    description:
40c66ec88fSEmmanuel Vadot      There is no card detection available; polling must be used.
41c66ec88fSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot  cd-gpios:
435def4c47SEmmanuel Vadot    maxItems: 1
44c66ec88fSEmmanuel Vadot    description:
45c66ec88fSEmmanuel Vadot      The card detection will be done using the GPIO provided.
46c66ec88fSEmmanuel Vadot
47c66ec88fSEmmanuel Vadot  non-removable:
48c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
49c66ec88fSEmmanuel Vadot    description:
50c66ec88fSEmmanuel Vadot      Non-removable slot (like eMMC); assume always present.
51c66ec88fSEmmanuel Vadot
52c66ec88fSEmmanuel Vadot  # *NOTE* on CD and WP polarity. To use common for all SD/MMC host
53c66ec88fSEmmanuel Vadot  # controllers line polarity properties, we have to fix the meaning
54c66ec88fSEmmanuel Vadot  # of the "normal" and "inverted" line levels. We choose to follow
55c66ec88fSEmmanuel Vadot  # the SDHCI standard, which specifies both those lines as "active
56c66ec88fSEmmanuel Vadot  # low." Therefore, using the "cd-inverted" property means, that the
57c66ec88fSEmmanuel Vadot  # CD line is active high, i.e. it is high, when a card is
58c66ec88fSEmmanuel Vadot  # inserted. Similar logic applies to the "wp-inverted" property.
59c66ec88fSEmmanuel Vadot  #
60c66ec88fSEmmanuel Vadot  # CD and WP lines can be implemented on the hardware in one of two
61c66ec88fSEmmanuel Vadot  # ways: as GPIOs, specified in cd-gpios and wp-gpios properties, or
62c66ec88fSEmmanuel Vadot  # as dedicated pins. Polarity of dedicated pins can be specified,
63c66ec88fSEmmanuel Vadot  # using *-inverted properties. GPIO polarity can also be specified
64c66ec88fSEmmanuel Vadot  # using the GPIO_ACTIVE_LOW flag. This creates an ambiguity in the
65c66ec88fSEmmanuel Vadot  # latter case. We choose to use the XOR logic for GPIO CD and WP
66c66ec88fSEmmanuel Vadot  # lines.  This means, the two properties are "superimposed," for
67c66ec88fSEmmanuel Vadot  # example leaving the GPIO_ACTIVE_LOW flag clear and specifying the
68c66ec88fSEmmanuel Vadot  # respective *-inverted property property results in a
69c66ec88fSEmmanuel Vadot  # double-inversion and actually means the "normal" line polarity is
70c66ec88fSEmmanuel Vadot  # in effect.
71c66ec88fSEmmanuel Vadot  wp-inverted:
72c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
73c66ec88fSEmmanuel Vadot    description:
74c66ec88fSEmmanuel Vadot      The Write Protect line polarity is inverted.
75c66ec88fSEmmanuel Vadot
76c66ec88fSEmmanuel Vadot  cd-inverted:
77c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
78c66ec88fSEmmanuel Vadot    description:
79c66ec88fSEmmanuel Vadot      The CD line polarity is inverted.
80c66ec88fSEmmanuel Vadot
81c66ec88fSEmmanuel Vadot  # Other properties
82c66ec88fSEmmanuel Vadot
83c66ec88fSEmmanuel Vadot  bus-width:
84c66ec88fSEmmanuel Vadot    description:
85c66ec88fSEmmanuel Vadot      Number of data lines.
86c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
87c66ec88fSEmmanuel Vadot    enum: [1, 4, 8]
88c66ec88fSEmmanuel Vadot    default: 1
89c66ec88fSEmmanuel Vadot
90c66ec88fSEmmanuel Vadot  max-frequency:
917ef62cebSEmmanuel Vadot    description: |
927ef62cebSEmmanuel Vadot      Maximum operating frequency of the bus:
937ef62cebSEmmanuel Vadot        - for eMMC, the maximum supported frequency is 200MHz,
947ef62cebSEmmanuel Vadot        - for SD/SDIO cards the SDR104 mode has a max supported
957ef62cebSEmmanuel Vadot          frequency of 208MHz,
967ef62cebSEmmanuel Vadot        - some mmc host controllers do support a max frequency upto
977ef62cebSEmmanuel Vadot          384MHz.
987ef62cebSEmmanuel Vadot      So, lets keep the maximum supported value here.
997ef62cebSEmmanuel Vadot
100c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
101c66ec88fSEmmanuel Vadot    minimum: 400000
1027ef62cebSEmmanuel Vadot    maximum: 384000000
103c66ec88fSEmmanuel Vadot
104c66ec88fSEmmanuel Vadot  disable-wp:
105c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
106c66ec88fSEmmanuel Vadot    description:
107c66ec88fSEmmanuel Vadot      When set, no physical write-protect line is present. This
108c66ec88fSEmmanuel Vadot      property should only be specified when the controller has a
109c66ec88fSEmmanuel Vadot      dedicated write-protect detection logic. If a GPIO is always used
110c66ec88fSEmmanuel Vadot      for the write-protect detection logic, it is sufficient to not
111c66ec88fSEmmanuel Vadot      specify the wp-gpios property in the absence of a write-protect
112c66ec88fSEmmanuel Vadot      line. Not used in combination with eMMC or SDIO.
113c66ec88fSEmmanuel Vadot
114c66ec88fSEmmanuel Vadot  wp-gpios:
1155def4c47SEmmanuel Vadot    maxItems: 1
116c66ec88fSEmmanuel Vadot    description:
117c66ec88fSEmmanuel Vadot      GPIO to use for the write-protect detection.
118c66ec88fSEmmanuel Vadot
119c66ec88fSEmmanuel Vadot  cd-debounce-delay-ms:
120c66ec88fSEmmanuel Vadot    description:
121c66ec88fSEmmanuel Vadot      Set delay time before detecting card after card insert
122c66ec88fSEmmanuel Vadot      interrupt.
123c66ec88fSEmmanuel Vadot
124c66ec88fSEmmanuel Vadot  no-1-8-v:
125c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
126c66ec88fSEmmanuel Vadot    description:
127c66ec88fSEmmanuel Vadot      When specified, denotes that 1.8V card voltage is not supported
128c66ec88fSEmmanuel Vadot      on this system, even if the controller claims it.
129c66ec88fSEmmanuel Vadot
130c66ec88fSEmmanuel Vadot  cap-sd-highspeed:
131c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
132c66ec88fSEmmanuel Vadot    description:
133c66ec88fSEmmanuel Vadot      SD high-speed timing is supported.
134c66ec88fSEmmanuel Vadot
135c66ec88fSEmmanuel Vadot  cap-mmc-highspeed:
136c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
137c66ec88fSEmmanuel Vadot    description:
138c66ec88fSEmmanuel Vadot      MMC high-speed timing is supported.
139c66ec88fSEmmanuel Vadot
140c66ec88fSEmmanuel Vadot  sd-uhs-sdr12:
141c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
142c66ec88fSEmmanuel Vadot    description:
143c66ec88fSEmmanuel Vadot      SD UHS SDR12 speed is supported.
144c66ec88fSEmmanuel Vadot
145c66ec88fSEmmanuel Vadot  sd-uhs-sdr25:
146c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
147c66ec88fSEmmanuel Vadot    description:
148c66ec88fSEmmanuel Vadot      SD UHS SDR25 speed is supported.
149c66ec88fSEmmanuel Vadot
150c66ec88fSEmmanuel Vadot  sd-uhs-sdr50:
151c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
152c66ec88fSEmmanuel Vadot    description:
153c66ec88fSEmmanuel Vadot      SD UHS SDR50 speed is supported.
154c66ec88fSEmmanuel Vadot
155c66ec88fSEmmanuel Vadot  sd-uhs-sdr104:
156c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
157c66ec88fSEmmanuel Vadot    description:
158c66ec88fSEmmanuel Vadot      SD UHS SDR104 speed is supported.
159c66ec88fSEmmanuel Vadot
160c66ec88fSEmmanuel Vadot  sd-uhs-ddr50:
161c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
162c66ec88fSEmmanuel Vadot    description:
163c66ec88fSEmmanuel Vadot      SD UHS DDR50 speed is supported.
164c66ec88fSEmmanuel Vadot
165c66ec88fSEmmanuel Vadot  cap-power-off-card:
166c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
167c66ec88fSEmmanuel Vadot    description:
168c66ec88fSEmmanuel Vadot      Powering off the card is safe.
169c66ec88fSEmmanuel Vadot
170c66ec88fSEmmanuel Vadot  cap-mmc-hw-reset:
171c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
172c66ec88fSEmmanuel Vadot    description:
173c66ec88fSEmmanuel Vadot      eMMC hardware reset is supported
174c66ec88fSEmmanuel Vadot
175c66ec88fSEmmanuel Vadot  cap-sdio-irq:
176c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
177c66ec88fSEmmanuel Vadot    description:
178c66ec88fSEmmanuel Vadot      enable SDIO IRQ signalling on this interface
179c66ec88fSEmmanuel Vadot
180c66ec88fSEmmanuel Vadot  full-pwr-cycle:
181c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
182c66ec88fSEmmanuel Vadot    description:
183c66ec88fSEmmanuel Vadot      Full power cycle of the card is supported.
184c66ec88fSEmmanuel Vadot
185c66ec88fSEmmanuel Vadot  full-pwr-cycle-in-suspend:
186c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
187c66ec88fSEmmanuel Vadot    description:
188c66ec88fSEmmanuel Vadot      Full power cycle of the card in suspend is supported.
189c66ec88fSEmmanuel Vadot
190c66ec88fSEmmanuel Vadot  mmc-ddr-1_2v:
191c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
192c66ec88fSEmmanuel Vadot    description:
193c66ec88fSEmmanuel Vadot      eMMC high-speed DDR mode (1.2V I/O) is supported.
194c66ec88fSEmmanuel Vadot
195c66ec88fSEmmanuel Vadot  mmc-ddr-1_8v:
196c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
197c66ec88fSEmmanuel Vadot    description:
198c66ec88fSEmmanuel Vadot      eMMC high-speed DDR mode (1.8V I/O) is supported.
199c66ec88fSEmmanuel Vadot
200c66ec88fSEmmanuel Vadot  mmc-ddr-3_3v:
201c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
202c66ec88fSEmmanuel Vadot    description:
203c66ec88fSEmmanuel Vadot      eMMC high-speed DDR mode (3.3V I/O) is supported.
204c66ec88fSEmmanuel Vadot
205c66ec88fSEmmanuel Vadot  mmc-hs200-1_2v:
206c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
207c66ec88fSEmmanuel Vadot    description:
208c66ec88fSEmmanuel Vadot      eMMC HS200 mode (1.2V I/O) is supported.
209c66ec88fSEmmanuel Vadot
210c66ec88fSEmmanuel Vadot  mmc-hs200-1_8v:
211c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
212c66ec88fSEmmanuel Vadot    description:
213c66ec88fSEmmanuel Vadot      eMMC HS200 mode (1.8V I/O) is supported.
214c66ec88fSEmmanuel Vadot
215c66ec88fSEmmanuel Vadot  mmc-hs400-1_2v:
216c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
217c66ec88fSEmmanuel Vadot    description:
218c66ec88fSEmmanuel Vadot      eMMC HS400 mode (1.2V I/O) is supported.
219c66ec88fSEmmanuel Vadot
220c66ec88fSEmmanuel Vadot  mmc-hs400-1_8v:
221c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
222c66ec88fSEmmanuel Vadot    description:
223c66ec88fSEmmanuel Vadot      eMMC HS400 mode (1.8V I/O) is supported.
224c66ec88fSEmmanuel Vadot
225c66ec88fSEmmanuel Vadot  mmc-hs400-enhanced-strobe:
226c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
227c66ec88fSEmmanuel Vadot    description:
228c66ec88fSEmmanuel Vadot      eMMC HS400 enhanced strobe mode is supported
229c66ec88fSEmmanuel Vadot
2305956d97fSEmmanuel Vadot  no-mmc-hs400:
2315956d97fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
2325956d97fSEmmanuel Vadot    description:
2335956d97fSEmmanuel Vadot      All eMMC HS400 modes are not supported.
2345956d97fSEmmanuel Vadot
235c66ec88fSEmmanuel Vadot  dsr:
236c66ec88fSEmmanuel Vadot    description:
237c66ec88fSEmmanuel Vadot      Value the card Driver Stage Register (DSR) should be programmed
238c66ec88fSEmmanuel Vadot      with.
239c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
240c66ec88fSEmmanuel Vadot    minimum: 0
241c66ec88fSEmmanuel Vadot    maximum: 0xffff
242c66ec88fSEmmanuel Vadot
243c66ec88fSEmmanuel Vadot  no-sdio:
244c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
245c66ec88fSEmmanuel Vadot    description:
246c66ec88fSEmmanuel Vadot      Controller is limited to send SDIO commands during
247c66ec88fSEmmanuel Vadot      initialization.
248c66ec88fSEmmanuel Vadot
249c66ec88fSEmmanuel Vadot  no-sd:
250c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
251c66ec88fSEmmanuel Vadot    description:
252c66ec88fSEmmanuel Vadot      Controller is limited to send SD commands during initialization.
253c66ec88fSEmmanuel Vadot
254c66ec88fSEmmanuel Vadot  no-mmc:
255c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
256c66ec88fSEmmanuel Vadot    description:
257c66ec88fSEmmanuel Vadot      Controller is limited to send MMC commands during
258c66ec88fSEmmanuel Vadot      initialization.
259c66ec88fSEmmanuel Vadot
260c66ec88fSEmmanuel Vadot  fixed-emmc-driver-type:
261c66ec88fSEmmanuel Vadot    description:
262c66ec88fSEmmanuel Vadot      For non-removable eMMC, enforce this driver type. The value is
263c66ec88fSEmmanuel Vadot      the driver type as specified in the eMMC specification (table
264c66ec88fSEmmanuel Vadot      206 in spec version 5.1)
265c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
266c66ec88fSEmmanuel Vadot    minimum: 0
267c66ec88fSEmmanuel Vadot    maximum: 4
268c66ec88fSEmmanuel Vadot
269c66ec88fSEmmanuel Vadot  post-power-on-delay-ms:
270c66ec88fSEmmanuel Vadot    description:
271c66ec88fSEmmanuel Vadot      It was invented for MMC pwrseq-simple which could be referred to
272*aa1a8ff2SEmmanuel Vadot      mmc-pwrseq-simple.yaml. But now it\'s reused as a tunable delay
273c66ec88fSEmmanuel Vadot      waiting for I/O signalling and card power supply to be stable,
274c66ec88fSEmmanuel Vadot      regardless of whether pwrseq-simple is used. Default to 10ms if
275c66ec88fSEmmanuel Vadot      no available.
276c66ec88fSEmmanuel Vadot    default: 10
277c66ec88fSEmmanuel Vadot
278c66ec88fSEmmanuel Vadot  supports-cqe:
279c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
280c66ec88fSEmmanuel Vadot    description:
281c66ec88fSEmmanuel Vadot      The presence of this property indicates that the corresponding
282c66ec88fSEmmanuel Vadot      MMC host controller supports HW command queue feature.
283c66ec88fSEmmanuel Vadot
284c66ec88fSEmmanuel Vadot  disable-cqe-dcmd:
285c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
286c66ec88fSEmmanuel Vadot    description:
287c66ec88fSEmmanuel Vadot      The presence of this property indicates that the MMC
288c66ec88fSEmmanuel Vadot      controller\'s command queue engine (CQE) does not support direct
289c66ec88fSEmmanuel Vadot      commands (DCMDs).
290c66ec88fSEmmanuel Vadot
291c66ec88fSEmmanuel Vadot  keep-power-in-suspend:
292c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
293c66ec88fSEmmanuel Vadot    description:
294c66ec88fSEmmanuel Vadot      SDIO only. Preserves card power during a suspend/resume cycle.
295c66ec88fSEmmanuel Vadot
296c66ec88fSEmmanuel Vadot  wakeup-source:
297c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
298c66ec88fSEmmanuel Vadot    description:
299c66ec88fSEmmanuel Vadot      SDIO only. Enables wake up of host system on SDIO IRQ assertion.
300c66ec88fSEmmanuel Vadot
301c66ec88fSEmmanuel Vadot  vmmc-supply:
302c66ec88fSEmmanuel Vadot    description:
303c66ec88fSEmmanuel Vadot      Supply for the card power
304c66ec88fSEmmanuel Vadot
305c66ec88fSEmmanuel Vadot  vqmmc-supply:
306c66ec88fSEmmanuel Vadot    description:
307d5b0e70fSEmmanuel Vadot      Supply for the bus IO line power, such as a level shifter.
308d5b0e70fSEmmanuel Vadot      If the level shifter is controlled by a GPIO line, this shall
309d5b0e70fSEmmanuel Vadot      be modeled as a "regulator-fixed" with a GPIO line for
310d5b0e70fSEmmanuel Vadot      switching the level shifter on/off.
311c66ec88fSEmmanuel Vadot
312c66ec88fSEmmanuel Vadot  mmc-pwrseq:
313c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
314c66ec88fSEmmanuel Vadot    description:
315c66ec88fSEmmanuel Vadot      System-on-Chip designs may specify a specific MMC power
316c66ec88fSEmmanuel Vadot      sequence. To successfully detect an (e)MMC/SD/SDIO card, that
317c66ec88fSEmmanuel Vadot      power sequence must be maintained while initializing the card.
318c66ec88fSEmmanuel Vadot
319c66ec88fSEmmanuel VadotpatternProperties:
320c66ec88fSEmmanuel Vadot  "^.*@[0-9]+$":
321c66ec88fSEmmanuel Vadot    type: object
322c66ec88fSEmmanuel Vadot    description: |
323c66ec88fSEmmanuel Vadot      On embedded systems the cards connected to a host may need
324c66ec88fSEmmanuel Vadot      additional properties. These can be specified in subnodes to the
325c66ec88fSEmmanuel Vadot      host controller node. The subnodes are identified by the
326c66ec88fSEmmanuel Vadot      standard \'reg\' property. Which information exactly can be
327c66ec88fSEmmanuel Vadot      specified depends on the bindings for the SDIO function driver
328c66ec88fSEmmanuel Vadot      for the subnode, as specified by the compatible string.
329c66ec88fSEmmanuel Vadot
330c66ec88fSEmmanuel Vadot    properties:
331c66ec88fSEmmanuel Vadot      compatible:
332c66ec88fSEmmanuel Vadot        description: |
333c66ec88fSEmmanuel Vadot          Name of SDIO function following generic names recommended
334c66ec88fSEmmanuel Vadot          practice
335c66ec88fSEmmanuel Vadot
336c66ec88fSEmmanuel Vadot      reg:
337c66ec88fSEmmanuel Vadot        items:
338c66ec88fSEmmanuel Vadot          - minimum: 0
339c66ec88fSEmmanuel Vadot            maximum: 7
340c66ec88fSEmmanuel Vadot            description:
341c66ec88fSEmmanuel Vadot              Must contain the SDIO function number of the function this
342c66ec88fSEmmanuel Vadot              subnode describes. A value of 0 denotes the memory SD
343c66ec88fSEmmanuel Vadot              function, values from 1 to 7 denote the SDIO functions.
344c66ec88fSEmmanuel Vadot
345c66ec88fSEmmanuel Vadot    required:
346c66ec88fSEmmanuel Vadot      - reg
347c66ec88fSEmmanuel Vadot
348c66ec88fSEmmanuel Vadot  "^clk-phase-(legacy|sd-hs|mmc-(hs|hs[24]00|ddr52)|uhs-(sdr(12|25|50|104)|ddr50))$":
349c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
350c66ec88fSEmmanuel Vadot
351c66ec88fSEmmanuel Vadot    minItems: 2
352c66ec88fSEmmanuel Vadot    maxItems: 2
353c66ec88fSEmmanuel Vadot    items:
354c66ec88fSEmmanuel Vadot      minimum: 0
355c66ec88fSEmmanuel Vadot      maximum: 359
356c66ec88fSEmmanuel Vadot      description:
357c66ec88fSEmmanuel Vadot        Set the clock (phase) delays which are to be configured in the
358c66ec88fSEmmanuel Vadot        controller while switching to particular speed mode. These values
359c66ec88fSEmmanuel Vadot        are in pair of degrees.
360c66ec88fSEmmanuel Vadot
361c66ec88fSEmmanuel Vadotdependencies:
362c66ec88fSEmmanuel Vadot  cd-debounce-delay-ms: [ cd-gpios ]
363c66ec88fSEmmanuel Vadot  fixed-emmc-driver-type: [ non-removable ]
364c66ec88fSEmmanuel Vadot
3656be33864SEmmanuel VadotadditionalProperties: true
3666be33864SEmmanuel Vadot
367c66ec88fSEmmanuel Vadotexamples:
368c66ec88fSEmmanuel Vadot  - |
369c66ec88fSEmmanuel Vadot    mmc3: mmc@1c12000 {
370c66ec88fSEmmanuel Vadot        #address-cells = <1>;
371c66ec88fSEmmanuel Vadot        #size-cells = <0>;
372c66ec88fSEmmanuel Vadot        reg = <0x1c12000 0x200>;
373c66ec88fSEmmanuel Vadot        pinctrl-names = "default";
374c66ec88fSEmmanuel Vadot        pinctrl-0 = <&mmc3_pins_a>;
375c66ec88fSEmmanuel Vadot        vmmc-supply = <&reg_vmmc3>;
376c66ec88fSEmmanuel Vadot        bus-width = <4>;
377c66ec88fSEmmanuel Vadot        non-removable;
378c66ec88fSEmmanuel Vadot        mmc-pwrseq = <&sdhci0_pwrseq>;
379c66ec88fSEmmanuel Vadot
3805956d97fSEmmanuel Vadot        brcmf: wifi@1 {
381c66ec88fSEmmanuel Vadot            reg = <1>;
3825956d97fSEmmanuel Vadot            compatible = "brcm,bcm4329-fmac";
383c66ec88fSEmmanuel Vadot            interrupt-parent = <&pio>;
384c66ec88fSEmmanuel Vadot            interrupts = <10 8>;
385c66ec88fSEmmanuel Vadot            interrupt-names = "host-wake";
386c66ec88fSEmmanuel Vadot        };
387c66ec88fSEmmanuel Vadot    };
388