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.
We should set these IO routing in board file. Signed-off-by: Kever Yang <kever.y...@rock-chips.com> --- board/rockchip/evb_rk3328/evb-rk3328.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/board/rockchip/evb_rk3328/evb-rk3328.c b/board/rockchip/evb_rk3328/evb-rk3328.c index a7895cb..d9dc782 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,15 @@ 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_SDMMC_MASK, + IOMUX_SEL_UART2_M1 << IOMUX_SEL_UART2_SHIFT | + IOMUX_SEL_SDMMC_M1 << IOMUX_SEL_SDMMC_SHIFT); + return 0; } -- 1.9.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot