# SPDX-License-Identifier: Apache-2.0

if SOC_NIOS2F_ZEPHYR

config SOC
	default "nios2f-zephyr"

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 50000000

config ALTERA_AVALON_SYSID
	def_bool y

if GPIO_ALTERA_NIOS2

config ALTERA_AVALON_PIO
	def_bool y

endif # GPIO_ALTERA_NIOS2

if SOC_FLASH_NIOS2_QSPI

config ALTERA_AVALON_QSPI
	def_bool y

endif #SOC_FLASH_NIOS2_QSPI

if I2C_NIOS2

config ALTERA_AVALON_I2C
	def_bool y

endif # I2C_NIOS2

if DMA_NIOS2_MSGDMA

config ALTERA_AVALON_MSGDMA
	def_bool y

endif # DMA_NIOS2_MSGDMA

if UART_NS16550

config UART_NS16550_PORT_0
	default y

if UART_NS16550_PORT_0

config UART_NS16550_PORT_0_OPTIONS
	default 0

endif # UART_NS16550_PORT_0

endif # UART_NS16550

endif # SOC_NIOS2F_ZEPHYR
