From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Stuebner Date: Sat, 27 May 2017 00:28:59 +0200 Subject: [U-Boot] [PATCH 3/6] rockchip: evb-rk3328: set uart2 and sdmmc io routing In-Reply-To: <0e3c4ef3-f957-8c88-07be-f090d533530b@rock-chips.com> References: <1494992688-19180-1-git-send-email-kever.yang@rock-chips.com> <0e3c4ef3-f957-8c88-07be-f090d533530b@rock-chips.com> Message-ID: <11873406.QdhtY6AnPM@phil> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Kever, Am Mittwoch, 24. Mai 2017, 10:35:04 CEST schrieb Kever Yang: > On 05/20/2017 10:29 AM, Simon Glass wrote: > > On 16 May 2017 at 21:44, Kever Yang 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 > >> --- > >> > >> 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 > >> +#include > >> +#include > >> #include > >> +#include > >> #include > >> #include > >> > >> @@ -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. > > > > 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. Just to point out that thanks to David Wu we now have a solution [1] on the kernel side I'm pretty happy with - as part of the pinctrl driver. Heiko > [0] > http://lists.infradead.org/pipermail/linux-rockchip/2016-August/011209.html [1] https://www.spinics.net/lists/kernel/msg2517794.html