# Kconfig.fe310 - SiFive Freedom E310 UART configuration option
#
# Copyright (c) 2017 Jean-Paul Etienne <fractalclone@gmail.com>
#
# SPDX-License-Identifier: Apache-2.0
#

menuconfig UART_FE310
	bool "SiFive Freedom E310 serial driver"
	depends on SOC_RISCV32_FE310
	default n
	select SERIAL_HAS_DRIVER
	select SERIAL_SUPPORT_INTERRUPT
	help
	  This option enables the SiFive Freedom E310 serial driver.

# ---------- Port 0 ----------

menuconfig UART_FE310_PORT_0
	bool "Enable FE310 Port 0"
	default n
	depends on UART_FE310
	help
	  This tells the driver to configure the UART port at boot, depending on
	  the additional configure options below.

config UART_FE310_PORT_0_NAME
	string "Port 0 Device Name"
	default "uart0"
	depends on UART_FE310_PORT_0
	help
	  This is the device name for UART, and is included in the device
	  struct.

config UART_FE310_PORT_0_BAUD_RATE
	int "Port 0 Baud Rate"
	default 0
	depends on UART_FE310_PORT_0
	help
	  The baud rate for UART port to be set to at boot.

	  Leave at 0 to skip initialization.

config UART_FE310_PORT_0_IRQ_PRIORITY
	int "Port 0 Interrupt Priority"
	default 1
	depends on UART_FE310_PORT_0
	help
	  Port 0 Interrupt Priority

config UART_FE310_PORT_0_RXCNT_IRQ
	int "Port 0 RX Interrupt Threshold Count"
	default 0
	depends on UART_FE310_PORT_0
	help
	  Port 0 RX Threshold at which the RX FIFO interrupt triggers.

config UART_FE310_PORT_0_TXCNT_IRQ
	int "Port 0 TX Interrupt Threshold Count"
	default 0
	depends on UART_FE310_PORT_0
	help
	  Port 0 TX Threshold at which the TX FIFO interrupt triggers.

# ---------- Port 1 ----------

menuconfig UART_FE310_PORT_1
	bool "Enable FE310 Port 1"
	default n
	depends on UART_FE310
	help
	  This tells the driver to configure the UART port at boot, depending on
	  the additional configure options below.

config UART_FE310_PORT_1_NAME
	string "Port 1 Device Name"
	default "uart1"
	depends on UART_FE310_PORT_1
	help
	  This is the device name for UART, and is included in the device
	  struct.

config UART_FE310_PORT_1_BAUD_RATE
	int "Port 1 Baud Rate"
	default 0
	depends on UART_FE310_PORT_1
	help
	  The baud rate for UART port to be set to at boot.

	  Leave at 0 to skip initialization.

config UART_FE310_PORT_1_IRQ_PRIORITY
	int "Port 1 Interrupt Priority"
	default 1
	depends on UART_FE310_PORT_1
	help
	  Port 1 Interrupt Priority

config UART_FE310_PORT_1_RXCNT_IRQ
	int "Port 0 RX Interrupt Threshold Count"
	default 0
	depends on UART_FE310_PORT_1
	help
	  Port 1 RX Threshold at which the RX FIFO interrupt triggers.

config UART_FE310_PORT_1_TXCNT_IRQ
	int "Port 1 TX Interrupt Threshold Count"
	default 0
	depends on UART_FE310_PORT_1
	help
	  Port 1 TX Threshold at which the TX FIFO interrupt triggers.
