xref: /linux/Documentation/devicetree/bindings/mmc/sdhci-pxa.yaml (revision 5f5598d945e2a69f764aa5c2074dad73e23bcfcb)
1# SPDX-License-Identifier: GPL-2.0-only
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mmc/sdhci-pxa.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Marvell PXA SDHCI v1/v2/v3
8
9maintainers:
10  - Ulf Hansson <ulf.hansson@linaro.org>
11
12allOf:
13  - $ref: mmc-controller.yaml#
14  - if:
15      properties:
16        compatible:
17          contains:
18            const: marvell,armada-380-sdhci
19    then:
20      properties:
21        reg:
22          minItems: 3
23        reg-names:
24          minItems: 3
25      required:
26        - reg-names
27    else:
28      properties:
29        reg:
30          maxItems: 1
31        reg-names:
32          maxItems: 1
33  - if:
34      properties:
35        compatible:
36          contains:
37            const: mrvl,pxav1-mmc
38    then:
39      properties:
40        pinctrl-names:
41          description:
42            Optional for supporting PXA168 SDIO IRQ errata to switch CMD pin between
43            SDIO CMD and GPIO mode.
44          items:
45            - const: default
46            - const: state_cmd_gpio
47        pinctrl-0:
48          description:
49            Should contain default pinctrl.
50        pinctrl-1:
51          description:
52            Should switch CMD pin to GPIO mode as a high output.
53
54properties:
55  compatible:
56    enum:
57      - mrvl,pxav1-mmc
58      - mrvl,pxav2-mmc
59      - mrvl,pxav3-mmc
60      - marvell,armada-380-sdhci
61
62  reg:
63    minItems: 1
64    maxItems: 3
65
66  reg-names:
67    items:
68      - const: sdhci
69      - const: mbus
70      - const: conf-sdio3
71
72  interrupts:
73    maxItems: 1
74
75  clocks:
76    minItems: 1
77    maxItems: 2
78
79  clock-names:
80    minItems: 1
81    items:
82      - const: io
83      - const: core
84
85  mrvl,clk-delay-cycles:
86    description: Specify a number of cycles to delay for tuning.
87    $ref: /schemas/types.yaml#/definitions/uint32
88
89required:
90  - compatible
91  - reg
92  - interrupts
93  - clocks
94  - clock-names
95
96unevaluatedProperties: false
97
98examples:
99  - |
100    #include <dt-bindings/clock/berlin2.h>
101    mmc@d4280800 {
102        compatible = "mrvl,pxav3-mmc";
103        reg = <0xd4280800 0x800>;
104        bus-width = <8>;
105        interrupts = <27>;
106        clocks = <&chip CLKID_SDIO1XIN>, <&chip CLKID_SDIO1>;
107        clock-names = "io", "core";
108        non-removable;
109        mrvl,clk-delay-cycles = <31>;
110    };
111  - |
112    mmc@d8000 {
113        compatible = "marvell,armada-380-sdhci";
114        reg-names = "sdhci", "mbus", "conf-sdio3";
115        reg = <0xd8000 0x1000>,
116              <0xdc000 0x100>,
117              <0x18454 0x4>;
118        interrupts = <0 25 0x4>;
119        clocks = <&gateclk 17>;
120        clock-names = "io";
121        mrvl,clk-delay-cycles = <0x1F>;
122    };
123
124...
125