config UART_NATIVE_POSIX
	bool "UART driver for native_posix"
	select SERIAL_HAS_DRIVER
	depends on ARCH_POSIX
	help
	  This enables a UART driver for the POSIX ARCH. The driver can be configured
	  to either connect to the terminal from which native_posix was run, or into
	  one dedicated pseudoterminal for this UART.

if UART_NATIVE_POSIX

config UART_NATIVE_POSIX_PORT_0_NAME
	string "Port 0 Device Name"
	default "UART_0"
	help
	  This is the device name for UART, and is included in the device
	  struct.

choice
	prompt "Native UART Port 0 connection"
	default NATIVE_UART_0_ON_OWN_PTY

config NATIVE_UART_0_ON_OWN_PTY
	bool "Connect the UART to its own pseudo terminal"
	help
	  Connect the UART to its own pseudoterminal. This is the preferred option
	  for users who want to use Zephyr's shell.
	  Moreover this option does not conflict with any other native_posix backend
	  which may use the calling shell standard input/output.

config NATIVE_UART_0_ON_STDINOUT
	bool "Connect the UART to the invoking shell stdin/stdout"
	help
	  Connect the UART to the stdin & stdout of the calling shell/terminal which
	  invoked the native_posix executable. This is good enough for automated
	  testing, or when feeding from a file/pipe.
	  Note that other, non UART messages, will also be printed to the terminal.
	  This option should NOT be used in conjunction with
	  NATIVE_POSIX_STDIN_CONSOLE
	  It is strongly discouraged to try to use this option with the new shell
	  interactively, as the default terminal configuration is NOT appropriate
	  for interactive use.

endchoice

config NATIVE_UART_AUTOATTACH_DEFAULT_CMD
	string "Default command to attach the UART to a new terminal"
	default "xterm -e screen %s &"
	help
	  If the native_posix executable is called with the --attach_uart command line
	  option, this will be the default command which will be run to attach a new
	  terminal to it.
	  Note that this command must have one, and only one, '%s' as placeholder for
	  the pseudoterminal device name (e.g. /dev/pts/35)
	  This is only applicable if a UART is configured to use its own PTY with
	  NATIVE_UART_x_ON_OWN_PTY.

endif # UART_NATIVE_POSIX
