Skip to content
Permalink
Browse files

soc: arm: st_stm32: stm32mp1: Add SPI support

Add SPI support for STM32MP1x SoC.

Signed-off-by: Yaël Boutreux <yael.boutreux@st.com>
Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
Signed-off-by: Alexandre Torgue <alexandre.torgue@st.com>
  • Loading branch information...
yboutreux authored and MaureenHelm committed Aug 1, 2019
1 parent 2f33481 commit 3a967f92c33d9f9b0a4a0653007e2f5814a3ef6b
Showing with 133 additions and 0 deletions.
  1. +18 −0 drivers/pinmux/stm32/pinmux_stm32mp1x.h
  2. +50 −0 dts/arm/st/mp1/stm32mp157.dtsi
  3. +65 −0 soc/arm/st_stm32/stm32mp1/dts_fixup.h
@@ -38,5 +38,23 @@
(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_PULLUP)
#define STM32MP1X_PINMUX_FUNC_PE10_UART7_CTS \
(STM32_PINMUX_ALT_FUNC_7 | STM32_PUSHPULL_PULLUP)
#define STM32MP1X_PINMUX_FUNC_PE11_SPI4_NSS \
(STM32_PINMUX_ALT_FUNC_5 | STM32_PUSHPULL_NOPULL)
#define STM32MP1X_PINMUX_FUNC_PE12_SPI4_SCK \
(STM32_PINMUX_ALT_FUNC_5 | STM32_PUSHPULL_NOPULL)
#define STM32MP1X_PINMUX_FUNC_PE13_SPI4_MISO \
(STM32_PINMUX_ALT_FUNC_5 | STM32_PUSHPULL_NOPULL)
#define STM32MP1X_PINMUX_FUNC_PE14_SPI4_MOSI \
(STM32_PINMUX_ALT_FUNC_5 | STM32_PUSHPULL_NOPULL)

/* Port F */
#define STM32MP1X_PINMUX_FUNC_PF6_SPI5_NSS \
(STM32_PINMUX_ALT_FUNC_5 | STM32_PUSHPULL_NOPULL)
#define STM32MP1X_PINMUX_FUNC_PF7_SPI5_SCK \
(STM32_PINMUX_ALT_FUNC_5 | STM32_PUSHPULL_NOPULL)
#define STM32MP1X_PINMUX_FUNC_PF8_SPI5_MISO \
(STM32_PINMUX_ALT_FUNC_5 | STM32_PUSHPULL_NOPULL)
#define STM32MP1X_PINMUX_FUNC_PF9_SPI5_MOSI \
(STM32_PINMUX_ALT_FUNC_5 | STM32_PUSHPULL_NOPULL)

#endif /* ZEPHYR_DRIVERS_PINMUX_STM32_PINMUX_STM32MP1X_H_ */
@@ -148,6 +148,56 @@
};
};

spi1: spi@44004000 {
compatible = "st,stm32-spi-fifo";
reg = <0x44004000 0x400>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&rcc STM32_CLOCK_BUS_APB2 0x100>;
interrupts = <35 5>;
label = "SPI_1";
};

spi2: spi@4400b000 {
compatible = "st,stm32-spi-fifo";
reg = <0x4400b000 0x400>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x800>;
interrupts = <36 5>;
label = "SPI_2";
};

spi3: spi@4400c000 {
compatible = "st,stm32-spi-fifo";
reg = <0x4400c000 0x400>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&rcc STM32_CLOCK_BUS_APB1 0x1000>;
interrupts = <51 5>;
label = "SPI_3";
};

spi4: spi@44005000 {
compatible = "st,stm32-spi-fifo";
reg = <0x44005000 0x400>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&rcc STM32_CLOCK_BUS_APB2 0x200>;
interrupts = <84 5>;
label = "SPI_4";
};

spi5: spi@44009000 {
compatible = "st,stm32-spi-fifo";
reg = <0x44009000 0x400>;
#address-cells = <1>;
#size-cells = <0>;
clocks = <&rcc STM32_CLOCK_BUS_APB2 0x400>;
interrupts = <85 5>;
label = "SPI_5";
};

