[PATCH 2/4] ARM: i.MX6 Wandboard Quad: fix PBL UART MUX

Andrey Smirnov andrew.smirnov at gmail.com
Thu Jun 8 11:55:07 PDT 2017


On Thu, Jun 8, 2017 at 11:41 AM, Alexander Kurz <akurz at blala.de> wrote:
> Three variants of the Wandboard exist: WBSOLO, WBDUAL and WBQUAD.
> For all variants, the external serial port is connected to UART1 via
> PAD_CSI0_DATA10 (TX) and PAD_CSI0_DATA11 (RX). Unfortunately, the IOMUX
> register adresses for this mux differ between i.MX6Q (WBQUAD) and others.
> Make the UART IOMUX for PBL compatible for WBQUAD.
>
> Signed-off-by: Alexander Kurz <akurz at blala.de>
> ---
>  arch/arm/boards/technexion-wandboard/lowlevel.c | 20 +++++++++++++++++---
>  1 file changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/boards/technexion-wandboard/lowlevel.c b/arch/arm/boards/technexion-wandboard/lowlevel.c
> index ff5ae6d..9aae429 100644
> --- a/arch/arm/boards/technexion-wandboard/lowlevel.c
> +++ b/arch/arm/boards/technexion-wandboard/lowlevel.c
> @@ -285,11 +285,25 @@ static unsigned long wandboard_dram_init(void)
>
>  static void setup_uart(void)
>  {
> +       int cpu_type = __imx6_cpu_type();
>         void __iomem *iomuxbase = (void *)MX6_IOMUXC_BASE_ADDR;
>
> -       /* mux the uart */
> -       writel(0x00000003, iomuxbase + 0x4c);
> -       writel(0x00000000, iomuxbase + 0x8fc);
> +       /* mux UART1 TX on PAD_CSI0_DATA10 */
> +       switch (cpu_type) {
> +       case IMX6_CPUTYPE_IMX6S:
> +       case IMX6_CPUTYPE_IMX6DL:
> +               writel(0x00000003, iomuxbase + 0x4c);
> +               writel(0x0001b0b1, iomuxbase + 0x360);
> +               writel(0x00000000, iomuxbase + 0x8fc);
> +               break;
> +       case IMX6_CPUTYPE_IMX6Q:
> +               writel(0x00000003, iomuxbase + 0x280);
> +               writel(0x0001b0b1, iomuxbase + 0x650);
> +               writel(0x00000001, iomuxbase + 0x920);

Just as a suggestion, you can use imx_setup_pad from
arch/arm/mach-imx/include/mach/iomux-v3.h
which would allow you to use pre-defined "pad" constants as opposed to
the magic numbers.

See arch/arm/boards/freescale-mx6-sabresd/lowlevel.c for example.

Thanks,
Andrey Smirnov



More information about the barebox mailing list