mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2025-08-24 15:31:22 +01:00

Synopsys DesignWare APB UART is seen on the StarFive JH7100 SoC. Its programming interface is compatible with the existing 8250 UART driver. Simply add its compatible string to the driver makes it work with the StarFive JH7100 SoC on a BeagleV board. With this patch, the generic platform firmware can be used out of the box on the BeagleV board. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Anup Patel <anup.patel@wdc.com>
39 lines
888 B
C
39 lines
888 B
C
/*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*
|
|
* Copyright (c) 2020 Western Digital Corporation or its affiliates.
|
|
*
|
|
* Authors:
|
|
* Anup Patel <anup.patel@wdc.com>
|
|
*/
|
|
|
|
#include <sbi_utils/fdt/fdt_helper.h>
|
|
#include <sbi_utils/serial/fdt_serial.h>
|
|
#include <sbi_utils/serial/uart8250.h>
|
|
|
|
static int serial_uart8250_init(void *fdt, int nodeoff,
|
|
const struct fdt_match *match)
|
|
{
|
|
int rc;
|
|
struct platform_uart_data uart;
|
|
|
|
rc = fdt_parse_uart8250_node(fdt, nodeoff, &uart);
|
|
if (rc)
|
|
return rc;
|
|
|
|
return uart8250_init(uart.addr, uart.freq, uart.baud,
|
|
uart.reg_shift, uart.reg_io_width);
|
|
}
|
|
|
|
static const struct fdt_match serial_uart8250_match[] = {
|
|
{ .compatible = "ns16550" },
|
|
{ .compatible = "ns16550a" },
|
|
{ .compatible = "snps,dw-apb-uart" },
|
|
{ },
|
|
};
|
|
|
|
struct fdt_serial fdt_serial_uart8250 = {
|
|
.match_table = serial_uart8250_match,
|
|
.init = serial_uart8250_init,
|
|
};
|