[PATCH v4 24/28] board: google: Add board_debug_uart_init() for Trogdor
Casey Connolly
casey.connolly at linaro.org
Wed May 28 13:25:17 CEST 2025
On 5/24/25 00:58, Stephen Boyd wrote:
> Implement board_debug_uart_init() for Trogdor boards so that the debug
> UART can be used. Initialize the clk to XO speed (19.2MHz) and change
> the pin configuration to mux out the uart hardware on the pins that are
> connected to the closed case debug (CCD) port for the AP. This is enough
> to get the early debug console working on boards like Lazor, but it
> should work for all Google Trogdor boards.
>
> Signed-off-by: Stephen Boyd <swboyd at chromium.org>
Reviewed-by: Casey Connolly <casey.connolly at linaro.org>
Would you be willing to add a MAINTAINERS file here for the trogdor
specific bits?
Kind regards,> ---
> board/google/trogdor/Makefile | 3 +++
> board/google/trogdor/debug.config | 6 +++++
> board/google/trogdor/debug_uart.c | 41 +++++++++++++++++++++++++++++++
> 3 files changed, 50 insertions(+)
> create mode 100644 board/google/trogdor/Makefile
> create mode 100644 board/google/trogdor/debug.config
> create mode 100644 board/google/trogdor/debug_uart.c
>
> diff --git a/board/google/trogdor/Makefile b/board/google/trogdor/Makefile
> new file mode 100644
> index 000000000000..fd2933cf1e6f
> --- /dev/null
> +++ b/board/google/trogdor/Makefile
> @@ -0,0 +1,3 @@
> +# SPDX-License-Identifier: GPL-2.0
> +
> +obj-$(CONFIG_DEBUG_UART_BOARD_INIT) += debug_uart.o
> diff --git a/board/google/trogdor/debug.config b/board/google/trogdor/debug.config
> new file mode 100644
> index 000000000000..7d8a6706a92e
> --- /dev/null
> +++ b/board/google/trogdor/debug.config
> @@ -0,0 +1,6 @@
> +CONFIG_DEBUG_UART=y
> +CONFIG_DEBUG_UART_ANNOUNCE=y
> +CONFIG_DEBUG_UART_BASE=0xa88000
> +CONFIG_DEBUG_UART_MSM_GENI=y
> +CONFIG_DEBUG_UART_CLOCK=36864000
> +CONFIG_DEBUG_UART_BOARD_INIT=y
> diff --git a/board/google/trogdor/debug_uart.c b/board/google/trogdor/debug_uart.c
> new file mode 100644
> index 000000000000..3d15d0d77728
> --- /dev/null
> +++ b/board/google/trogdor/debug_uart.c
> @@ -0,0 +1,41 @@
> +// SPDX-License-Identifier: GPL-2.0
> +
> +#include <asm/io.h>
> +#include <debug_uart.h>
> +#include <linux/delay.h>
> +
> +/*
> + * Enable the UART8 clks and pinctrl settings for SC7180.
> + *
> + * The debug UART goes out over CCD. The debug uart clk setting is 36864000 to
> + * make the buad rate calculation come out properly for the qcom geni serial
> + * driver.
> + */
> +void board_debug_uart_init(void)
> +{
> + u32 val, mask;
> + unsigned int timeout = 100;
> +
> + /* Enable wrap1_s2 clk */
> + val = readl(0x100000 + 0x52008);
> + val |= BIT(24);
> + writel(val, 0x100000 + 0x52008);
> + /* Wait for enable */
> + do {
> + val = readl(0x100000 + 0x18274);
> + mask = GENMASK(30, 28) | BIT(31);
> + val &= mask;
> + if ((val & BIT(31)) == 0 || ((val >> 28) & 7) == 1)
> + break;
> + udelay(10);
> + } while (timeout--);
> +
> + /*
> + * Configure GPIOs
> + * Bits: 0-1 = pull
> + * Bits: 2-4 = func
> + * Bits: 6-8 = drive strength
> + */
> + writel(0x3 | (1 << 2), 0x3900000 + (0x1000 * 44)); // Pin 44 - PULL_UP, func1 (qup12), 2ma
> + writel(0x3 | (1 << 2), 0x3900000 + (0x1000 * 45)); // Pin 45 - PULL_UP, func1 (qup12), 2ma
> +}
--
Casey (she/they)
More information about the U-Boot
mailing list