[U-Boot] [PATCH v2 1/4] rockchip: evb-rk3328: set uart2 io routing to M1

Kever Yang kever.yang at rock-chips.com
Thu Jun 8 07:32:03 UTC 2017


In rk3328, some function pin may have more than one choice, and muxed
with more than one IO, for example, the UART2 controller IO,
TX and RX, have 3 choice(setting in com_iomux):
- M0 which mux with GPIO1A0/GPIO1A1
- M1 which mux with GPIO2A0/GPIO2A1
- usb2phy which mux with USB2.0 DP/DM pin.

This suppose to be set in SPL, but the U-Boot is also design to co-work
with Rockchip SPL(miniloader) which may not setting this config, let's set
this config to make sure the UART2 TX/RX working in U-Boot.

Signed-off-by: Kever Yang <kever.yang at rock-chips.com>
---

Changes in v2:
- remove SDMMC io routing

 board/rockchip/evb_rk3328/evb-rk3328.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/board/rockchip/evb_rk3328/evb-rk3328.c b/board/rockchip/evb_rk3328/evb-rk3328.c
index 0a26ed5..823c5da 100644
--- a/board/rockchip/evb_rk3328/evb-rk3328.c
+++ b/board/rockchip/evb_rk3328/evb-rk3328.c
@@ -5,7 +5,10 @@
  */
 
 #include <common.h>
+#include <asm/arch/hardware.h>
+#include <asm/arch/grf_rk3328.h>
 #include <asm/armv8/mmu.h>
+#include <asm/io.h>
 #include <dwc3-uboot.h>
 #include <usb.h>
 
@@ -13,6 +16,13 @@ DECLARE_GLOBAL_DATA_PTR;
 
 int board_init(void)
 {
+#define GRF_BASE	0xff100000
+	struct rk3328_grf_regs * const grf = (void *)GRF_BASE;
+
+	/* uart2 select m1, sdcard select m1*/
+	rk_clrsetreg(&grf->com_iomux, IOMUX_SEL_UART2_MASK,
+		     IOMUX_SEL_UART2_M1 << IOMUX_SEL_UART2_SHIFT);
+
 	return 0;
 }
 
-- 
1.9.1



More information about the U-Boot mailing list