[U-Boot] [PATCH] MX: serial_mxc: cleanup removing nasty #ifdef

Marek Vasut marek.vasut at gmail.com
Tue Nov 22 19:06:36 CET 2011


> The serial driver for iMX SOCs is continuosly changed if a
> new SOC or not yet used port is used. CONFIG_SYS_<SOC>_<UART Port>
> defines were used only to find the base address for the selected UART.
> Instead of that, move the base address to the board configuration
> file and drop all #ifdef from driver.
> 
> Signed-off-by: Stefano Babic <sbabic at denx.de>
> CC: Marek Vasut <marek.vasut at gmail.com>
> CC: Wolfgang Denk <wd at denx.de>
> CC: Fabio Estevam <fabio.estevam at freescale.com>
> CC: Helmut Raiger <helmut.raiger at hale.at>
> CC: John Rigby <jcrigby at gmail.com>
> CC: Matthias Weisser <weisserm at arcor.de>
> CC: Jason Liu <jason.hui at linaro.org>
> ---
>  arch/arm/cpu/arm1136/mx31/devices.c       |    4 ---
>  arch/arm/include/asm/arch-mx25/imx-regs.h |   10 ++++----
>  arch/arm/include/asm/arch-mx27/imx-regs.h |    8 +++---
>  arch/arm/include/asm/arch-mx31/imx-regs.h |    6 ++++
>  arch/arm/include/asm/arch-mx35/imx-regs.h |    6 ++--
>  arch/arm/include/asm/arch-mx5/imx-regs.h  |    6 ++--
>  drivers/serial/serial_mxc.c               |   37
> +++------------------------- include/configs/efikamx.h                 |  
>  2 +-
>  include/configs/flea3.h                   |    2 +-
>  include/configs/imx27lite-common.h        |    2 +-
>  include/configs/imx31_litekit.h           |    4 +-
>  include/configs/imx31_phycore.h           |    2 +-
>  include/configs/mx25pdk.h                 |    2 +-
>  include/configs/mx31ads.h                 |    4 +-
>  include/configs/mx31pdk.h                 |    2 +-
>  include/configs/mx35pdk.h                 |    2 +-
>  include/configs/mx51evk.h                 |    2 +-
>  include/configs/mx53ard.h                 |    2 +-
>  include/configs/mx53evk.h                 |    2 +-
>  include/configs/mx53loco.h                |    2 +-
>  include/configs/mx53smd.h                 |    2 +-
>  include/configs/qong.h                    |    4 +-
>  include/configs/tt01.h                    |    2 +-
>  include/configs/tx25.h                    |    2 +-
>  include/configs/vision2.h                 |    2 +-
>  include/configs/zmx25.h                   |    2 +-
>  26 files changed, 47 insertions(+), 74 deletions(-)
> 

I'm definitelly not against such cleanup!

> diff --git a/arch/arm/cpu/arm1136/mx31/devices.c
> b/arch/arm/cpu/arm1136/mx31/devices.c index b42dac3..2ebee2e 100644
> --- a/arch/arm/cpu/arm1136/mx31/devices.c
> +++ b/arch/arm/cpu/arm1136/mx31/devices.c
> @@ -27,7 +27,6 @@
>  #include <asm/arch/imx-regs.h>
>  #include <asm/arch/clock.h>
> 
> -#ifdef CONFIG_SYS_MX31_UART1
>  void mx31_uart1_hw_init(void)
>  {
>  	/* setup pins for UART1 */
> @@ -36,9 +35,7 @@ void mx31_uart1_hw_init(void)
>  	mx31_gpio_mux(MUX_RTS1__UART1_RTS_B);
>  	mx31_gpio_mux(MUX_CTS1__UART1_CTS_B);
>  }
> -#endif
> 
> -#ifdef CONFIG_SYS_MX31_UART2
>  void mx31_uart2_hw_init(void)
>  {
>  	/* setup pins for UART2 */
> @@ -47,7 +44,6 @@ void mx31_uart2_hw_init(void)
>  	mx31_gpio_mux(MUX_RTS2__UART2_RTS_B);
>  	mx31_gpio_mux(MUX_CTS2__UART2_CTS_B);
>  }
> -#endif

Maybe the MUX should be abstracted into CPU-files in arch/arm/.... ?

