[U-Boot] [PATCH] mx5/6 timer: Use defined CONFIG_SYS_MX*_CLK32

Benoît Thébaudeau benoit.thebaudeau at advansee.com
Fri Aug 17 23:03:45 CEST 2012


Hi Stefano,

> On 17/08/2012 21:52, Benoît Thébaudeau wrote:
> > Hi Stefano,
> > 
> >> On 14/08/2012 17:01, Benoît Thébaudeau wrote:
> >>> Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau at advansee.com>
> >>> Cc: Stefano Babic <sbabic at denx.de>
> >>> ---
> >>
> 
> Hi Benoît,
> 
> >>
> >>>  .../arch/arm/cpu/armv7/imx-common/timer.c          |    6 +++++-
> >>>  1 file changed, 5 insertions(+), 1 deletion(-)
> >>>
> >>> diff --git
> >>> u-boot-4d3c95f.orig/arch/arm/cpu/armv7/imx-common/timer.c
> >>> u-boot-4d3c95f/arch/arm/cpu/armv7/imx-common/timer.c
> >>> index 1645ff8..ad67367 100644
> >>> --- u-boot-4d3c95f.orig/arch/arm/cpu/armv7/imx-common/timer.c
> >>> +++ u-boot-4d3c95f/arch/arm/cpu/armv7/imx-common/timer.c
> >>> @@ -44,7 +44,11 @@ static struct mxc_gpt *cur_gpt = (struct
> >>> mxc_gpt
> >>> *)GPT1_BASE_ADDR;
> >>>  #define GPTCR_FRR		(1 << 9)	/* Freerun / restart */
> >>>  #define GPTCR_CLKSOURCE_32	(4 << 6)	/* Clock source */
> >>>  #define GPTCR_TEN		1		/* Timer enable */
> >>> -#define CLK_32KHZ		32768		/* 32Khz input */
> >>> +#if defined(CONFIG_MX51) || defined(CONFIG_MX53)
> >>> +#define CLK_32KHZ		CONFIG_SYS_MX5_CLK32
> >>> +#elif defined(CONFIG_MX6Q)
> >>> +#define CLK_32KHZ		CONFIG_SYS_MX6_CLK32
> >>> +#endif
> >>>  
> >>>  DECLARE_GLOBAL_DATA_PTR;
> >>>  
> >>
> >> Frankly I do not see the advantage to use the CONFIG_SYS defines.
> > 
> > It can be useful if 32000 Hz is used instead of 32768 Hz for some
> > boards.
> 
> Then it is the exception, and we should introduce a CONFIG_ that only
> *that* board should set, and not that all boards must have.
> 
> 
> > 
> >> On
> >> the
> >> other hand, checking this patch I see that  CONFIG_SYS_MX5_CLK32
> >> and
> >> CONFIG_SYS_MX6_CLK32 are dead code.
> >>
> >> I do not find drivers using, but all boards define them:
> >>
> >>  grep -r CONFIG_SYS_MX5_CLK32 *
> >> include/configs/efikamx.h:#define CONFIG_SYS_MX5_CLK32		32768
> >> include/configs/mx53loco.h:#define CONFIG_SYS_MX5_CLK32		32768
> >> include/configs/mx53ard.h:#define CONFIG_SYS_MX5_CLK32		32768
> >> include/configs/mx51evk.h:#define CONFIG_SYS_MX5_CLK32		32768
> >> include/configs/vision2.h:#define CONFIG_SYS_MX5_CLK32		32768
> >> include/configs/mx53evk.h:#define CONFIG_SYS_MX5_CLK32		32768
> >> include/configs/ima3-mx53.h:#define CONFIG_SYS_MX5_CLK32		32768
> >> include/configs/mx53smd.h:#define CONFIG_SYS_MX5_CLK32		32768
> >>
> >> and
> >>
> >> include/configs/mx6qsabrelite.h.orig:#define CONFIG_SYS_MX6_CLK32
> >>  32768
> >> include/configs/mx6qarm2.h:#define CONFIG_SYS_MX6_CLK32		32768
> >> include/configs/mx6qsabrelite.h:#define CONFIG_SYS_MX6_CLK32
> >> 	       32768
> > 
> > Indeed.
> 
> All boards here use 32768, none of them set it to 32000.
> 
> >> We have two defines, both for nothing. I prefer a patch dropping
> >> completely this dead code as to try to use it...
> > 
> > See my use case above, and tell me if it made you change your mind.
> 
> Your use case is surely for the tx25. But I do not see the case here.
> This patch alignes the MX5/MX6 to the MX25, where maybe this case
> could
> be treated better. All MX25 board must set CONFIG_MX25_CLK32 -
> instead
> that only the tx25 set a different value.

OK, then for mx25/35/5/6, would you like in timer.c something like:
#ifdef CONFIG_SYS_MX{*}_CLK32
#define CLK_32KHZ		CONFIG_SYS_MX{*}_CLK32
#else
#define CLK_32KHZ		32768
#endif

{*}: 25, 35, 5 or 6

In that way, this definition could be removed from most boards, and that would
still allow exceptions and be future-proof.

Best regards,
Benoît


More information about the U-Boot mailing list