X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=include%2Fdebug_uart.h;h=714b369e6fed75eba5424374f4679a7becf7af0a;hb=92832045c54586e9dffa082ff8cd8c2ef6040757;hp=2980ae6200f25949c75a32e834b0329ae3020471;hpb=b7b24a7a3cd74bb165d28a2959ed9143e3648fbf;p=platform%2Fkernel%2Fu-boot.git diff --git a/include/debug_uart.h b/include/debug_uart.h index 2980ae6..714b369 100644 --- a/include/debug_uart.h +++ b/include/debug_uart.h @@ -1,10 +1,9 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ /* * Early debug UART support * * (C) Copyright 2014 Google, Inc * Writte by Simon Glass - * - * SPDX-License-Identifier: GPL-2.0+ */ #ifndef _DEBUG_UART_H @@ -89,28 +88,46 @@ void printascii(const char *str); * * @value: Value to output */ -void printhex2(uint value); +void printhex2(unsigned int value); /** * printhex4() - Output a 4-digit hex value * * @value: Value to output */ -void printhex4(uint value); +void printhex4(unsigned int value); /** * printhex8() - Output a 8-digit hex value * * @value: Value to output */ -void printhex8(uint value); +void printhex8(unsigned int value); + +/** + * printdec() - Output a decimalism value + * + * @value: Value to output + */ +void printdec(unsigned int value); #ifdef CONFIG_DEBUG_UART_ANNOUNCE -#define _DEBUG_UART_ANNOUNCE printascii(" "); +#define _DEBUG_UART_ANNOUNCE printascii("\n\n"); #else #define _DEBUG_UART_ANNOUNCE #endif +#define serial_dout(reg, value) \ + serial_out_shift((char *)com_port + \ + ((char *)reg - (char *)com_port) * \ + (1 << CONFIG_DEBUG_UART_SHIFT), \ + CONFIG_DEBUG_UART_SHIFT, value) +#define serial_din(reg) \ + serial_in_shift((char *)com_port + \ + ((char *)reg - (char *)com_port) * \ + (1 << CONFIG_DEBUG_UART_SHIFT), \ + CONFIG_DEBUG_UART_SHIFT) + /* * Now define some functions - this should be inserted into the serial driver */ @@ -134,33 +151,45 @@ void printhex8(uint value); _printch(*str++); \ } \ \ - static inline void printhex1(uint digit) \ + static inline void printhex1(unsigned int digit) \ { \ digit &= 0xf; \ _debug_uart_putc(digit > 9 ? digit - 10 + 'a' : digit + '0'); \ } \ \ - static inline void printhex(uint value, int digits) \ + static inline void printhex(unsigned int value, int digits) \ { \ while (digits-- > 0) \ printhex1(value >> (4 * digits)); \ } \ \ - void printhex2(uint value) \ + void printhex2(unsigned int value) \ { \ printhex(value, 2); \ } \ \ - void printhex4(uint value) \ + void printhex4(unsigned int value) \ { \ printhex(value, 4); \ } \ \ - void printhex8(uint value) \ + void printhex8(unsigned int value) \ { \ printhex(value, 8); \ } \ \ + void printdec(unsigned int value) \ + { \ + if (value > 10) { \ + printdec(value / 10); \ + value %= 10; \ + } else if (value == 10) { \ + _debug_uart_putc('1'); \ + value = 0; \ + } \ + _debug_uart_putc('0' + value); \ + } \ +\ void debug_uart_init(void) \ { \ board_debug_uart_init(); \