[PATCH 07/11] ARM: imx: Add support of uncompress print for i.MX28
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Mon Nov 15 11:47:27 EST 2010
On Mon, Nov 15, 2010 at 10:36:31PM +0800, Shawn Guo wrote:
> SoC i.MX28 uses DUART IP block as the debug serial. It adds the
> support in the same file used by other i.MX SoC UART, and uses
> variable is_duart to distinguish.
>
> Signed-off-by: Shawn Guo <shawn.guo at freescale.com>
> ---
> arch/arm/plat-mxc/include/mach/uncompress.h | 20 ++++++++++++++------
> 1 files changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm/plat-mxc/include/mach/uncompress.h b/arch/arm/plat-mxc/include/mach/uncompress.h
> index 9dd9c20..adb617f 100644
> --- a/arch/arm/plat-mxc/include/mach/uncompress.h
> +++ b/arch/arm/plat-mxc/include/mach/uncompress.h
> @@ -1,8 +1,9 @@
> /*
> - * arch/arm/plat-mxc/include/mach/uncompress.h
> + * rch/arm/plat-mxc/include/mach/uncompress.h
???
> *
> * Copyright (C) 1999 ARM Limited
> * Copyright (C) Shane Nay (shane at minirl.com)
> + * Copyright 2010 Freescale Semiconductor, Inc. All Rights Reserved.
> *
> * This program is free software; you can redistribute it and/or modify
> * it under the terms of the GNU General Public License as published by
> @@ -22,14 +23,16 @@
> #include <asm/mach-types.h>
>
> static unsigned long uart_base;
> +static unsigned short is_duart = 0;
don't initialize static variables to 0.
>
> #define UART(x) (*(volatile unsigned long *)(uart_base + (x)))
>
> -#define USR2 0x98
> -#define USR2_TXFE (1<<14)
> -#define TXR 0x40
> -#define UCR1 0x80
> -#define UCR1_UARTEN 1
> +#define USR2 (is_duart ? 0x18 : 0x98)
> +#define USR2_TXFE (is_duart ? 1<<7 : 1<<14)
> +#define USR2_BUSY (1 << 3)
> +#define TXR (is_duart ? 0x00 : 0x40)
> +#define UCR1 (is_duart ? 0x30 : 0x80)
> +#define UCR1_UARTEN 1
>
> /*
> * The following code assumes the serial port has already been
> @@ -59,6 +62,7 @@ static inline void flush(void)
>
> #define MX1_UART1_BASE_ADDR 0x00206000
> #define MX25_UART1_BASE_ADDR 0x43f90000
> +#define MX28_DUART_BASE_ADDR 0x80074000
> #define MX2X_UART1_BASE_ADDR 0x1000a000
> #define MX3X_UART1_BASE_ADDR 0x43F90000
> #define MX3X_UART2_BASE_ADDR 0x43F94000
> @@ -83,6 +87,10 @@ static __inline__ void __arch_decomp_setup(unsigned long arch_id)
> case MACH_TYPE_MXT_TD60:
> uart_base = MX2X_UART1_BASE_ADDR;
> break;
> + case MACH_TYPE_MX28EVK:
> + uart_base = MX28_DUART_BASE_ADDR;
> + is_duart = 1;
> + break;
> case MACH_TYPE_MX31LITE:
> case MACH_TYPE_ARMADILLO5X0:
> case MACH_TYPE_MX31MOBOARD:
> --
> 1.7.1
>
>
>
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
More information about the linux-arm-kernel
mailing list