/*
 * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#ifndef MESON_CONSOLE_H
#define MESON_CONSOLE_H

#include <drivers/console.h>

#ifndef __ASSEMBLER__

#include <stdint.h>

/*
 * Initialize a new meson console instance and register it with the console
 * framework. The |console| pointer must point to storage that will be valid
 * for the lifetime of the console, such as a global or static local variable.
 * Its contents will be reinitialized from scratch.
 *
 * NOTE: The clock is actually fixed to 24 MHz. The argument is only there in
 * order to make this function future-proof.
 */
int console_meson_register(uintptr_t baseaddr, uint32_t clock, uint32_t baud,
			   console_t *console);

#endif /*__ASSEMBLER__*/

#endif /* MESON_CONSOLE_H */
