summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/mmc/snps,dwcmshc-sdhci.yaml
blob: c3d5e0230af1a68a305ffe5d3d3d4d00e991c289 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/snps,dwcmshc-sdhci.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Synopsys Designware Mobile Storage Host Controller

maintainers:
  - Ulf Hansson <ulf.hansson@linaro.org>
  - Jisheng Zhang <Jisheng.Zhang@synaptics.com>

properties:
  compatible:
    oneOf:
      - items:
          - const: rockchip,rk3576-dwcmshc
          - const: rockchip,rk3588-dwcmshc
      - enum:
          - rockchip,rk3568-dwcmshc
          - rockchip,rk3588-dwcmshc
          - snps,dwcmshc-sdhci
          - sophgo,cv1800b-dwcmshc
          - sophgo,sg2002-dwcmshc
          - sophgo,sg2042-dwcmshc
          - thead,th1520-dwcmshc

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 5

  clock-names:
    minItems: 1
    maxItems: 5

  power-domains:
    maxItems: 1

  resets:
    maxItems: 5

  reset-names:
    items:
      - const: core
      - const: bus
      - const: axi
      - const: block
      - const: timer

  rockchip,txclk-tapnum:
    description: Specify the number of delay for tx sampling.
    $ref: /schemas/types.yaml#/definitions/uint8

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names

allOf:
  - $ref: mmc-controller.yaml#

  - if:
      properties:
        compatible:
          contains:
            const: sophgo,sg2042-dwcmshc

    then:
      properties:
        clocks:
          items:
            - description: core clock
            - description: bus clock
            - description: timer clock
        clock-names:
          items:
            - const: core
            - const: bus
            - const: timer
    else:
      properties:
        clocks:
          minItems: 1
          items:
            - description: core clock
            - description: bus clock for optional
            - description: axi clock for rockchip specified
            - description: block clock for rockchip specified
            - description: timer clock for rockchip specified
        clock-names:
          minItems: 1
          items:
            - const: core
            - const: bus
            - const: axi
            - const: block
            - const: timer

  - if:
      properties:
        compatible:
          contains:
            const: rockchip,rk3576-dwcmshc

    then:
      required:
        - power-domains

    else:
      properties:
        power-domains: false

unevaluatedProperties: false

examples:
  - |
    mmc@fe310000 {
      compatible = "rockchip,rk3568-dwcmshc";
      reg = <0xfe310000 0x10000>;
      interrupts = <0 25 0x4>;
      clocks = <&cru 17>, <&cru 18>, <&cru 19>, <&cru 20>, <&cru 21>;
      clock-names = "core", "bus", "axi", "block", "timer";
      bus-width = <8>;
      #address-cells = <1>;
      #size-cells = <0>;
    };
  - |
    mmc@aa0000 {
      compatible = "snps,dwcmshc-sdhci";
      reg = <0xaa000 0x1000>;
      interrupts = <0 25 0x4>;
      clocks = <&cru 17>, <&cru 18>;
      clock-names = "core", "bus";
      bus-width = <8>;
      #address-cells = <1>;
      #size-cells = <0>;
    };

...