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 v2/v3 bindings
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        regs:
22          minItems: 3
23        reg-names:
24          minItems: 3
25      required:
26        - reg-names
27    else:
28      properties:
29        regs:
30          maxItems: 1
31        reg-names:
32          maxItems: 1
33
34properties:
35  compatible:
36    enum:
37      - mrvl,pxav2-mmc
38      - mrvl,pxav3-mmc
39      - marvell,armada-380-sdhci
40
41  reg:
42    minItems: 1
43    maxItems: 3
44
45  reg-names:
46    items:
47      - const: sdhci
48      - const: mbus
49      - const: conf-sdio3
50
51  interrupts:
52    maxItems: 1
53
54  clocks:
55    minItems: 1
56    maxItems: 2
57
58  clock-names:
59    minItems: 1
60    items:
61      - const: io
62      - const: core
63
64  mrvl,clk-delay-cycles:
65    description: Specify a number of cycles to delay for tuning.
66    $ref: /schemas/types.yaml#/definitions/uint32
67
68required:
69  - compatible
70  - reg
71  - interrupts
72  - clocks
73  - clock-names
74
75unevaluatedProperties: false
76
77examples:
78  - |
79    #include <dt-bindings/clock/berlin2.h>
80    mmc@d4280800 {
81        compatible = "mrvl,pxav3-mmc";
82        reg = <0xd4280800 0x800>;
83        bus-width = <8>;
84        interrupts = <27>;
85        clocks = <&chip CLKID_SDIO1XIN>, <&chip CLKID_SDIO1>;
86        clock-names = "io", "core";
87        non-removable;
88        mrvl,clk-delay-cycles = <31>;
89    };
90  - |
91    mmc@d8000 {
92        compatible = "marvell,armada-380-sdhci";
93        reg-names = "sdhci", "mbus", "conf-sdio3";
94        reg = <0xd8000 0x1000>,
95              <0xdc000 0x100>,
96              <0x18454 0x4>;
97        interrupts = <0 25 0x4>;
98        clocks = <&gateclk 17>;
99        clock-names = "io";
100        mrvl,clk-delay-cycles = <0x1F>;
101    };
102
103...
104