# 96Boards STM32 Sensor Mezzanine board configuration

# Copyright (c) 2018 Linaro Limited.
# SPDX-License-Identifier: Apache-2.0

if BOARD_96B_STM32_SENSOR_MEZ

config BOARD
	default "96b_stm32_sensor_mez"

if UART_CONSOLE

config UART_4
	default y

endif # UART_CONSOLE

if I2C

config I2C_1
	default y

config I2C_2
	default y

config I2C_STM32_INTERRUPT
	default y

endif # I2C

if I2S

config I2S_STM32
	default y

# configure PLLI2S to generate a I2SxCLK=128MHz
config I2S_STM32_USE_PLLI2S_ENABLE
	default y

config I2S_STM32_PLLI2S_PLLM
	default 8

config I2S_STM32_PLLI2S_PLLN
	default 192

config I2S_STM32_PLLI2S_PLLR
	default 3

config I2S_2
	default y

endif # I2S

if DMA

config DMA_STM32F4X
	default y

endif # DMA

if SPI

config SPI_1
	default y

config SPI_2
	default y

config SPI_STM32_INTERRUPT
	default y

endif # SPI

if PWM

config PWM_STM32_3
	default y

config PWM_STM32_4
	default y

config PWM_STM32_9
	default y

endif # PWM

endif # BOARD_96B_STM32_SENSOR_MEZ
