summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/spi/spi-stm32.txt
blob: d82755c63eaf5bb2beb5c4ffd9c4ec6085f6bbae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
STMicroelectronics STM32 SPI Controller

The STM32 SPI controller is used to communicate with external devices using
the Serial Peripheral Interface. It supports full-duplex, half-duplex and
simplex synchronous serial communication with external devices. It supports
from 4 to 32-bit data size. Although it can be configured as master or slave,
only master is supported by the driver.

Required properties:
- compatible: Should be one of:
  "st,stm32h7-spi"
  "st,stm32f4-spi"
- reg: Offset and length of the device's register set.
- interrupts: Must contain the interrupt id.
- clocks: Must contain an entry for spiclk (which feeds the internal clock
	  generator).
- #address-cells:  Number of cells required to define a chip select address.
- #size-cells: Should be zero.

Optional properties:
- resets: Must contain the phandle to the reset controller.
- A pinctrl state named "default" may be defined to set pins in mode of
  operation for SPI transfer.
- dmas: DMA specifiers for tx and rx dma. DMA fifo mode must be used. See the
  STM32 DMA bindings, Documentation/devicetree/bindings/dma/stm32-dma.txt.
- dma-names: DMA request names should include "tx" and "rx" if present.
- cs-gpios: list of GPIO chip selects. See the SPI bus bindings,
  Documentation/devicetree/bindings/spi/spi-bus.txt


Child nodes represent devices on the SPI bus
  See ../spi/spi-bus.txt

Optional properties:
- st,spi-midi-ns: Only for STM32H7, (Master Inter-Data Idleness) minimum time
		  delay in nanoseconds inserted between two consecutive data
		  frames.


Example:
	spi2: spi@40003800 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "st,stm32h7-spi";
		reg = <0x40003800 0x400>;
		interrupts = <36>;
		clocks = <&rcc SPI2_CK>;
		resets = <&rcc 1166>;
		dmas = <&dmamux1 0 39 0x400 0x01>,
		       <&dmamux1 1 40 0x400 0x01>;
		dma-names = "rx", "tx";
		pinctrl-0 = <&spi2_pins_b>;
		pinctrl-names = "default";
		cs-gpios = <&gpioa 11 0>;

		aardvark@0 {
			compatible = "totalphase,aardvark";
			reg = <0>;
			spi-max-frequency = <4000000>;
			st,spi-midi-ns = <4000>;
		};
	};