# B_U585I_IOT02A discovery kit board configuration

# Copyright (c) 2021 STMicroelectronics
# SPDX-License-Identifier: Apache-2.0

if BOARD_B_U585I_IOT02A

config BOARD
	default "b_u585i_iot02a"

config SPI_STM32_INTERRUPT
	default y
	depends on SPI

# Get flash configuration for NS image from dts flash partition
config USE_DT_CODE_PARTITION
	default y if TRUSTED_EXECUTION_NONSECURE

if BUILD_WITH_TFM

# Initial Attestation key provisioned by the BL1 bootloader
config TFM_INITIAL_ATTESTATION_KEY
	default y

config TFM_DUMMY_PROVISIONING
	default n

endif # BUILD_WITH_TFM

# Disable Flow control
if BT

config BT_HCI_ACL_FLOW_CONTROL
	default n

endif # BT

endif # BOARD_B_U585I_IOT02A
