18dbdf23aSMasahiro Yamada# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
28dbdf23aSMasahiro Yamada%YAML 1.2
38dbdf23aSMasahiro Yamada---
48dbdf23aSMasahiro Yamada$id: http://devicetree.org/schemas/mmc/socionext,uniphier-sd.yaml#
58dbdf23aSMasahiro Yamada$schema: http://devicetree.org/meta-schemas/core.yaml#
68dbdf23aSMasahiro Yamada
78dbdf23aSMasahiro Yamadatitle: UniPhier SD/SDIO/eMMC controller
88dbdf23aSMasahiro Yamada
98dbdf23aSMasahiro Yamadamaintainers:
108dbdf23aSMasahiro Yamada  - Masahiro Yamada <yamada.masahiro@socionext.com>
118dbdf23aSMasahiro Yamada
128dbdf23aSMasahiro Yamadaproperties:
138dbdf23aSMasahiro Yamada  compatible:
148dbdf23aSMasahiro Yamada    description: version 2.91, 3.1, 3.1.1, respectively
158dbdf23aSMasahiro Yamada    enum:
168dbdf23aSMasahiro Yamada      - socionext,uniphier-sd-v2.91
178dbdf23aSMasahiro Yamada      - socionext,uniphier-sd-v3.1
188dbdf23aSMasahiro Yamada      - socionext,uniphier-sd-v3.1.1
198dbdf23aSMasahiro Yamada
208dbdf23aSMasahiro Yamada  reg:
218dbdf23aSMasahiro Yamada    maxItems: 1
228dbdf23aSMasahiro Yamada
238dbdf23aSMasahiro Yamada  interrupts:
248dbdf23aSMasahiro Yamada    maxItems: 1
258dbdf23aSMasahiro Yamada
268dbdf23aSMasahiro Yamada  clocks:
278dbdf23aSMasahiro Yamada    maxItems: 1
288dbdf23aSMasahiro Yamada
29*4df297aaSRob Herring  dmas:
30*4df297aaSRob Herring    maxItems: 1
31*4df297aaSRob Herring
32*4df297aaSRob Herring  dma-names:
33*4df297aaSRob Herring    const: rx-tx
34*4df297aaSRob Herring
358dbdf23aSMasahiro Yamada  reset-names:
368dbdf23aSMasahiro Yamada    description: |
378dbdf23aSMasahiro Yamada      There are three reset signals at maximum
388dbdf23aSMasahiro Yamada        host:   mandatory for all variants
398dbdf23aSMasahiro Yamada        bridge: exist only for version 2.91
408dbdf23aSMasahiro Yamada        hw:     optional. exist if eMMC hw reset line is available
418dbdf23aSMasahiro Yamada    oneOf:
428dbdf23aSMasahiro Yamada      - const: host
438dbdf23aSMasahiro Yamada      - items:
448dbdf23aSMasahiro Yamada          - const: host
458dbdf23aSMasahiro Yamada          - const: bridge
468dbdf23aSMasahiro Yamada      - items:
478dbdf23aSMasahiro Yamada          - const: host
488dbdf23aSMasahiro Yamada          - const: hw
498dbdf23aSMasahiro Yamada      - items:
508dbdf23aSMasahiro Yamada          - const: host
518dbdf23aSMasahiro Yamada          - const: bridge
528dbdf23aSMasahiro Yamada          - const: hw
538dbdf23aSMasahiro Yamada
548dbdf23aSMasahiro Yamada  resets:
558dbdf23aSMasahiro Yamada    minItems: 1
568dbdf23aSMasahiro Yamada    maxItems: 3
578dbdf23aSMasahiro Yamada
588dbdf23aSMasahiro YamadaallOf:
598dbdf23aSMasahiro Yamada  - $ref: mmc-controller.yaml
608dbdf23aSMasahiro Yamada
618dbdf23aSMasahiro Yamada  - if:
628dbdf23aSMasahiro Yamada      properties:
638dbdf23aSMasahiro Yamada        compatible:
648dbdf23aSMasahiro Yamada          contains:
658dbdf23aSMasahiro Yamada            const: socionext,uniphier-sd-v2.91
668dbdf23aSMasahiro Yamada    then:
678dbdf23aSMasahiro Yamada      properties:
688dbdf23aSMasahiro Yamada        reset-names:
698dbdf23aSMasahiro Yamada          contains:
708dbdf23aSMasahiro Yamada            const: bridge
718dbdf23aSMasahiro Yamada    else:
728dbdf23aSMasahiro Yamada      properties:
738dbdf23aSMasahiro Yamada        reset-names:
748dbdf23aSMasahiro Yamada          not:
758dbdf23aSMasahiro Yamada            contains:
768dbdf23aSMasahiro Yamada              const: bridge
778dbdf23aSMasahiro Yamada
788dbdf23aSMasahiro Yamadarequired:
798dbdf23aSMasahiro Yamada  - compatible
808dbdf23aSMasahiro Yamada  - reg
818dbdf23aSMasahiro Yamada  - interrupts
828dbdf23aSMasahiro Yamada  - clocks
838dbdf23aSMasahiro Yamada  - reset-names
848dbdf23aSMasahiro Yamada  - resets
858dbdf23aSMasahiro Yamada
866fdc6e23SRob HerringunevaluatedProperties: false
876fdc6e23SRob Herring
888dbdf23aSMasahiro Yamadaexamples:
898dbdf23aSMasahiro Yamada  - |
908dbdf23aSMasahiro Yamada    sd: mmc@5a400000 {
918dbdf23aSMasahiro Yamada        compatible = "socionext,uniphier-sd-v2.91";
928dbdf23aSMasahiro Yamada        reg = <0x5a400000 0x200>;
938dbdf23aSMasahiro Yamada        interrupts = <0 76 4>;
948dbdf23aSMasahiro Yamada        pinctrl-names = "default", "uhs";
958dbdf23aSMasahiro Yamada        pinctrl-0 = <&pinctrl_sd>;
968dbdf23aSMasahiro Yamada        pinctrl-1 = <&pinctrl_sd_uhs>;
978dbdf23aSMasahiro Yamada        clocks = <&mio_clk 0>;
988dbdf23aSMasahiro Yamada        reset-names = "host", "bridge";
998dbdf23aSMasahiro Yamada        resets = <&mio_rst 0>, <&mio_rst 3>;
1008dbdf23aSMasahiro Yamada        dma-names = "rx-tx";
1018dbdf23aSMasahiro Yamada        dmas = <&dmac 4>;
1028dbdf23aSMasahiro Yamada        bus-width = <4>;
1038dbdf23aSMasahiro Yamada        cap-sd-highspeed;
1048dbdf23aSMasahiro Yamada        sd-uhs-sdr12;
1058dbdf23aSMasahiro Yamada        sd-uhs-sdr25;
1068dbdf23aSMasahiro Yamada        sd-uhs-sdr50;
1078dbdf23aSMasahiro Yamada    };
108