GNU Linux-libre 4.14.266-gnu1
[releases.git] / Documentation / devicetree / bindings / spi / spi_pl022.txt
1 ARM PL022 SPI controller
2
3 Required properties:
4 - compatible : "arm,pl022", "arm,primecell"
5 - reg : Offset and length of the register set for the device
6 - interrupts : Should contain SPI controller interrupt
7 - num-cs : total number of chipselects
8
9 Optional properties:
10 - cs-gpios : should specify GPIOs used for chipselects.
11   The gpios will be referred to as reg = <index> in the SPI child nodes.
12   If unspecified, a single SPI device without a chip select can be used.
13 - pl022,autosuspend-delay : delay in ms following transfer completion before
14                             the runtime power management system suspends the
15                             device. A setting of 0 indicates no delay and the
16                             device will be suspended immediately
17 - pl022,rt : indicates the controller should run the message pump with realtime
18              priority to minimise the transfer latency on the bus (boolean)
19 - dmas : Two or more DMA channel specifiers following the convention outlined
20          in bindings/dma/dma.txt
21 - dma-names: Names for the dma channels, if present. There must be at
22              least one channel named "tx" for transmit and named "rx" for
23              receive.
24
25
26 SPI slave nodes must be children of the SPI master node and can
27 contain the following properties.
28
29 - pl022,interface : interface type:
30         0: SPI
31         1: Texas Instruments Synchronous Serial Frame Format
32         2: Microwire (Half Duplex)
33 - pl022,com-mode : specifies the transfer mode:
34         0: interrupt mode
35         1: polling mode (default mode if property not present)
36         2: DMA mode
37 - pl022,rx-level-trig : Rx FIFO watermark level
38 - pl022,tx-level-trig : Tx FIFO watermark level
39 - pl022,ctrl-len : Microwire interface: Control length
40 - pl022,wait-state : Microwire interface: Wait state
41 - pl022,duplex : Microwire interface: Full/Half duplex
42
43
44 Example:
45
46         spi@e0100000 {
47                 compatible = "arm,pl022", "arm,primecell";
48                 reg = <0xe0100000 0x1000>;
49                 #address-cells = <1>;
50                 #size-cells = <0>;
51                 interrupts = <0 31 0x4>;
52                 dmas = <&dma-controller 23 1>,
53                         <&dma-controller 24 0>;
54                 dma-names = "rx", "tx";
55
56                 m25p80@1 {
57                         compatible = "st,m25p80";
58                         reg = <1>;
59                         spi-max-frequency = <12000000>;
60                         spi-cpol;
61                         spi-cpha;
62                         pl022,interface = <0>;
63                         pl022,com-mode = <0x2>;
64                         pl022,rx-level-trig = <0>;
65                         pl022,tx-level-trig = <0>;
66                         pl022,ctrl-len = <0x11>;
67                         pl022,wait-state = <0>;
68                         pl022,duplex = <0>;
69                 };
70         };