earlycon-riscv-sbi.c (720B)
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * RISC-V SBI based earlycon 4 * 5 * Copyright (C) 2018 Anup Patel <anup@brainfault.org> 6 */ 7#include <linux/kernel.h> 8#include <linux/console.h> 9#include <linux/init.h> 10#include <linux/serial_core.h> 11#include <asm/sbi.h> 12 13static void sbi_putc(struct uart_port *port, unsigned char c) 14{ 15 sbi_console_putchar(c); 16} 17 18static void sbi_console_write(struct console *con, 19 const char *s, unsigned n) 20{ 21 struct earlycon_device *dev = con->data; 22 uart_console_write(&dev->port, s, n, sbi_putc); 23} 24 25static int __init early_sbi_setup(struct earlycon_device *device, 26 const char *opt) 27{ 28 device->con->write = sbi_console_write; 29 return 0; 30} 31EARLYCON_DECLARE(sbi, early_sbi_setup);