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.va...@mailbox.org>
---
Cc: Cheick Traore <cheick.tra...@foss.st.com>
Cc: Fabrice Gasnier <fabrice.gasn...@foss.st.com>
Cc: Gatien Chevallier <gatien.chevall...@foss.st.com>
Cc: Lionel Debieve <lionel.debi...@foss.st.com>
Cc: Pascal Zimmermann <pzimmerm...@dh-electronics.com>
Cc: Patrice Chotard <patrice.chot...@foss.st.com>
Cc: Patrick Delaunay <patrick.delau...@foss.st.com>
Cc: Simon Glass <s...@chromium.org>
Cc: Sughosh Ganu <sughosh.g...@linaro.org>
Cc: Tom Rini <tr...@konsulko.com>
Cc: u-b...@dh-electronics.com
Cc: u-boot@lists.denx.de
Cc: uboot-st...@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 */
-- 
2.47.2

Reply via email to