1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/spi/allwinner,sun6i-a31-spi.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Allwinner A31 SPI Controller Device Tree Bindings
8
9allOf:
10  - $ref: "spi-controller.yaml"
11
12maintainers:
13  - Chen-Yu Tsai <wens@csie.org>
14  - Maxime Ripard <maxime.ripard@bootlin.com>
15
16properties:
17  "#address-cells": true
18  "#size-cells": true
19
20  compatible:
21    enum:
22      - allwinner,sun6i-a31-spi
23      - allwinner,sun8i-h3-spi
24
25  reg:
26    maxItems: 1
27
28  interrupts:
29    maxItems: 1
30
31  clocks:
32    items:
33      - description: Bus Clock
34      - description: Module Clock
35
36  clock-names:
37    items:
38      - const: ahb
39      - const: mod
40
41  resets:
42    maxItems: 1
43
44  dmas:
45    items:
46      - description: RX DMA Channel
47      - description: TX DMA Channel
48
49  dma-names:
50    items:
51      - const: rx
52      - const: tx
53
54  num-cs: true
55
56patternProperties:
57  "^.*@[0-9a-f]+":
58    type: object
59    properties:
60      reg:
61        items:
62          minimum: 0
63          maximum: 4
64
65      spi-rx-bus-width:
66        const: 1
67
68      spi-tx-bus-width:
69        const: 1
70
71required:
72  - compatible
73  - reg
74  - interrupts
75  - clocks
76  - clock-names
77
78additionalProperties: false
79
80examples:
81  - |
82    spi1: spi@1c69000 {
83        compatible = "allwinner,sun6i-a31-spi";
84        reg = <0x01c69000 0x1000>;
85        interrupts = <0 66 4>;
86        clocks = <&ahb1_gates 21>, <&spi1_clk>;
87        clock-names = "ahb", "mod";
88        resets = <&ahb1_rst 21>;
89        #address-cells = <1>;
90        #size-cells = <0>;
91    };
92
93  - |
94    spi0: spi@1c68000 {
95        compatible = "allwinner,sun8i-h3-spi";
96        reg = <0x01c68000 0x1000>;
97        interrupts = <0 65 4>;
98        clocks = <&ccu 30>, <&ccu 82>;
99        clock-names = "ahb", "mod";
100        dmas = <&dma 23>, <&dma 23>;
101        dma-names = "rx", "tx";
102        resets = <&ccu 15>;
103        #address-cells = <1>;
104        #size-cells = <0>;
105    };
106
107...
108