> 
>  #ifdef CONFIG_MXC_SPI
>  /*
> diff --git a/arch/arm/include/asm/arch-mx25/imx-regs.h
> b/arch/arm/include/asm/arch-mx25/imx-regs.h index eece138..7f9449b 100644
> --- a/arch/arm/include/asm/arch-mx25/imx-regs.h
> +++ b/arch/arm/include/asm/arch-mx25/imx-regs.h
> @@ -180,8 +180,8 @@ struct aips_regs {
>  #define IMX_I2C3_BASE		(0x43F84000)
>  #define IMX_CAN1_BASE		(0x43F88000)
>  #define IMX_CAN2_BASE		(0x43F8C000)
> -#define IMX_UART1_BASE		(0x43F90000)
> -#define IMX_UART2_BASE		(0x43F94000)
> +#define UART1_BASE		(0x43F90000)
> +#define UART2_BASE		(0x43F94000)
>  #define IMX_I2C2_BASE		(0x43F98000)
>  #define IMX_OWIRE_BASE		(0x43F9C000)
>  #define IMX_CSPI1_BASE		(0x43FA4000)
> @@ -197,15 +197,15 @@ struct aips_regs {
>  /* SPBA */
>  #define IMX_SPBA_BASE		(0x50000000)
>  #define IMX_CSPI3_BASE		(0x50004000)
> -#define IMX_UART4_BASE		(0x50008000)
> -#define IMX_UART3_BASE		(0x5000C000)
> +#define UART4_BASE		(0x50008000)
> +#define UART3_BASE		(0x5000C000)
>  #define IMX_CSPI2_BASE		(0x50010000)
>  #define IMX_SSI2_BASE		(0x50014000)
>  #define IMX_ESAI_BASE		(0x50018000)
>  #define IMX_ATA_DMA_BASE	(0x50020000)
>  #define IMX_SIM1_BASE		(0x50024000)
>  #define IMX_SIM2_BASE		(0x50028000)
> -#define IMX_UART5_BASE		(0x5002C000)
> +#define UART5_BASE		(0x5002C000)
>  #define IMX_TSC_BASE		(0x50030000)
>  #define IMX_SSI1_BASE		(0x50034000)
>  #define IMX_FEC_BASE		(0x50038000)

The parenthesis should go too ...

> diff --git a/arch/arm/include/asm/arch-mx27/imx-regs.h
> b/arch/arm/include/asm/arch-mx27/imx-regs.h index 83ab216..ced5b2a 100644
> --- a/arch/arm/include/asm/arch-mx27/imx-regs.h
> +++ b/arch/arm/include/asm/arch-mx27/imx-regs.h
> @@ -224,10 +224,10 @@ struct fuse_bank0_regs {
>  #define IMX_TIM1_BASE		(0x03000 + IMX_IO_BASE)
>  #define IMX_TIM2_BASE		(0x04000 + IMX_IO_BASE)
>  #define IMX_TIM3_BASE		(0x05000 + IMX_IO_BASE)
> -#define IMX_UART1_BASE		(0x0a000 + IMX_IO_BASE)
> -#define IMX_UART2_BASE		(0x0b000 + IMX_IO_BASE)
> -#define IMX_UART3_BASE		(0x0c000 + IMX_IO_BASE)
> -#define IMX_UART4_BASE		(0x0d000 + IMX_IO_BASE)
> +#define UART1_BASE		(0x0a000 + IMX_IO_BASE)
> +#define UART2_BASE		(0x0b000 + IMX_IO_BASE)
> +#define UART3_BASE		(0x0c000 + IMX_IO_BASE)
> +#define UART4_BASE		(0x0d000 + IMX_IO_BASE)
>  #define IMX_I2C1_BASE		(0x12000 + IMX_IO_BASE)
>  #define IMX_GPIO_BASE		(0x15000 + IMX_IO_BASE)
>  #define IMX_TIM4_BASE		(0x19000 + IMX_IO_BASE)
> diff --git a/arch/arm/include/asm/arch-mx31/imx-regs.h
> b/arch/arm/include/asm/arch-mx31/imx-regs.h index 0147920..6a517dd 100644
> --- a/arch/arm/include/asm/arch-mx31/imx-regs.h
> +++ b/arch/arm/include/asm/arch-mx31/imx-regs.h
> @@ -600,6 +600,12 @@ struct esdc_regs {
>  #define WEIM_ESDCFG1	0xB800100C
>  #define WEIM_ESDMISC	0xB8001010
> 
> +#define UART1_BASE	0x43F90000
> +#define UART2_BASE	0x43F94000
> +#define UART3_BASE	0x5000C000
> +#define UART4_BASE	0x43FB0000
> +#define UART5_BASE	0x43FB4000
> +
>  #define ESDCTL_SDE			(1 << 31)
>  #define ESDCTL_CMD_RW			(0 << 28)
>  #define ESDCTL_CMD_PRECHARGE		(1 << 28)
> diff --git a/arch/arm/include/asm/arch-mx35/imx-regs.h
> b/arch/arm/include/asm/arch-mx35/imx-regs.h index 25c324e..df74508 100644
> --- a/arch/arm/include/asm/arch-mx35/imx-regs.h
> +++ b/arch/arm/include/asm/arch-mx35/imx-regs.h
> @@ -42,8 +42,8 @@
>  #define I2C_BASE_ADDR           0x43F80000
>  #define I2C3_BASE_ADDR          0x43F84000
>  #define ATA_BASE_ADDR           0x43F8C000
> -#define UART1_BASE_ADDR         0x43F90000
> -#define UART2_BASE_ADDR         0x43F94000
> +#define UART1_BASE		0x43F90000
> +#define UART2_BASE		0x43F94000
>  #define I2C2_BASE_ADDR          0x43F98000
>  #define CSPI1_BASE_ADDR         0x43FA4000
>  #define IOMUXC_BASE_ADDR        0x43FAC000

Maybe cleanup this space/tab mix ? s/ \+/\t/ ?

M


More information about the U-Boot mailing list