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>; }; };