xref: /optee_os/core/include/drivers/sifive_uart.h (revision 298fa2dbcfbd65cc2470a01993878e92ae69d9f4)
1*298fa2dbSYu-Chien Peter Lin /* SPDX-License-Identifier: BSD-2-Clause */
2*298fa2dbSYu-Chien Peter Lin /*
3*298fa2dbSYu-Chien Peter Lin  * Copyright (c) 2025 SiFive, Inc
4*298fa2dbSYu-Chien Peter Lin  */
5*298fa2dbSYu-Chien Peter Lin #ifndef __DRIVERS_SIFIVE_UART_H
6*298fa2dbSYu-Chien Peter Lin #define __DRIVERS_SIFIVE_UART_H
7*298fa2dbSYu-Chien Peter Lin 
8*298fa2dbSYu-Chien Peter Lin #include <drivers/serial.h>
9*298fa2dbSYu-Chien Peter Lin #include <mm/core_memprot.h>
10*298fa2dbSYu-Chien Peter Lin #include <types_ext.h>
11*298fa2dbSYu-Chien Peter Lin 
12*298fa2dbSYu-Chien Peter Lin #define SIFIVE_UART_REG_SIZE	0x1000
13*298fa2dbSYu-Chien Peter Lin 
14*298fa2dbSYu-Chien Peter Lin struct sifive_uart_data {
15*298fa2dbSYu-Chien Peter Lin 	struct io_pa_va base;
16*298fa2dbSYu-Chien Peter Lin 	struct serial_chip chip;
17*298fa2dbSYu-Chien Peter Lin };
18*298fa2dbSYu-Chien Peter Lin 
19*298fa2dbSYu-Chien Peter Lin void sifive_uart_init(struct sifive_uart_data *pd, paddr_t base,
20*298fa2dbSYu-Chien Peter Lin 		      uint32_t uart_clk, uint32_t baud_rate);
21*298fa2dbSYu-Chien Peter Lin 
22*298fa2dbSYu-Chien Peter Lin #endif /* __DRIVERS_SIFIVE_UART_H */
23