# M5Stack Core2 board configuration
# Copyright (c) 2022 AVSystem Sławomir Wolf Sp.j. (AVSystem)
# Copyright (c) 2023 Martin Kiepfer <m.kiepfer@teleschirm.org>
# SPDX-License-Identifier: Apache-2.0

if BOARD_M5STACK_CORE2

config BOARD
	default "m5stack_core2"
	depends on BOARD_M5STACK_CORE2

config ENTROPY_GENERATOR
	default y

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

config KERNEL_MEM_POOL
	default y

choice BT_HCI_BUS_TYPE
	default BT_ESP32 if BT
endchoice

config REGULATOR_AXP192_INIT_PRIORITY
	default 81

config GPIO_HOGS_INIT_PRIORITY
	default 82

config INPUT_FT5336_INTERRUPT
	default y if INPUT

config INPUT
	default y

config LV_COLOR_16_SWAP
	default y if LVGL

# Increase initialization priority of MIPI DBI device, so that it initializes
# after the GPIO controller
if MIPI_DBI

config MIPI_DBI_INIT_PRIORITY
	default 82

endif # MIPI_DBI

endif # BOARD_M5STACK_CORE2
