[U-Boot] [PATCH 3/6] rockchip: evb-rk3328: set uart2 and sdmmc io routing
Simon Glass
sjg at chromium.org
Thu Jun 1 03:10:21 UTC 2017
Hi Kever,
On 23 May 2017 at 20:35, Kever Yang <kever.yang at 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.yang at 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.yang at 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
>>
>
>
More information about the U-Boot
mailing list