1# SPDX-License-Identifier: GPL-2.0-only
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mmc/snps,dwcmshc-sdhci.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Synopsys Designware Mobile Storage Host Controller
8
9maintainers:
10  - Ulf Hansson <ulf.hansson@linaro.org>
11  - Jisheng Zhang <Jisheng.Zhang@synaptics.com>
12
13properties:
14  compatible:
15    oneOf:
16      - items:
17          - const: rockchip,rk3576-dwcmshc
18          - const: rockchip,rk3588-dwcmshc
19      - enum:
20          - rockchip,rk3568-dwcmshc
21          - rockchip,rk3588-dwcmshc
22          - snps,dwcmshc-sdhci
23          - sophgo,cv1800b-dwcmshc
24          - sophgo,sg2002-dwcmshc
25          - sophgo,sg2042-dwcmshc
26          - thead,th1520-dwcmshc
27
28  reg:
29    maxItems: 1
30
31  interrupts:
32    maxItems: 1
33
34  clocks:
35    minItems: 1
36    maxItems: 5
37
38  clock-names:
39    minItems: 1
40    maxItems: 5
41
42  power-domains:
43    maxItems: 1
44
45  resets:
46    maxItems: 5
47
48  reset-names:
49    items:
50      - const: core
51      - const: bus
52      - const: axi
53      - const: block
54      - const: timer
55
56  rockchip,txclk-tapnum:
57    description: Specify the number of delay for tx sampling.
58    $ref: /schemas/types.yaml#/definitions/uint8
59
60required:
61  - compatible
62  - reg
63  - interrupts
64  - clocks
65  - clock-names
66
67allOf:
68  - $ref: mmc-controller.yaml#
69
70  - if:
71      properties:
72        compatible:
73          contains:
74            const: sophgo,sg2042-dwcmshc
75
76    then:
77      properties:
78        clocks:
79          items:
80            - description: core clock
81            - description: bus clock
82            - description: timer clock
83        clock-names:
84          items:
85            - const: core
86            - const: bus
87            - const: timer
88    else:
89      properties:
90        clocks:
91          minItems: 1
92          items:
93            - description: core clock
94            - description: bus clock for optional
95            - description: axi clock for rockchip specified
96            - description: block clock for rockchip specified
97            - description: timer clock for rockchip specified
98        clock-names:
99          minItems: 1
100          items:
101            - const: core
102            - const: bus
103            - const: axi
104            - const: block
105            - const: timer
106
107  - if:
108      properties:
109        compatible:
110          contains:
111            const: rockchip,rk3576-dwcmshc
112
113    then:
114      required:
115        - power-domains
116
117    else:
118      properties:
119        power-domains: false
120
121unevaluatedProperties: false
122
123examples:
124  - |
125    mmc@fe310000 {
126      compatible = "rockchip,rk3568-dwcmshc";
127      reg = <0xfe310000 0x10000>;
128      interrupts = <0 25 0x4>;
129      clocks = <&cru 17>, <&cru 18>, <&cru 19>, <&cru 20>, <&cru 21>;
130      clock-names = "core", "bus", "axi", "block", "timer";
131      bus-width = <8>;
132      #address-cells = <1>;
133      #size-cells = <0>;
134    };
135  - |
136    mmc@aa0000 {
137      compatible = "snps,dwcmshc-sdhci";
138      reg = <0xaa000 0x1000>;
139      interrupts = <0 25 0x4>;
140      clocks = <&cru 17>, <&cru 18>;
141      clock-names = "core", "bus";
142      bus-width = <8>;
143      #address-cells = <1>;
144      #size-cells = <0>;
145    };
146
147...
148