#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

if 16550_UART

config 16550_SERIAL_DISABLE_REORDERING
	bool "Disable reordering of ttySx devices."
	default n
	---help---
		NuttX per default reorders the serial ports (/dev/ttySx) so that the
		console is always on /dev/ttyS0. If more than one UART is in use this
		can, however, have the side-effect that all port mappings
		(hardware USART1 -> /dev/ttyS0) change if the console is moved to another
		UART.  This option disables that re-ordering for 16550 UARTs.

config 16550_UART0
	bool "16550 UART0"
	default n

if 16550_UART0

config 16550_UART0_BASE
	hex "16550 UART0 base address"

config 16550_UART0_CLOCK
	int "16550 UART0 clock"

config 16550_UART0_IRQ
	int "16550 UART0 IRQ number"

config 16550_UART0_BAUD
	int "16550 UART0 BAUD"
	default 115200

config 16550_UART0_PARITY
	int "16550 UART0 parity"
	default 0
	range 0 2
	---help---
		16550 UART0 parity.  0=None, 1=Odd, 2=Even.  Default: None

config 16550_UART0_BITS
	int "16550 UART0 number of bits"
	default 8
	---help---
		16550 UART0 number of bits.  Default: 8

config 16550_UART0_2STOP
	int "16550 UART0 two stop bits"
	default 0
	---help---
		0=1 stop bit, 1=Two stop bits.  Default: 1 stop bit

config 16550_UART0_RXBUFSIZE
	int "16550 UART0 Rx buffer size"
	default 256
	---help---
		16550 UART0 Rx buffer size.  Default: 256

config 16550_UART0_TXBUFSIZE
	int "16550 UART0 Tx buffer size"
	default 256
	---help---
		16550 UART0 Tx buffer size.  Default: 256

config 16550_UART0_IFLOWCONTROL
	bool "16550 UART0 RTS flow control"
	default n
	select SERIAL_IFLOWCONTROL
	---help---
		Enable 16550 UART0 RTS flow control

config 16550_UART0_OFLOWCONTROL
	bool "16550 UART0 CTS flow control"
	default n
	select SERIAL_OFLOWCONTROL
	---help---
		Enable 16550 UART0 CTS flow control

endif # 16550_UART0

config 16550_UART1
	bool "16550 UART1"
	default n

if 16550_UART1

config 16550_UART1_BASE
	hex "16550 UART1 base address"

config 16550_UART1_CLOCK
	int "16550 UART1 clock"

config 16550_UART1_IRQ
	int "16550 UART1 IRQ number"

config 16550_UART1_BAUD
	int "16550 UART1 BAUD"
	default 115200

config 16550_UART1_PARITY
	int "16550 UART1 parity"
	default 0
	range 0 2
	---help---
		16550 UART1 parity.  0=None, 1=Odd, 2=Even.  Default: None

config 16550_UART1_BITS
	int "16550 UART1 number of bits"
	default 8
	---help---
		16550 UART1 number of bits.  Default: 8

config 16550_UART1_2STOP
	int "16550 UART1 two stop bits"
	default 0
	---help---
		0=1 stop bit, 1=Two stop bits.  Default: 1 stop bit

config 16550_UART1_RXBUFSIZE
	int "16550 UART1 Rx buffer size"
	default 256
	---help---
		16550 UART1 Rx buffer size.  Default: 256

config 16550_UART1_TXBUFSIZE
	int "16550 UART1 Tx buffer size"
	default 256
	---help---
		16550 UART1 Tx buffer size.  Default: 256

config 16550_UART1_IFLOWCONTROL
	bool "16550 UART1 RTS flow control"
	default n
	select SERIAL_IFLOWCONTROL
	---help---
		Enable 16550 UART1 RTS flow control

config 16550_UART1_OFLOWCONTROL
	bool "16550 UART1 CTS flow control"
	default n
	select SERIAL_OFLOWCONTROL
	---help---
		Enable 16550 UART1 CTS flow control

endif # 16550_UART1

config 16550_UART2
	bool "16550 UART2"
	default n

if 16550_UART2

config 16550_UART2_BASE
	hex "16550 UART2 base address"

config 16550_UART2_CLOCK
	int "16550 UART2 clock"

config 16550_UART2_IRQ
	int "16550 UART2 IRQ number"

config 16550_UART2_BAUD
	int "16550 UART2 BAUD"
	default 115200

config 16550_UART2_PARITY
	int "16550 UART2 parity"
	default 0
	range 0 2
	---help---
		16550 UART2 parity.  0=None, 1=Odd, 2=Even.  Default: None

config 16550_UART2_BITS
	int "16550 UART2 number of bits"
	default 8
	---help---
		16550 UART2 number of bits.  Default: 8

