From 88f58a3694c936791eb875d3cc85f1cde41c3d09 Mon Sep 17 00:00:00 2001 From: Yu Chien Peter Lin Date: Fri, 14 Oct 2022 08:32:45 +0800 Subject: platform: andes/ae350: Use fdt serial driver Andes UART is compatible with uart8250 driver. We can use fdt_serial_init() as platform console init hook. dts example: serial0: serial@f0300000 { compatible = "andestech,uart16550", "ns16550a"; reg = <0x00000000 0xf0300000 0x00000000 0x00001000>; interrupts = <9 4>; interrupt-parent = <&plic0>; clock-frequency = <19660800>; current-speed = <38400>; reg-shift = <2>; reg-offset = <32>; reg-io-width = <4>; no-loopback-test = <1>; }; Signed-off-by: Yu Chien Peter Lin Reviewed-by: Anup Patel --- platform/andes/ae350/Kconfig | 3 ++- platform/andes/ae350/platform.c | 15 ++------------- platform/andes/ae350/platform.h | 8 -------- 3 files changed, 4 insertions(+), 22 deletions(-) diff --git a/platform/andes/ae350/Kconfig b/platform/andes/ae350/Kconfig index 3abad04..8dd8ebe 100644 --- a/platform/andes/ae350/Kconfig +++ b/platform/andes/ae350/Kconfig @@ -4,7 +4,8 @@ config PLATFORM_ANDES_AE350 bool select FDT select IRQCHIP_PLIC - select SERIAL_UART8250 + select FDT_SERIAL + select FDT_SERIAL_UART8250 default y if PLATFORM_ANDES_AE350 diff --git a/platform/andes/ae350/platform.c b/platform/andes/ae350/platform.c index c07f6be..04428d1 100644 --- a/platform/andes/ae350/platform.c +++ b/platform/andes/ae350/platform.c @@ -18,7 +18,7 @@ #include #include #include -#include +#include #include "platform.h" #include "plicsw.h" #include "plmt.h" @@ -43,17 +43,6 @@ static int ae350_final_init(bool cold_boot) return 0; } -/* Initialize the platform console. */ -static int ae350_console_init(void) -{ - return uart8250_init(AE350_UART_ADDR, - AE350_UART_FREQUENCY, - AE350_UART_BAUDRATE, - AE350_UART_REG_SHIFT, - AE350_UART_REG_WIDTH, - AE350_UART_REG_OFFSET); -} - /* Initialize the platform interrupt controller for current HART. */ static int ae350_irqchip_init(bool cold_boot) { @@ -155,7 +144,7 @@ static int ae350_vendor_ext_provider(long extid, long funcid, const struct sbi_platform_operations platform_ops = { .final_init = ae350_final_init, - .console_init = ae350_console_init, + .console_init = fdt_serial_init, .irqchip_init = ae350_irqchip_init, diff --git a/platform/andes/ae350/platform.h b/platform/andes/ae350/platform.h index 9b54816..c699b7f 100644 --- a/platform/andes/ae350/platform.h +++ b/platform/andes/ae350/platform.h @@ -22,14 +22,6 @@ #define AE350_L2C_ADDR 0xe0500000 -#define AE350_UART_ADDR_OFFSET 0x20 -#define AE350_UART_ADDR (0xf0300000 + AE350_UART_ADDR_OFFSET) -#define AE350_UART_FREQUENCY 19660800 -#define AE350_UART_BAUDRATE 38400 -#define AE350_UART_REG_SHIFT 2 -#define AE350_UART_REG_WIDTH 0 -#define AE350_UART_REG_OFFSET 0 - /*Memory and Miscellaneous Registers*/ #define CSR_MILMB 0x7c0 #define CSR_MDLMB 0x7c1 -- cgit v1.2.3