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

if BOARD_TLSR9518ADK80D

config SOC_FLASH_TELINK_B91
	default y if FLASH

if BT

# BLE Controller SDK from hal_telink requires
# Telink's toolchain with FPU support
config FPU
	default y if "$(ZEPHYR_TOOLCHAIN_VARIANT)" != "zephyr"

config BT_HCI_ACL_FLOW_CONTROL
	default n

choice BT_HCI_BUS_TYPE
	default BT_B91
endchoice

endif # BT

# Workaround for not being able to have commas in macro arguments
DT_CHOSEN_Z_CODE_PARTITION := zephyr,code-partition

config FLASH_LOAD_OFFSET
	default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CODE_PARTITION)) if USE_DT_CODE_PARTITION

# Buffer for image writter shall be less(multiple of access alignment) or
# equal to flash page. tlsr9518adk80d boards use external P25Q16 IC as
# flesh memory. Flash page size of the IC is 256 bytes. So that, it is
# maximum image writer buffer size for such kind of boards.
config IMG_BLOCK_BUF_SIZE
	default 256 if MCUBOOT_IMG_MANAGER

endif