config 16550_UART2_2STOP
	int "16550 UART2 two stop bits"
	default 0
	---help---
		0=1 stop bit, 1=Two stop bits.  Default: 1 stop bit

config 16550_UART2_RXBUFSIZE
	int "16550 UART2 Rx buffer size"
	default 256
	---help---
		16550 UART2 Rx buffer size.  Default: 256

config 16550_UART2_TXBUFSIZE
	int "16550 UART2 Tx buffer size"
	default 256
	---help---
		16550 UART2 Tx buffer size.  Default: 256

config 16550_UART2_IFLOWCONTROL
	bool "16550 UART2 RTS flow control"
	default n
	select SERIAL_IFLOWCONTROL
	---help---
		Enable 16550 UART2 RTS flow control

config 16550_UART2_OFLOWCONTROL
	bool "16550 UART2 CTS flow control"
	default n
	select SERIAL_OFLOWCONTROL
	---help---
		Enable 16550 UART2 CTS flow control

endif # 16550_UART2

config 16550_UART3
	bool "16550 UART3"
	default n

if 16550_UART3

config 16550_UART3_BASE
	hex "16550 UART3 base address"

config 16550_UART3_CLOCK
	int "16550 UART3 clock"

config 16550_UART3_IRQ
	int "16550 UART3 IRQ number"

config 16550_UART3_BAUD
	int "16550 UART3 BAUD"
	default 115200

config 16550_UART3_PARITY
	int "16550 UART3 parity"
	default 0
	range 0 2
	---help---
		16550 UART3 parity.  0=None, 1=Odd, 2=Even.  Default: None

config 16550_UART3_BITS
	int "16550 UART3 number of bits"
	default 8
	---help---
		16550 UART3 number of bits.  Default: 8

config 16550_UART3_2STOP
	int "16550 UART3 two stop bits"
	default 0
	---help---
		0=1 stop bit, 1=Two stop bits.  Default: 1 stop bit

config 16550_UART3_RXBUFSIZE
	int "16550 UART3 Rx buffer size"
	default 256
	---help---
		16550 UART3 Rx buffer size.  Default: 256

config 16550_UART3_TXBUFSIZE
	int "16550 UART3 Tx buffer size"
	default 256
	---help---
		16550 UART3 Tx buffer size.  Default: 256

config 16550_UART3_IFLOWCONTROL
	bool "16550 UART3 RTS flow control"
	default n
	select SERIAL_IFLOWCONTROL
	---help---
		Enable 16550 UART3 RTS flow control

config 16550_UART3_OFLOWCONTROL
	bool "16550 UART3 CTS flow control"
	default n
	select SERIAL_OFLOWCONTROL
	---help---
		Enable 16550 UART3 CTS flow control

endif # 16550_UART3

choice
	prompt "16550 Serial Console"
	default 16550_NO_SERIAL_CONSOLE
	depends on DEV_CONSOLE

config 16550_UART0_SERIAL_CONSOLE
	bool "16550 UART0 serial console"
	depends on 16550_UART0
	select SERIAL_CONSOLE

config 16550_UART1_SERIAL_CONSOLE
	bool "16550 UART1 serial console"
	depends on 16550_UART1
	select SERIAL_CONSOLE

config 16550_UART2_SERIAL_CONSOLE
	bool "16550 UART2 serial console"
	depends on 16550_UART2
	select SERIAL_CONSOLE

config 16550_UART3_SERIAL_CONSOLE
	bool "16550 UART3 serial console"
	depends on 16550_UART3
	select SERIAL_CONSOLE

config 16550_NO_SERIAL_CONSOLE
	bool "No 16550 serial console"

endchoice # 16550 Serial Console

config 16550_SUPRESS_CONFIG
	bool "Suppress 16550 configuration"
	default n

config 16550_SUPRESS_INITIAL_CONFIG
	bool "Suppress initial 16550 configuration"
	depends on !16550_SUPRESS_CONFIG
	default n
	---help---
		This option is useful, for example, if you are using a bootloader
		that configures the 16550_UART.  In that case, you may want to
		just leave the existing console configuration in place.  Default: n

config SERIAL_UART_ARCH_MMIO
	bool "Platform access register through the memory mapping"
	default n

config SERIAL_UART_ARCH_IOCTL
	bool "Platform has own custom IOCTL"
	default n

config 16550_REGINCR
	int "Address increment between 16550 registers"
	default 1
	---help---
		The address increment between 16550 registers.  Options are 1, 2, or 4.
		Default: 1

config 16550_REGWIDTH
	int "Bit width of 16550 registers"
	default 8
	---help---
		The bit width of registers.  Options are 8, 16, or 32. Default: 8

config 16550_ADDRWIDTH
	int "Address width of 16550 registers"
	default 8
	---help---
		The bit width of registers.  Options are 8, 16, or 32. Default: 8

endif # 16550_UART
