summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/mmc/sdhci-pxa.yaml
blob: 186ce8ff4626a1eb07633e08aeb6322ae2eb25a8 (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
148
149
# SPDX-License-Identifier: GPL-2.0-only
%YAML 1.2
---
$id: http://devicetree.org/schemas/mmc/sdhci-pxa.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Marvell PXA SDHCI v1/v2/v3

maintainers:
  - Ulf Hansson <ulf.hansson@linaro.org>

allOf:
  - $ref: mmc-controller.yaml#
  - if:
      properties:
        compatible:
          contains:
            const: marvell,armada-380-sdhci
    then:
      properties:
        reg:
          minItems: 3
        reg-names:
          minItems: 3
      required:
        - reg-names
    else:
      properties:
        reg:
          maxItems: 1
        reg-names:
          maxItems: 1
  - if:
      properties:
        compatible:
          contains:
            const: mrvl,pxav1-mmc
    then:
      properties:
        pinctrl-names:
          description:
            Optional for supporting PXA168 SDIO IRQ errata to switch CMD pin between
            SDIO CMD and GPIO mode.
          items:
            - const: default
            - const: state_cmd_gpio
          minItems: 1

        pinctrl-1:
          description:
            Should switch CMD pin to GPIO mode as a high output.
  - if:
      properties:
        compatible:
          contains:
            const: mrvl,pxav3-mmc
    then:
      properties:
        pinctrl-names:
          description:
            Optional for increasing stability of the controller at fast bus clocks.
          items:
            - const: default
            - const: state_uhs
          minItems: 1

        pinctrl-1:
          description:
            Should switch the drive strength of the data pins to high.

properties:
  compatible:
    enum:
      - mrvl,pxav1-mmc
      - mrvl,pxav2-mmc
      - mrvl,pxav3-mmc
      - marvell,armada-380-sdhci

  reg:
    minItems: 1
    maxItems: 3

  reg-names:
    items:
      - const: sdhci
      - const: mbus
      - const: conf-sdio3

  interrupts:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 2

  clock-names:
    minItems: 1
    items:
      - const: io
      - const: core

  pinctrl-names: true

  pinctrl-0:
    description:
      Should contain default pinctrl.

  pinctrl-1: true

  mrvl,clk-delay-cycles:
    description: Specify a number of cycles to delay for tuning.
    $ref: /schemas/types.yaml#/definitions/uint32

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

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/berlin2.h>
    mmc@d4280800 {
        compatible = "mrvl,pxav3-mmc";
        reg = <0xd4280800 0x800>;
        bus-width = <8>;
        interrupts = <27>;
        clocks = <&chip CLKID_SDIO1XIN>, <&chip CLKID_SDIO1>;
        clock-names = "io", "core";
        non-removable;
        mrvl,clk-delay-cycles = <31>;
    };
  - |
    mmc@d8000 {
        compatible = "marvell,armada-380-sdhci";
        reg-names = "sdhci", "mbus", "conf-sdio3";
        reg = <0xd8000 0x1000>,
              <0xdc000 0x100>,
              <0x18454 0x4>;
        interrupts = <0 25 0x4>;
        clocks = <&gateclk 17>;
        clock-names = "io";
        mrvl,clk-delay-cycles = <0x1F>;
    };

...