1101e6fceSMaxime Ripard# SPDX-License-Identifier: GPL-2.0
2101e6fceSMaxime Ripard%YAML 1.2
3101e6fceSMaxime Ripard---
4101e6fceSMaxime Ripard$id: http://devicetree.org/schemas/spi/allwinner,sun6i-a31-spi.yaml#
5101e6fceSMaxime Ripard$schema: http://devicetree.org/meta-schemas/core.yaml#
6101e6fceSMaxime Ripard
7dd3cb467SAndrew Lunntitle: Allwinner A31 SPI Controller
8101e6fceSMaxime Ripard
9101e6fceSMaxime RipardallOf:
1099a7fa0eSKrzysztof Kozlowski  - $ref: spi-controller.yaml
11101e6fceSMaxime Ripard
12101e6fceSMaxime Ripardmaintainers:
13101e6fceSMaxime Ripard  - Chen-Yu Tsai <wens@csie.org>
145c7404bbSMaxime Ripard  - Maxime Ripard <mripard@kernel.org>
15101e6fceSMaxime Ripard
16101e6fceSMaxime Ripardproperties:
17101e6fceSMaxime Ripard  "#address-cells": true
18101e6fceSMaxime Ripard  "#size-cells": true
19101e6fceSMaxime Ripard
20101e6fceSMaxime Ripard  compatible:
21e2c9e67eSAndre Przywara    oneOf:
22*f603a3f0SMaksim Kiselev      - const: allwinner,sun50i-r329-spi
23e2c9e67eSAndre Przywara      - const: allwinner,sun6i-a31-spi
24e2c9e67eSAndre Przywara      - const: allwinner,sun8i-h3-spi
25e2c9e67eSAndre Przywara      - items:
26e2c9e67eSAndre Przywara          - enum:
27e2c9e67eSAndre Przywara              - allwinner,sun8i-r40-spi
28e2c9e67eSAndre Przywara              - allwinner,sun50i-h6-spi
296589daf8SAndre Przywara              - allwinner,sun50i-h616-spi
30382e0d4fSAndre Przywara              - allwinner,suniv-f1c100s-spi
31e2c9e67eSAndre Przywara          - const: allwinner,sun8i-h3-spi
32*f603a3f0SMaksim Kiselev      - items:
33*f603a3f0SMaksim Kiselev          - enum:
34*f603a3f0SMaksim Kiselev              - allwinner,sun20i-d1-spi
35*f603a3f0SMaksim Kiselev              - allwinner,sun50i-r329-spi-dbi
36*f603a3f0SMaksim Kiselev          - const: allwinner,sun50i-r329-spi
37*f603a3f0SMaksim Kiselev      - items:
38*f603a3f0SMaksim Kiselev          - const: allwinner,sun20i-d1-spi-dbi
39*f603a3f0SMaksim Kiselev          - const: allwinner,sun50i-r329-spi-dbi
40*f603a3f0SMaksim Kiselev          - const: allwinner,sun50i-r329-spi
41101e6fceSMaxime Ripard
42101e6fceSMaxime Ripard  reg:
43101e6fceSMaxime Ripard    maxItems: 1
44101e6fceSMaxime Ripard
45101e6fceSMaxime Ripard  interrupts:
46101e6fceSMaxime Ripard    maxItems: 1
47101e6fceSMaxime Ripard
48101e6fceSMaxime Ripard  clocks:
49101e6fceSMaxime Ripard    items:
50101e6fceSMaxime Ripard      - description: Bus Clock
51101e6fceSMaxime Ripard      - description: Module Clock
52101e6fceSMaxime Ripard
53101e6fceSMaxime Ripard  clock-names:
54101e6fceSMaxime Ripard    items:
55101e6fceSMaxime Ripard      - const: ahb
56101e6fceSMaxime Ripard      - const: mod
57101e6fceSMaxime Ripard
58101e6fceSMaxime Ripard  resets:
59101e6fceSMaxime Ripard    maxItems: 1
60101e6fceSMaxime Ripard
61101e6fceSMaxime Ripard  dmas:
62101e6fceSMaxime Ripard    items:
63101e6fceSMaxime Ripard      - description: RX DMA Channel
64101e6fceSMaxime Ripard      - description: TX DMA Channel
65101e6fceSMaxime Ripard
66101e6fceSMaxime Ripard  dma-names:
67101e6fceSMaxime Ripard    items:
68101e6fceSMaxime Ripard      - const: rx
69101e6fceSMaxime Ripard      - const: tx
70101e6fceSMaxime Ripard
71101e6fceSMaxime Ripard  num-cs: true
72101e6fceSMaxime Ripard
73101e6fceSMaxime RipardpatternProperties:
74101e6fceSMaxime Ripard  "^.*@[0-9a-f]+":
7515ffef1aSRob Herring    type: object
76e62fc182SRob Herring    additionalProperties: true
77101e6fceSMaxime Ripard    properties:
78101e6fceSMaxime Ripard      reg:
79101e6fceSMaxime Ripard        items:
80101e6fceSMaxime Ripard          minimum: 0
81101e6fceSMaxime Ripard          maximum: 4
82101e6fceSMaxime Ripard
83101e6fceSMaxime Ripard      spi-rx-bus-width:
84101e6fceSMaxime Ripard        const: 1
85101e6fceSMaxime Ripard
86101e6fceSMaxime Ripard      spi-tx-bus-width:
87101e6fceSMaxime Ripard        const: 1
88101e6fceSMaxime Ripard
89101e6fceSMaxime Ripardrequired:
90101e6fceSMaxime Ripard  - compatible
91101e6fceSMaxime Ripard  - reg
92101e6fceSMaxime Ripard  - interrupts
93101e6fceSMaxime Ripard  - clocks
94101e6fceSMaxime Ripard  - clock-names
95101e6fceSMaxime Ripard
96101e6fceSMaxime RipardadditionalProperties: false
97101e6fceSMaxime Ripard
98101e6fceSMaxime Ripardexamples:
99101e6fceSMaxime Ripard  - |
100101e6fceSMaxime Ripard    spi1: spi@1c69000 {
101101e6fceSMaxime Ripard        compatible = "allwinner,sun6i-a31-spi";
102101e6fceSMaxime Ripard        reg = <0x01c69000 0x1000>;
103101e6fceSMaxime Ripard        interrupts = <0 66 4>;
104101e6fceSMaxime Ripard        clocks = <&ahb1_gates 21>, <&spi1_clk>;
105101e6fceSMaxime Ripard        clock-names = "ahb", "mod";
106101e6fceSMaxime Ripard        resets = <&ahb1_rst 21>;
107101e6fceSMaxime Ripard        #address-cells = <1>;
108101e6fceSMaxime Ripard        #size-cells = <0>;
109101e6fceSMaxime Ripard    };
110101e6fceSMaxime Ripard
111101e6fceSMaxime Ripard  - |
112101e6fceSMaxime Ripard    spi0: spi@1c68000 {
113101e6fceSMaxime Ripard        compatible = "allwinner,sun8i-h3-spi";
114101e6fceSMaxime Ripard        reg = <0x01c68000 0x1000>;
115101e6fceSMaxime Ripard        interrupts = <0 65 4>;
116101e6fceSMaxime Ripard        clocks = <&ccu 30>, <&ccu 82>;
117101e6fceSMaxime Ripard        clock-names = "ahb", "mod";
118101e6fceSMaxime Ripard        dmas = <&dma 23>, <&dma 23>;
119101e6fceSMaxime Ripard        dma-names = "rx", "tx";
120101e6fceSMaxime Ripard        resets = <&ccu 15>;
121101e6fceSMaxime Ripard        #address-cells = <1>;
122101e6fceSMaxime Ripard        #size-cells = <0>;
123101e6fceSMaxime Ripard    };
124101e6fceSMaxime Ripard
125101e6fceSMaxime Ripard...
126