# HELTEC board configuration

# Copyright (c) 2021 Instituto de Pesquisas Eldorado (eldorado.org.br)
# SPDX-License-Identifier: Apache-2.0

if BOARD_HELTEC_WIFI_LORA32_V2_ESP32_PROCPU

config HEAP_MEM_POOL_ADD_SIZE_BOARD
	int
	default 65535 if WIFI && BT
	default 51200 if WIFI
	default 40960 if BT
	default 4096

choice BT_HCI_BUS_TYPE
	default BT_ESP32 if BT
endchoice

endif # BOARD_HELTEC_WIFI_LORA32_V2_ESP32_PROCPU

if BOARD_HELTEC_WIFI_LORA32_V2_ESP32_APPCPU

config HEAP_MEM_POOL_ADD_SIZE_BOARD
	default 256

endif # BOARD_HELTEC_WIFI_LORA_V2_ESP32_APPCPU
