blob: 7f174b7d0a26f60518774a05afd741423552435d [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/spi/spi-pl022.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: ARM PL022 SPI controller
8
9maintainers:
10 - Linus Walleij <linus.walleij@linaro.org>
11
12allOf:
13 - $ref: spi-controller.yaml#
14 - $ref: /schemas/arm/primecell.yaml#
15
16# We need a select here so we don't match all nodes with 'arm,primecell'
17select:
18 properties:
19 compatible:
20 contains:
21 const: arm,pl022
22 required:
23 - compatible
24
25properties:
26 compatible:
27 items:
28 - const: arm,pl022
29 - const: arm,primecell
30
31 reg:
32 maxItems: 1
33
34 interrupts:
35 maxItems: 1
36
37 clocks:
38 maxItems: 2
39
40 clock-names:
41 items:
42 - const: sspclk
43 - const: apb_pclk
44
45 pl022,autosuspend-delay:
46 description: delay in ms following transfer completion before the
47 runtime power management system suspends the device. A setting of 0
48 indicates no delay and the device will be suspended immediately.
49 $ref: /schemas/types.yaml#/definitions/uint32
50
51 pl022,rt:
52 description: indicates the controller should run the message pump with realtime
53 priority to minimise the transfer latency on the bus (boolean)
54 type: boolean
55
56 dmas:
57 description:
58 Two or more DMA channel specifiers following the convention outlined
59 in bindings/dma/dma.txt
60 minItems: 2
61 maxItems: 32
62
63 dma-names:
64 description:
65 There must be at least one channel named "tx" for transmit and named "rx"
66 for receive.
67 minItems: 2
68 maxItems: 32
69 additionalItems: true
70 items:
71 - const: rx
72 - const: tx
73
74 resets:
75 maxItems: 1
76
77required:
78 - compatible
79 - reg
80 - interrupts
81
82unevaluatedProperties: false
83
84examples:
85 - |
86 spi@e0100000 {
87 compatible = "arm,pl022", "arm,primecell";
88 reg = <0xe0100000 0x1000>;
89 #address-cells = <1>;
90 #size-cells = <0>;
91 interrupts = <0 31 0x4>;
92 dmas = <&dma_controller 23 1>,
93 <&dma_controller 24 0>;
94 dma-names = "rx", "tx";
95
96 flash@1 {
97 compatible = "st,m25p80";
98 reg = <1>;
99 spi-max-frequency = <12000000>;
100 spi-cpol;
101 spi-cpha;
102 pl022,interface = <0>;
103 pl022,com-mode = <0x2>;
104 pl022,rx-level-trig = <0>;
105 pl022,tx-level-trig = <0>;
106 pl022,ctrl-len = <0x11>;
107 pl022,wait-state = <0>;
108 pl022,duplex = <0>;
109 };
110 };
111...