# STM32 Nucleo-64 development board with STM32F030R8 MCU

# Copyright (c) 2017 RnDity Sp. z o.o.
# SPDX-License-Identifier: Apache-2.0

if BOARD_NUCLEO_F030R8

config BOARD
	default "nucleo_f030r8"

config UART_2
	default y
	depends on UART_CONSOLE

# Disable ports D and F to allow kernel test cases common and
# contex to run on nucleo_f030r8.
# Test cases fail due to 'SRAM' region overflow.
if GPIO

config GPIO_STM32_PORTD
	default n

config GPIO_STM32_PORTF
	default n

endif # GPIO

if I2C

config I2C_1
	default y

config I2C_2
	default y

endif

if SPI

config SPI_1
	default y

config SPI_2
	default y

endif

endif # BOARD_NUCLEO_F030R8
