X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=include%2Fdebug_uart.h;h=5d5349bbd2e87ed9b65131fc6d095dd56cd19172;hb=c7fefcb9125bbd183dc095996c6747273043d988;hp=a75e377dc0fab36a48bffbe0972b3388dc626941;hpb=413978d118bb7d7b0a8488d97d802f2899cd81ce;p=oweals%2Fu-boot.git diff --git a/include/debug_uart.h b/include/debug_uart.h index a75e377dc0..5d5349bbd2 100644 --- a/include/debug_uart.h +++ b/include/debug_uart.h @@ -38,10 +38,15 @@ * To enable the debug UART in your serial driver: * * - #include - * - Define debug_uart_init(), trying to avoid using the stack + * - Define _debug_uart_init(), trying to avoid using the stack * - Define _debug_uart_putc() as static inline (avoiding stack usage) * - Immediately afterwards, add DEBUG_UART_FUNCS to define the rest of the * functionality (printch(), etc.) + * + * If your board needs additional init for the UART to work, enable + * CONFIG_DEBUG_UART_BOARD_INIT and write a function called + * board_debug_uart_init() to perform that init. When debug_uart_init() is + * called, the init will happen automatically. */ /** @@ -57,6 +62,14 @@ */ void debug_uart_init(void); +#ifdef CONFIG_DEBUG_UART_BOARD_INIT +void board_debug_uart_init(void); +#else +static inline void board_debug_uart_init(void) +{ +} +#endif + /** * printch() - Output a character to the debug UART * @@ -92,6 +105,12 @@ void printhex4(uint value); */ void printhex8(uint value); +#ifdef CONFIG_DEBUG_UART_ANNOUNCE +#define _DEBUG_UART_ANNOUNCE printascii(" "); +#else +#define _DEBUG_UART_ANNOUNCE +#endif + /* * Now define some functions - this should be inserted into the serial driver */ @@ -132,6 +151,13 @@ void printhex8(uint value); void printhex8(uint value) \ { \ printhex(value, 8); \ - } + } \ +\ + void debug_uart_init(void) \ + { \ + board_debug_uart_init(); \ + _debug_uart_init(); \ + _DEBUG_UART_ANNOUNCE \ + } \ #endif