diff options
author | Jun Liang Tan <junliang.tan@linux.starfivetech.com> | 2022-08-17 23:40:56 +0800 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2022-08-23 08:40:17 +0530 |
commit | cbaa9b0333517b3c25bea8d1c71ac8005ff1f727 (patch) | |
tree | ac34ed7af2455b6a0cb1c9efbf53857194146b67 /lib/utils/serial/fdt_serial_cadence.c | |
parent | adf44b51bae1b91dbb90c51fcecfbc23bb3062a5 (diff) | |
download | opensbi-cbaa9b0333517b3c25bea8d1c71ac8005ff1f727.zip opensbi-cbaa9b0333517b3c25bea8d1c71ac8005ff1f727.tar.gz opensbi-cbaa9b0333517b3c25bea8d1c71ac8005ff1f727.tar.bz2 |
lib: utils: serial: Add Cadence UART driver
Add Cadence UART driver
Signed-off-by: Jun Liang Tan <junliang.tan@linux.starfivetech.com>
Signed-off-by: Wei Liang Lim <weiliang.lim@linux.starfivetech.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Diffstat (limited to 'lib/utils/serial/fdt_serial_cadence.c')
-rw-r--r-- | lib/utils/serial/fdt_serial_cadence.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/utils/serial/fdt_serial_cadence.c b/lib/utils/serial/fdt_serial_cadence.c new file mode 100644 index 0000000..946e533 --- /dev/null +++ b/lib/utils/serial/fdt_serial_cadence.c @@ -0,0 +1,35 @@ +/* + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2022 StarFive Technology Co., Ltd. + * + * Author: Jun Liang Tan <junliang.tan@linux.starfivetech.com> + */ + +#include <sbi_utils/fdt/fdt_helper.h> +#include <sbi_utils/serial/fdt_serial.h> +#include <sbi_utils/serial/cadence-uart.h> + +static int serial_cadence_init(void *fdt, int nodeoff, + const struct fdt_match *match) +{ + int rc; + struct platform_uart_data uart = { 0 }; + + rc = fdt_parse_uart_node(fdt, nodeoff, &uart); + if (rc) + return rc; + + return cadence_uart_init(uart.addr, uart.freq, uart.baud); +} + +static const struct fdt_match serial_cadence_match[] = { + { .compatible = "cdns,uart-r1p12" }, + { .compatible = "starfive,jh8100-uart" }, + { }, +}; + +struct fdt_serial fdt_serial_cadence = { + .match_table = serial_cadence_match, + .init = serial_cadence_init +}; |