# Copyright (c) 2023 Joel Guittet
# SPDX-License-Identifier: Apache-2.0

CONFIG_SOC_SERIES_SAMD51=y
CONFIG_SOC_PART_NUMBER_SAMD51P19A=y
CONFIG_SOC_ATMEL_SAMD5X_XOSC32K=y
CONFIG_SOC_ATMEL_SAMD5X_XOSC32K_AS_MAIN=y
CONFIG_BOARD_WIO_TERMINAL=y
CONFIG_ARM_MPU=y
CONFIG_CORTEX_M_SYSTICK=y
CONFIG_HW_STACK_PROTECTION=y
CONFIG_REGULATOR=y
CONFIG_GPIO=y

# BOSSA bootloader
CONFIG_BOOTLOADER_BOSSA=y
CONFIG_BOOTLOADER_BOSSA_ADAFRUIT_UF2=y
CONFIG_BUILD_OUTPUT_UF2=y

# Console over USB CDC-ACM
CONFIG_SERIAL=y
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
CONFIG_UART_INTERRUPT_DRIVEN=y
CONFIG_USB_DEVICE_STACK=y
CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=y
CONFIG_USB_DEVICE_VID=0x2886
CONFIG_USB_DEVICE_PID=0x802D
CONFIG_USB_DEVICE_MANUFACTURER="Seeed Studio"
CONFIG_USB_DEVICE_PRODUCT="Wio Terminal"
CONFIG_USB_CDC_ACM_LOG_LEVEL_OFF=y
