# Copyright (c) 2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
# Description:
# Cyclone V SoC Development Kit Board configuration file

CONFIG_SOC_SERIES_CYCLONE5=y
CONFIG_SOC_CYCLONE5=y
CONFIG_BOARD_CVSXDEVKIT=y
CONFIG_ARM_ARCH_TIMER=y

CONFIG_SYSCON=y

# Serial Drivers
CONFIG_SERIAL=y
CONFIG_UART_NS16550=y
CONFIG_UART_NS16950=y
#CONFIG_UART_INTERRUPT_DRIVEN=y
#CONFIG_UART_NS16550_ACCESS_WORD_ONLY=y
#CONFIG_UART_ALTERA_JTAG=y

# COUNTER
CONFIG_COUNTER=y
CONFIG_COUNTER_MAXIM_DS3231=y
CONFIG_COUNTER_INIT_PRIORITY=80

#Config Console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
CONFIG_PRINTK=y

#Flash not used.
CONFIG_FLASH_SIZE=0
CONFIG_FLASH_BASE_ADDRESS=0x0

# GPIOs
CONFIG_GPIO=y
CONFIG_GPIO_DW=y
CONFIG_GPIO_DW_0=y
CONFIG_GPIO_DW_1=y
CONFIG_GPIO_DW_2=y

# I2C
CONFIG_I2C=y
