Samuel Holland | 4c33c26 | 2021-09-12 10:56:09 -0500 | [diff] [blame] | 1 | // SPDX-License-Identifier: GPL-2.0+ |
| 2 | |
| 3 | #include <debug_uart.h> |
| 4 | #include <asm/sbi.h> |
| 5 | |
Heinrich Schuchardt | 444c6c5 | 2023-09-04 13:24:04 +0200 | [diff] [blame] | 6 | #ifdef CONFIG_SBI_V01 |
| 7 | |
Samuel Holland | 4c33c26 | 2021-09-12 10:56:09 -0500 | [diff] [blame] | 8 | static inline void _debug_uart_init(void) |
| 9 | { |
| 10 | } |
| 11 | |
| 12 | static inline void _debug_uart_putc(int c) |
| 13 | { |
| 14 | if (CONFIG_IS_ENABLED(RISCV_SMODE)) |
| 15 | sbi_console_putchar(c); |
| 16 | } |
| 17 | |
Heinrich Schuchardt | 444c6c5 | 2023-09-04 13:24:04 +0200 | [diff] [blame] | 18 | #else |
| 19 | |
| 20 | static int sbi_dbcn_available; |
| 21 | |
| 22 | static inline void _debug_uart_init(void) |
| 23 | { |
| 24 | if (CONFIG_IS_ENABLED(RISCV_SMODE)) |
| 25 | sbi_dbcn_available = sbi_probe_extension(SBI_EXT_DBCN); |
| 26 | } |
| 27 | |
| 28 | static inline void _debug_uart_putc(int ch) |
| 29 | { |
| 30 | if (CONFIG_IS_ENABLED(RISCV_SMODE) && sbi_dbcn_available) |
| 31 | sbi_dbcn_write_byte(ch); |
| 32 | } |
| 33 | |
| 34 | #endif |
| 35 | |
Samuel Holland | 4c33c26 | 2021-09-12 10:56:09 -0500 | [diff] [blame] | 36 | DEBUG_UART_FUNCS |