[PATCH v2 03/12] platform: andes/ae350: Use fdt serial driver
Anup Patel
anup at brainfault.org
Tue Oct 11 09:29:23 PDT 2022
On Mon, Oct 3, 2022 at 5:23 PM Yu Chien Peter Lin
<peterlin at andestech.com> wrote:
>
> Andes UART is compatible with uart8250 driver. We can use
> fdt_serial_init() as platform console init hook.
>
> dts example:
>
> serial0: serial at 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 <peterlin at andestech.com>
Looks good to me.
Reviewed-by: Anup Patel <anup at brainfault.org>
Regards,
Anup
> ---
> 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 <sbi_utils/fdt/fdt_helper.h>
> #include <sbi_utils/fdt/fdt_fixup.h>
> #include <sbi_utils/irqchip/plic.h>
> -#include <sbi_utils/serial/uart8250.h>
> +#include <sbi_utils/serial/fdt_serial.h>
> #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
> --
> 2.34.1
>
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi
More information about the opensbi
mailing list