xref: /rk3399_ARM-atf/include/drivers/amlogic/meson_console.h (revision 4a079c752beef8c2e8072b55a267d4b597b1e05b)
1*4a079c75SCarlo Caione /*
2*4a079c75SCarlo Caione  * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3*4a079c75SCarlo Caione  *
4*4a079c75SCarlo Caione  * SPDX-License-Identifier: BSD-3-Clause
5*4a079c75SCarlo Caione  */
6*4a079c75SCarlo Caione 
7*4a079c75SCarlo Caione #ifndef MESON_CONSOLE_H
8*4a079c75SCarlo Caione #define MESON_CONSOLE_H
9*4a079c75SCarlo Caione 
10*4a079c75SCarlo Caione #include <drivers/console.h>
11*4a079c75SCarlo Caione 
12*4a079c75SCarlo Caione #define CONSOLE_T_MESON_BASE	CONSOLE_T_DRVDATA
13*4a079c75SCarlo Caione 
14*4a079c75SCarlo Caione #ifndef __ASSEMBLER__
15*4a079c75SCarlo Caione 
16*4a079c75SCarlo Caione #include <stdint.h>
17*4a079c75SCarlo Caione 
18*4a079c75SCarlo Caione typedef struct {
19*4a079c75SCarlo Caione 	console_t console;
20*4a079c75SCarlo Caione 	uintptr_t base;
21*4a079c75SCarlo Caione } console_meson_t;
22*4a079c75SCarlo Caione 
23*4a079c75SCarlo Caione /*
24*4a079c75SCarlo Caione  * Initialize a new meson console instance and register it with the console
25*4a079c75SCarlo Caione  * framework. The |console| pointer must point to storage that will be valid
26*4a079c75SCarlo Caione  * for the lifetime of the console, such as a global or static local variable.
27*4a079c75SCarlo Caione  * Its contents will be reinitialized from scratch.
28*4a079c75SCarlo Caione  *
29*4a079c75SCarlo Caione  * NOTE: The clock is actually fixed to 24 MHz. The argument is only there in
30*4a079c75SCarlo Caione  * order to make this function future-proof.
31*4a079c75SCarlo Caione  */
32*4a079c75SCarlo Caione int console_meson_register(uintptr_t baseaddr, uint32_t clock, uint32_t baud,
33*4a079c75SCarlo Caione 			   console_meson_t *console);
34*4a079c75SCarlo Caione 
35*4a079c75SCarlo Caione #endif /*__ASSEMBLER__*/
36*4a079c75SCarlo Caione 
37*4a079c75SCarlo Caione #endif /* MESON_CONSOLE_H */
38