1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mmc/socionext,uniphier-sd.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: UniPhier SD/SDIO/eMMC controller
8
9maintainers:
10  - Masahiro Yamada <yamada.masahiro@socionext.com>
11
12properties:
13  compatible:
14    description: version 2.91, 3.1, 3.1.1, respectively
15    enum:
16      - socionext,uniphier-sd-v2.91
17      - socionext,uniphier-sd-v3.1
18      - socionext,uniphier-sd-v3.1.1
19
20  reg:
21    maxItems: 1
22
23  interrupts:
24    maxItems: 1
25
26  clocks:
27    maxItems: 1
28
29  dmas:
30    maxItems: 1
31
32  dma-names:
33    const: rx-tx
34
35  reset-names:
36    description: |
37      There are three reset signals at maximum
38        host:   mandatory for all variants
39        bridge: exist only for version 2.91
40        hw:     optional. exist if eMMC hw reset line is available
41    oneOf:
42      - const: host
43      - items:
44          - const: host
45          - const: bridge
46      - items:
47          - const: host
48          - const: hw
49      - items:
50          - const: host
51          - const: bridge
52          - const: hw
53
54  resets:
55    minItems: 1
56    maxItems: 3
57
58  socionext,syscon-uhs-mode:
59    $ref: /schemas/types.yaml#/definitions/phandle-array
60    items:
61      - items:
62          - description: phandle to syscon that configures UHS mode
63          - description: ID of SD instance
64    description:
65      A phandle to syscon with one argument that configures UHS mode.
66      The argument is the ID of SD instance.
67
68allOf:
69  - $ref: mmc-controller.yaml
70
71  - if:
72      properties:
73        compatible:
74          contains:
75            const: socionext,uniphier-sd-v2.91
76    then:
77      properties:
78        reset-names:
79          contains:
80            const: bridge
81    else:
82      properties:
83        reset-names:
84          not:
85            contains:
86              const: bridge
87
88required:
89  - compatible
90  - reg
91  - interrupts
92  - clocks
93  - reset-names
94  - resets
95
96unevaluatedProperties: false
97
98examples:
99  - |
100    sd: mmc@5a400000 {
101        compatible = "socionext,uniphier-sd-v2.91";
102        reg = <0x5a400000 0x200>;
103        interrupts = <0 76 4>;
104        pinctrl-names = "default", "uhs";
105        pinctrl-0 = <&pinctrl_sd>;
106        pinctrl-1 = <&pinctrl_sd_uhs>;
107        clocks = <&mio_clk 0>;
108        reset-names = "host", "bridge";
109        resets = <&mio_rst 0>, <&mio_rst 3>;
110        dma-names = "rx-tx";
111        dmas = <&dmac 4>;
112        bus-width = <4>;
113        cap-sd-highspeed;
114        sd-uhs-sdr12;
115        sd-uhs-sdr25;
116        sd-uhs-sdr50;
117    };
118