blob: 15ee3e70adf2a9f18356dc73ea8be8c71001f939 [file] [log] [blame]
Mario Bălănicăc258e4c2023-12-01 04:59:43 +02001/*
2 * Copyright (c) 2015-2024, Arm Limited and Contributors. All rights reserved.
3 * Copyright (c) 2024, Mario Bălănică <mariobalanica02@gmail.com>
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 */
7
8#include <drivers/arm/pl011.h>
9#include <drivers/console.h>
10#include <drivers/rpi3/gpio/rpi3_gpio.h>
11#include <drivers/ti/uart/uart_16550.h>
12#include <platform_def.h>
13
14#include <rpi_shared.h>
15
16static bool rpi3_use_mini_uart(void)
17{
18 return rpi3_gpio_get_select(14) == RPI3_GPIO_FUNC_ALT5;
19}
20
21int rpi3_register_used_uart(console_t *console)
22{
23 rpi3_gpio_init();
24
25 if (rpi3_use_mini_uart())
26 return console_16550_register(PLAT_RPI_MINI_UART_BASE,
27 0,
28 PLAT_RPI_UART_BAUDRATE,
29 console);
30 else
31 return console_pl011_register(PLAT_RPI_PL011_UART_BASE,
32 PLAT_RPI_PL011_UART_CLOCK,
33 PLAT_RPI_UART_BAUDRATE,
34 console);
35}