[PATCH v4 24/28] board: google: Add board_debug_uart_init() for Trogdor

Casey Connolly casey.connolly at linaro.org
Wed Jun 4 15:38:27 CEST 2025



On 5/28/25 13:25, Caleb Connolly via groups.io wrote:
> 
> 
> 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?

Oh right, CI fails since the trogdor defconfig doesn't have a 
maintainer, I'm happy to put it under ARM SNAPDRAGON but it would be 
great if you're willing to take it up. Please let me know ASAP (feel 
free to send a patch adding board/google/trogdor/MAINTAINERS on top of 
this series) so I can pick this up :)

Kind regards,>
> 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