usart2: serial@4000e000 {
compatible = "st,stm32-usart", "st,stm32-uart";
reg = <0x4000e000 0x400>;
@@ -195,6 +195,71 @@
#define DT_GPIO_STM32_GPIOK_CLOCK_BUS \
DT_ST_STM32_GPIO_5000C000_CLOCK_BUS

#define DT_SPI_1_BASE_ADDRESS \
DT_ST_STM32_SPI_FIFO_44004000_BASE_ADDRESS
#define DT_SPI_1_IRQ_PRI \
DT_ST_STM32_SPI_FIFO_44004000_IRQ_0_PRIORITY
#define DT_SPI_1_NAME \
DT_ST_STM32_SPI_FIFO_44004000_LABEL
#define DT_SPI_1_IRQ \
DT_ST_STM32_SPI_FIFO_44004000_IRQ_0
#define DT_SPI_1_CLOCK_BITS \
DT_ST_STM32_SPI_FIFO_44004000_CLOCK_BITS
#define DT_SPI_1_CLOCK_BUS \
DT_ST_STM32_SPI_FIFO_44004000_CLOCK_BUS

#define DT_SPI_2_BASE_ADDRESS \
DT_ST_STM32_SPI_FIFO_4400B000_BASE_ADDRESS
#define DT_SPI_2_IRQ_PRI \
DT_ST_STM32_SPI_FIFO_4400B000_IRQ_0_PRIORITY
#define DT_SPI_2_NAME \
DT_ST_STM32_SPI_FIFO_4400B000_LABEL
#define DT_SPI_2_IRQ \
DT_ST_STM32_SPI_FIFO_4400B000_IRQ_0
#define DT_SPI_2_CLOCK_BITS \
DT_ST_STM32_SPI_FIFO_4400B000_CLOCK_BITS
#define DT_SPI_2_CLOCK_BUS \
DT_ST_STM32_SPI_FIFO_4400B000_CLOCK_BUS

#define DT_SPI_3_BASE_ADDRESS \
DT_ST_STM32_SPI_FIFO_4400C000_BASE_ADDRESS
#define DT_SPI_3_IRQ_PRI \
DT_ST_STM32_SPI_FIFO_4400C000_IRQ_0_PRIORITY
#define DT_SPI_3_NAME \
DT_ST_STM32_SPI_FIFO_4400C000_LABEL
#define DT_SPI_3_IRQ \
DT_ST_STM32_SPI_FIFO_4400C000_IRQ_0
#define DT_SPI_3_CLOCK_BITS \
DT_ST_STM32_SPI_FIFO_4400C000_CLOCK_BITS
#define DT_SPI_3_CLOCK_BUS \
DT_ST_STM32_SPI_FIFO_4400C000_CLOCK_BUS

#define DT_SPI_4_BASE_ADDRESS \
DT_ST_STM32_SPI_FIFO_44005000_BASE_ADDRESS
#define DT_SPI_4_IRQ_PRI \
DT_ST_STM32_SPI_FIFO_44005000_IRQ_0_PRIORITY
#define DT_SPI_4_NAME \
DT_ST_STM32_SPI_FIFO_44005000_LABEL
#define DT_SPI_4_IRQ \
DT_ST_STM32_SPI_FIFO_44005000_IRQ_0
#define DT_SPI_4_CLOCK_BITS \
DT_ST_STM32_SPI_FIFO_44005000_CLOCK_BITS
#define DT_SPI_4_CLOCK_BUS \
DT_ST_STM32_SPI_FIFO_44005000_CLOCK_BUS

#define DT_SPI_5_BASE_ADDRESS \
DT_ST_STM32_SPI_FIFO_44009000_BASE_ADDRESS
#define DT_SPI_5_IRQ_PRI \
DT_ST_STM32_SPI_FIFO_44009000_IRQ_0_PRIORITY
#define DT_SPI_5_NAME \
DT_ST_STM32_SPI_FIFO_44009000_LABEL
#define DT_SPI_5_IRQ \
DT_ST_STM32_SPI_FIFO_44009000_IRQ_0
#define DT_SPI_5_CLOCK_BITS \
DT_ST_STM32_SPI_FIFO_44009000_CLOCK_BITS
#define DT_SPI_5_CLOCK_BUS \
DT_ST_STM32_SPI_FIFO_40009000_CLOCK_BUS

#define DT_UART_STM32_USART_2_BASE_ADDRESS \
DT_ST_STM32_USART_4000E000_BASE_ADDRESS
#define DT_UART_STM32_USART_2_BAUD_RATE \

0 comments on commit 3a967f9

Please sign in to comment.
You can’t perform that action at this time.