Merge branch 'master' of git://www.denx.de/git/u-boot-socfpga
[oweals/u-boot.git] / drivers / serial / Kconfig
index c94353ba6acf44ac0f1c5360f11a8da86ce7f649..54e6f26d38d00a9a5b6781148f9fc1cd2d03b4b2 100644 (file)
@@ -7,6 +7,75 @@ config DM_SERIAL
          implements serial_putc() etc. The uclass interface is
          defined in include/serial.h.
 
+config DEBUG_UART
+       bool "Enable an early debug UART for debugging"
+       help
+         The debug UART is intended for use very early in U-Boot to debug
+         problems when an ICE or other debug mechanism is not available.
+
+         To use it you should:
+         - Make sure your UART supports this interface
+         - Enable CONFIG_DEBUG_UART
+         - Enable the CONFIG for your UART to tell it to provide this interface
+               (e.g. CONFIG_DEBUG_UART_NS16550)
+         - Define the required settings as needed (see below)
+         - Call debug_uart_init() before use
+         - Call debug_uart_putc() to output a character
+
+         Depending on your platform it may be possible to use this UART before
+         a stack is available.
+
+         If your UART does not support this interface you can probably add
+         support quite easily. Remember that you cannot use driver model and
+         it is preferred to use no stack.
+
+         You must not use this UART once driver model is working and the
+         serial drivers are up and running (done in serial_init()). Otherwise
+         the drivers may conflict and you will get strange output.
+
+choice
+       prompt "Select which UART will provide the debug UART"
+       depends on DEBUG_UART
+
+config DEBUG_UART_NS16550
+       bool "ns16550"
+       help
+         Select this to enable a debug UART using the ns16550 driver. You
+         will need to provide parameters to make this work. The driver will
+         be available until the real driver model serial is running.
+
+endchoice
+
+config DEBUG_UART_BASE
+       hex "Base address of UART"
+       depends on DEBUG_UART
+       help
+         This is the base address of your UART for memory-mapped UARTs.
+
+         A default should be provided by your board, but if not you will need
+         to use the correct value here.
+
+config DEBUG_UART_CLOCK
+       int "UART input clock"
+       depends on DEBUG_UART
+       help
+         The UART input clock determines the speed of the internal UART
+         circuitry. The baud rate is derived from this by dividing the input
+         clock down.
+
+         A default should be provided by your board, but if not you will need
+         to use the correct value here.
+
+config DEBUG_UART_SHIFT
+       int "UART register shift"
+       depends on DEBUG_UART
+       default 0 if DEBUG_UART
+       help
+         Some UARTs (notably ns16550) support different register layouts
+         where the registers are spaced either as bytes, words or some other
+         value. Use this value to specify the shift to use, where 0=byte
+         registers, 2=32-bit word registers, etc.
+
 config UNIPHIER_SERIAL
        bool "UniPhier on-chip UART support"
        depends on ARCH_UNIPHIER && DM_SERIAL