# Degu Evaluation Kit configuration

# Copyright (c) 2019 Atmark Techno, Inc.
# SPDX-License-Identifier: Apache-2.0

if BOARD_DEGU_EVK

config BOARD
	default "degu_evk"

if USB

config USB_NRFX
	default y

config USB_DEVICE_STACK
	default y

config USB_DEVICE_PRODUCT
	default "Degu Evaluation Kit"

config USB_UART_CONSOLE
	default y

config UART_INTERRUPT_DRIVEN
	default y

config UART_LINE_CTRL
	default y

config UART_CONSOLE_ON_DEV_NAME
	default "CDC_ACM_0"

config UART_SHELL_ON_DEV_NAME
	default "CDC_ACM_0"

endif # USB

config IEEE802154_NRF5
	default y
	depends on IEEE802154

if DISK_ACCESS_FLASH

config DISK_FLASH_DEV_NAME
	default "NRF_FLASH_DRV_NAME"

config DISK_FLASH_START
	default 0xf8000

config DISK_FLASH_MAX_RW_SIZE
	default 4

config DISK_ERASE_BLOCK_SIZE
	default 0x1000

config DISK_FLASH_ERASE_ALIGNMENT
	default 0x1000

config DISK_VOLUME_SIZE
	default 0x8000

endif # DISK_ACCESS_FLASH

endif # BOARD_DEGU_EVK
