Hi Kever, On 23 May 2017 at 20:35, Kever Yang <kever.y...@rock-chips.com> wrote: > Hi Simon, > > > > On 05/20/2017 10:29 AM, Simon Glass wrote: >> >> Hi Kever, >> >> On 16 May 2017 at 21:44, Kever Yang <kever.y...@rock-chips.com> wrote: >>> >>> 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; >>> } >> >> This needs to be done via a call to some sort of driver. The above >> hack is OK in SPL but not in U-Boot proper. > > > Yes, SPL also needs this. I thinks here should be the right place > before there is a SPL for rk3328.
But if you are booting from an SD card, how can you need a mux to select it? Surely the boot ROM must set it up or you would not be able to boot from MMC? When will there be SPL for rk3328? >> >> >> See my comments elsewhere about using a misc driver with an IOCTL >> interface to do this sort of thing. Although here I wonder why you >> cannot use pinctrl? > > > This is different from traditional pinctrl, kernel also still not have > final solution on this, see [0], and some people think it should be > done in boot loader. How about putting it in grf syscon driver? > > > Thanks, > - Kever > [0] > http://lists.infradead.org/pipermail/linux-rockchip/2016-August/011209.html >> >> >> Regards, >> Simon >> > > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot