1 // SPDX-License-Identifier: GPL-2.0+
2 
3 #include <debug_uart.h>
4 #include <asm/sbi.h>
5 
6 #ifdef CONFIG_SBI_V01
7 
_debug_uart_init(void)8 static inline void _debug_uart_init(void)
9 {
10 }
11 
_debug_uart_putc(int c)12 static inline void _debug_uart_putc(int c)
13 {
14 	if (CONFIG_IS_ENABLED(RISCV_SMODE))
15 		sbi_console_putchar(c);
16 }
17 
18 #else
19 
20 static int sbi_dbcn_available __section(".data");
21 
_debug_uart_init(void)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 
_debug_uart_putc(int ch)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 
36 DEBUG_UART_FUNCS
37