drivers: spi: stm32 can support TI mode for the SPI frame format
Depending of the soc and SPI peripheral, the Frame-Format of the SPI can be configured to support TI or Motorola protocol. This is configured through a new DTS property. Signed-off-by: Francois Ramu <francois.ramu@st.com>
This commit is contained in:
parent
394996313a
commit
d563313ab1
|
@ -559,7 +559,11 @@ static int spi_stm32_configure(const struct device *dev,
|
|||
|
||||
#if !defined(CONFIG_SOC_SERIES_STM32F1X) \
|
||||
&& (!defined(CONFIG_SOC_SERIES_STM32L1X) || defined(SPI_CR2_FRF))
|
||||
LL_SPI_SetStandard(spi, LL_SPI_PROTOCOL_MOTOROLA);
|
||||
if (cfg->ti_mode) {
|
||||
LL_SPI_SetStandard(spi, LL_SPI_PROTOCOL_TI);
|
||||
} else {
|
||||
LL_SPI_SetStandard(spi, LL_SPI_PROTOCOL_MOTOROLA);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* At this point, it's mandatory to set this on the context! */
|
||||
|
@ -924,6 +928,14 @@ static void spi_stm32_irq_config_func_##id(const struct device *dev) \
|
|||
#define SPI_DMA_STATUS_SEM(id)
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIG_SOC_SERIES_STM32F1X) \
|
||||
&& (!defined(CONFIG_SOC_SERIES_STM32L1X) || defined(SPI_CR2_FRF))
|
||||
#define STM32_SPI_TI_MODE_CONFIG(id) \
|
||||
.ti_mode = DT_INST_PROP(id, frame_format),
|
||||
#else
|
||||
#define STM32_SPI_TI_MODE_CONFIG(id)
|
||||
#endif
|
||||
|
||||
#if DT_HAS_COMPAT_STATUS_OKAY(st_stm32_spi_subghz)
|
||||
#define STM32_SPI_USE_SUBGHZSPI_NSS_CONFIG(id) \
|
||||
.use_subghzspi_nss = DT_INST_PROP_OR( \
|
||||
|
@ -948,6 +960,7 @@ static const struct spi_stm32_config spi_stm32_cfg_##id = { \
|
|||
.pinctrl_list_size = ARRAY_SIZE(spi_pins_##id), \
|
||||
STM32_SPI_IRQ_HANDLER_FUNC(id) \
|
||||
STM32_SPI_USE_SUBGHZSPI_NSS_CONFIG(id) \
|
||||
STM32_SPI_TI_MODE_CONFIG(id) \
|
||||
}; \
|
||||
\
|
||||
static struct spi_stm32_data spi_stm32_dev_data_##id = { \
|
||||
|
|
|
@ -19,6 +19,16 @@ struct spi_stm32_config {
|
|||
#ifdef CONFIG_SPI_STM32_INTERRUPT
|
||||
irq_config_func_t irq_config;
|
||||
#endif
|
||||
|
||||
#if !defined(CONFIG_SOC_SERIES_STM32F1X) \
|
||||
&& (!defined(CONFIG_SOC_SERIES_STM32L1X) || defined(SPI_CR2_FRF))
|
||||
/*
|
||||
* if supported by the instance, this bit will configure the frame-format
|
||||
* of the SPI to be compliant with the TI protocol.
|
||||
*/
|
||||
bool ti_mode;
|
||||
#endif
|
||||
|
||||
#if DT_HAS_COMPAT_STATUS_OKAY(st_stm32_spi_subghz)
|
||||
bool use_subghzspi_nss;
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue