mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2025-12-22 14:22:00 +00:00
Previously we assume only 1 UART8250 instance can be used. Now we support multiple instances by introducing counterpart functions to putc/getc/init which take an extra *dev parameter, and name them as uart8250_device_xyz() The original functions without the *dev parameter will operate on the default instance exactly the same as before, so no changes on the caller is required. Note: uart8250_device_init only does device initialization without the console registration logic. Signed-off-by: Bo Gan <ganboing@gmail.com> Reviewed-by: Anup Patel <anup@brainfault.org> Link: https://lore.kernel.org/r/20251218104243.562667-7-ganboing@gmail.com Signed-off-by: Anup Patel <anup@brainfault.org>
37 lines
877 B
C
37 lines
877 B
C
/*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*
|
|
* Copyright (c) 2019 Western Digital Corporation or its affiliates.
|
|
*
|
|
* Authors:
|
|
* Anup Patel <anup.patel@wdc.com>
|
|
*/
|
|
|
|
#ifndef __SERIAL_UART8250_H__
|
|
#define __SERIAL_UART8250_H__
|
|
|
|
#include <sbi/sbi_types.h>
|
|
|
|
#define UART_CAP_UUE BIT(0) /* Check UUE capability for XScale PXA UARTs */
|
|
|
|
struct uart8250_device {
|
|
volatile char *base;
|
|
u32 in_freq;
|
|
u32 baudrate;
|
|
u32 reg_width;
|
|
u32 reg_shift;
|
|
};
|
|
|
|
int uart8250_device_getc(struct uart8250_device *dev);
|
|
|
|
void uart8250_device_putc(struct uart8250_device *dev, char ch);
|
|
|
|
void uart8250_device_init(struct uart8250_device *dev, unsigned long base,
|
|
u32 in_freq, u32 baudrate, u32 reg_shift,
|
|
u32 reg_width, u32 reg_offset, u32 caps);
|
|
|
|
int uart8250_init(unsigned long base, u32 in_freq, u32 baudrate, u32 reg_shift,
|
|
u32 reg_width, u32 reg_offset, u32 caps);
|
|
|
|
#endif
|