[PATCH 05/10] ARM: stm32: Add STM32MP13xx debug UART initialization

Patrice CHOTARD patrice.chotard at foss.st.com
Wed May 28 08:26:47 CEST 2025



On 5/12/25 19:21, Marek Vasut wrote:
> Add default STM32MP13xx debug UART initialization. This is similar
> to STM32MP15xx debug UART initialization, except the RCC registers
> are at different offsets and the UART pinmux pins are different.
> 
> Signed-off-by: Marek Vasut <marek.vasut at mailbox.org>
> ---
> Cc: Cheick Traore <cheick.traore at foss.st.com>
> Cc: Fabrice Gasnier <fabrice.gasnier at foss.st.com>
> Cc: Gatien Chevallier <gatien.chevallier at foss.st.com>
> Cc: Lionel Debieve <lionel.debieve at foss.st.com>
> Cc: Pascal Zimmermann <pzimmermann at dh-electronics.com>
> Cc: Patrice Chotard <patrice.chotard at foss.st.com>
> Cc: Patrick Delaunay <patrick.delaunay at foss.st.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Sughosh Ganu <sughosh.ganu at linaro.org>
> Cc: Tom Rini <trini at konsulko.com>
> Cc: u-boot at dh-electronics.com
> Cc: u-boot at lists.denx.de
> Cc: uboot-stm32 at st-md-mailman.stormreply.com
> ---
>  board/st/stm32mp1/debug_uart.c | 21 ++++++++++++++++++---
>  1 file changed, 18 insertions(+), 3 deletions(-)
> 
> diff --git a/board/st/stm32mp1/debug_uart.c b/board/st/stm32mp1/debug_uart.c
> index 24e3f9f2201..4c2149e0480 100644
> --- a/board/st/stm32mp1/debug_uart.c
> +++ b/board/st/stm32mp1/debug_uart.c
> @@ -9,17 +9,32 @@
>  #include <asm/arch/stm32.h>
>  #include <linux/bitops.h>
>  
> +#if IS_ENABLED(CONFIG_STM32MP13X)
> +#define RCC_MP_APB1ENSETR (STM32_RCC_BASE + 0x0700)
> +#define RCC_MP_AHB4ENSETR (STM32_RCC_BASE + 0x0768)
> +#elif IS_ENABLED(CONFIG_STM32MP15X)
>  #define RCC_MP_APB1ENSETR (STM32_RCC_BASE + 0x0A00)
>  #define RCC_MP_AHB4ENSETR (STM32_RCC_BASE + 0x0A28)
> +#endif
>  
> +#define GPIOA_BASE 0x50002000
>  #define GPIOG_BASE 0x50008000
>  
>  void board_debug_uart_init(void)
>  {
> -	if (CONFIG_DEBUG_UART_BASE == STM32_UART4_BASE) {
> -		/* UART4 clock enable */
> -		setbits_le32(RCC_MP_APB1ENSETR, BIT(16));
> +	if (CONFIG_DEBUG_UART_BASE != STM32_UART4_BASE)
> +		return;
>  
> +	/* UART4 clock enable */
> +	setbits_le32(RCC_MP_APB1ENSETR, BIT(16));
> +
> +	if (IS_ENABLED(CONFIG_STM32MP13X)) {
> +		/* GPIOA clock enable */
> +		writel(BIT(0), RCC_MP_AHB4ENSETR);
> +		/* GPIO configuration for DH boards: Uart4 TX = A9 */
> +		writel(0xfffbffff, GPIOA_BASE + 0x00);
> +		writel(0x00000080, GPIOA_BASE + 0x24);
> +	} else if (IS_ENABLED(CONFIG_STM32MP15X)) {
>  		/* GPIOG clock enable */
>  		writel(BIT(6), RCC_MP_AHB4ENSETR);
>  		/* GPIO configuration for ST boards: Uart4 TX = G11 */
Reviewed-by: Patrice Chotard <patrice.chotard at foss.st.com>

Thanks
Patrice


More information about the U-Boot mailing list