[U-Boot] [Resend PATCH V2 (forgot generic.c)] mx31: provide readable WEIM CS accessor

Stefano Babic sbabic at denx.de
Thu Sep 29 15:21:28 CEST 2011


On 09/29/2011 02:25 PM, Helmut Raiger wrote:
> setup_weimcs() and some macros are added to support the setup
> for i.MX31 WEIM chip selects. As a compromise between verbosity
> and readability an ASCII-art'ish bit comment is used instead of
> bitfields.
> All i.MX31 boards have been patched to use this approach using a
> helper program to verify the changes.
> 
> Signed-off-by: Helmut Raiger <helmut.raiger at hale.at>
> ---
>   V2:
> 	added sys_proto.h for mx31
> 	introduced mxc_setup_weimcs(), which is SOC independent
> 	not inlined any more (codesize increased by 60-90 bytes)
> ---
>  arch/arm/cpu/arm1136/mx31/generic.c         |    9 +++

Ah, ok, I now I can find the implementation ;-)

I have only a couple of open points...

>  arch/arm/include/asm/arch-mx31/imx-regs.h   |   26 +++++++-
>  arch/arm/include/asm/arch-mx31/sys_proto.h  |   35 +++++++++++
>  board/davedenx/qong/qong.c                  |   87 ++++++++++-----------------
>  board/freescale/mx31ads/mx31ads.c           |   15 ++++-
>  board/freescale/mx31pdk/mx31pdk.c           |   14 ++++-
>  board/imx31_phycore/imx31_phycore.c         |   41 ++++++++++---
>  board/logicpd/imx31_litekit/imx31_litekit.c |   28 +++++++--
>  8 files changed, 176 insertions(+), 79 deletions(-)
>  create mode 100644 arch/arm/include/asm/arch-mx31/sys_proto.h
> 
> diff --git a/arch/arm/cpu/arm1136/mx31/generic.c b/arch/arm/cpu/arm1136/mx31/generic.c
> index e3a4d1b..29af156 100644
> --- a/arch/arm/cpu/arm1136/mx31/generic.c
> +++ b/arch/arm/cpu/arm1136/mx31/generic.c
> @@ -25,6 +25,8 @@
>  #include <asm/arch/imx-regs.h>
>  #include <asm/arch/clock.h>
>  #include <asm/io.h>
> +#include <asm/arch/sys_proto.h>
> +

Drop newline

>  
>  static u32 mx31_decode_pll(u32 reg, u32 infreq)
>  {
> @@ -126,6 +128,13 @@ void mx31_set_pad(enum iomux_pins pin, u32 config)
>  
>  }
>  
> +void mxc_setup_weimcs(int cs, const struct mxc_weimcs *weimcs)
> +{
> +	writel(weimcs->upper, WEIM_CSCR_U(cs));
> +	writel(weimcs->lower, WEIM_CSCR_L(cs));
> +	writel(weimcs->additional, WEIM_CSCR_A(cs));
> +}

Even if more hidden, the access is always made with base + offset,
instead of defining a structure.

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================


More information about the U-Boot mailing list