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
294df297aaSRob Herring  dmas:
304df297aaSRob Herring    maxItems: 1
314df297aaSRob Herring
324df297aaSRob Herring  dma-names:
334df297aaSRob Herring    const: rx-tx
344df297aaSRob 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
58*388dcd95SKunihiko Hayashi  socionext,syscon-uhs-mode:
59*388dcd95SKunihiko Hayashi    $ref: /schemas/types.yaml#/definitions/phandle-array
60*388dcd95SKunihiko Hayashi    items:
61*388dcd95SKunihiko Hayashi      - items:
62*388dcd95SKunihiko Hayashi          - description: phandle to syscon that configures UHS mode
63*388dcd95SKunihiko Hayashi          - description: ID of SD instance
64*388dcd95SKunihiko Hayashi    description:
65*388dcd95SKunihiko Hayashi      A phandle to syscon with one argument that configures UHS mode.
66*388dcd95SKunihiko Hayashi      The argument is the ID of SD instance.
67*388dcd95SKunihiko Hayashi
688dbdf23aSMasahiro YamadaallOf:
698dbdf23aSMasahiro Yamada  - $ref: mmc-controller.yaml
708dbdf23aSMasahiro Yamada
718dbdf23aSMasahiro Yamada  - if:
728dbdf23aSMasahiro Yamada      properties:
738dbdf23aSMasahiro Yamada        compatible:
748dbdf23aSMasahiro Yamada          contains:
758dbdf23aSMasahiro Yamada            const: socionext,uniphier-sd-v2.91
768dbdf23aSMasahiro Yamada    then:
778dbdf23aSMasahiro Yamada      properties:
788dbdf23aSMasahiro Yamada        reset-names:
798dbdf23aSMasahiro Yamada          contains:
808dbdf23aSMasahiro Yamada            const: bridge
818dbdf23aSMasahiro Yamada    else:
828dbdf23aSMasahiro Yamada      properties:
838dbdf23aSMasahiro Yamada        reset-names:
848dbdf23aSMasahiro Yamada          not:
858dbdf23aSMasahiro Yamada            contains:
868dbdf23aSMasahiro Yamada              const: bridge
878dbdf23aSMasahiro Yamada
888dbdf23aSMasahiro Yamadarequired:
898dbdf23aSMasahiro Yamada  - compatible
908dbdf23aSMasahiro Yamada  - reg
918dbdf23aSMasahiro Yamada  - interrupts
928dbdf23aSMasahiro Yamada  - clocks
938dbdf23aSMasahiro Yamada  - reset-names
948dbdf23aSMasahiro Yamada  - resets
958dbdf23aSMasahiro Yamada
966fdc6e23SRob HerringunevaluatedProperties: false
976fdc6e23SRob Herring
988dbdf23aSMasahiro Yamadaexamples:
998dbdf23aSMasahiro Yamada  - |
1008dbdf23aSMasahiro Yamada    sd: mmc@5a400000 {
1018dbdf23aSMasahiro Yamada        compatible = "socionext,uniphier-sd-v2.91";
1028dbdf23aSMasahiro Yamada        reg = <0x5a400000 0x200>;
1038dbdf23aSMasahiro Yamada        interrupts = <0 76 4>;
1048dbdf23aSMasahiro Yamada        pinctrl-names = "default", "uhs";
1058dbdf23aSMasahiro Yamada        pinctrl-0 = <&pinctrl_sd>;
1068dbdf23aSMasahiro Yamada        pinctrl-1 = <&pinctrl_sd_uhs>;
1078dbdf23aSMasahiro Yamada        clocks = <&mio_clk 0>;
1088dbdf23aSMasahiro Yamada        reset-names = "host", "bridge";
1098dbdf23aSMasahiro Yamada        resets = <&mio_rst 0>, <&mio_rst 3>;
1108dbdf23aSMasahiro Yamada        dma-names = "rx-tx";
1118dbdf23aSMasahiro Yamada        dmas = <&dmac 4>;
1128dbdf23aSMasahiro Yamada        bus-width = <4>;
1138dbdf23aSMasahiro Yamada        cap-sd-highspeed;
1148dbdf23aSMasahiro Yamada        sd-uhs-sdr12;
1158dbdf23aSMasahiro Yamada        sd-uhs-sdr25;
1168dbdf23aSMasahiro Yamada        sd-uhs-sdr50;
1178dbdf23aSMasahiro Yamada    };
118