[U-Boot] [PATCH 5/7] mips: ath79: Unify DDR initialization entry for ar934x

Marek Vasut marex at denx.de
Sun May 22 13:13:17 CEST 2016


On 05/22/2016 05:59 AM, Wills Wang wrote:
> Use function "ddr_init" for ath79 platform DDR initialization,
> and put it into mach/ddr.h
> 
> Signed-off-by: Wills Wang <wills.wang at live.com>
> ---
> 
>  arch/mips/mach-ath79/ar933x/ddr.c         | 2 +-
>  arch/mips/mach-ath79/ar934x/ddr.c         | 2 +-
>  arch/mips/mach-ath79/include/mach/ath79.h | 1 -
>  arch/mips/mach-ath79/include/mach/ddr.h   | 2 +-
>  arch/mips/mach-ath79/qca953x/ddr.c        | 2 +-
>  board/qca/ap121/ap121.c                   | 2 +-
>  board/qca/ap143/ap143.c                   | 2 +-
>  board/tplink/wdr4300/wdr4300.c            | 2 +-
>  8 files changed, 7 insertions(+), 8 deletions(-)
> 
> diff --git a/arch/mips/mach-ath79/ar933x/ddr.c b/arch/mips/mach-ath79/ar933x/ddr.c
> index 84e1cfa..b5940cb 100644
> --- a/arch/mips/mach-ath79/ar933x/ddr.c
> +++ b/arch/mips/mach-ath79/ar933x/ddr.c
> @@ -103,7 +103,7 @@ DECLARE_GLOBAL_DATA_PTR;
>  #define DDR_TAP_VAL0            0x08
>  #define DDR_TAP_VAL1            0x09
>  
> -void ddr_init(void)
> +void ddr_init(const u16 cpu_mhz, const u16 ddr_mhz, const u16 bus_mhz)

Call it ar933x_ddr_init() here

>  {
>  	void __iomem *regs;
>  	u32 val;
> diff --git a/arch/mips/mach-ath79/ar934x/ddr.c b/arch/mips/mach-ath79/ar934x/ddr.c
> index 2ebb89b..c467fb2 100644
> --- a/arch/mips/mach-ath79/ar934x/ddr.c
> +++ b/arch/mips/mach-ath79/ar934x/ddr.c
> @@ -35,7 +35,7 @@ static const struct ar934x_mem_config ar934x_mem_config[] = {
>  	[AR934X_DDR2]  = { 0xc7d48cd0, 0x9dd0e6a8, 0x33, 0, 0x10012 },
>  };
>  
> -void ar934x_ddr_init(const u16 cpu_mhz, const u16 ddr_mhz, const u16 ahb_mhz)
> +void ddr_init(const u16 cpu_mhz, const u16 ddr_mhz, const u16 bus_mhz)

Keep this one. If you want to have ddr_init() as a universal function,
that's fine. But consider the situation where you want to have a single
u-boot binary for multiple ar9xxx . In that case, you would need all of
those different ar9xxx_ddr_init() functions and you'd need some
universal function (ath79_ddr_init() ?) which would in turn call the
right ar9xxx_ddr_init() .

>  {
>  	void __iomem *ddr_regs;
>  	const struct ar934x_mem_config *memcfg;
> diff --git a/arch/mips/mach-ath79/include/mach/ath79.h b/arch/mips/mach-ath79/include/mach/ath79.h
> index 18d1e26..fdc1149 100644
> --- a/arch/mips/mach-ath79/include/mach/ath79.h
> +++ b/arch/mips/mach-ath79/include/mach/ath79.h
> @@ -141,6 +141,5 @@ static inline int soc_is_qca956x(void)
>  }
>  
>  void ar934x_pll_init(const u16 cpu_mhz, const u16 ddr_mhz, const u16 ahb_mhz);
> -void ar934x_ddr_init(const u16 cpu_mhz, const u16 ddr_mhz, const u16 ahb_mhz);
>  
>  #endif /* __ASM_MACH_ATH79_H */
> diff --git a/arch/mips/mach-ath79/include/mach/ddr.h b/arch/mips/mach-ath79/include/mach/ddr.h
> index 181179a..b6f46ce 100644
> --- a/arch/mips/mach-ath79/include/mach/ddr.h
> +++ b/arch/mips/mach-ath79/include/mach/ddr.h
> @@ -7,7 +7,7 @@
>  #ifndef __ASM_MACH_DDR_H
>  #define __ASM_MACH_DDR_H
>  
> -void ddr_init(void);
> +void ddr_init(const u16 cpu_mhz, const u16 ddr_mhz, const u16 bus_mhz);
>  void ddr_tap_tuning(void);
>  
>  #endif /* __ASM_MACH_DDR_H */
> diff --git a/arch/mips/mach-ath79/qca953x/ddr.c b/arch/mips/mach-ath79/qca953x/ddr.c
> index 41ad113..180e600 100644
> --- a/arch/mips/mach-ath79/qca953x/ddr.c
> +++ b/arch/mips/mach-ath79/qca953x/ddr.c
> @@ -219,7 +219,7 @@ DECLARE_GLOBAL_DATA_PTR;
>  #define DDR_TAP_MAGIC_VAL       0xaa55aa55
>  #define DDR_TAP_MAX_VAL         0x40
>  
> -void ddr_init(void)
> +void ddr_init(const u16 cpu_mhz, const u16 ddr_mhz, const u16 bus_mhz)
>  {
>  	void __iomem *regs;
>  	u32 val;
> diff --git a/board/qca/ap121/ap121.c b/board/qca/ap121/ap121.c
> index d6c60fe..b0e1993 100644
> --- a/board/qca/ap121/ap121.c
> +++ b/board/qca/ap121/ap121.c
> @@ -45,6 +45,6 @@ int board_early_init_f(void)
>  #ifdef CONFIG_DEBUG_UART
>  	debug_uart_init();
>  #endif
> -	ddr_init();
> +	ddr_init(400, 400, 200);
>  	return 0;
>  }
> diff --git a/board/qca/ap143/ap143.c b/board/qca/ap143/ap143.c
> index 1572472..406c988 100644
> --- a/board/qca/ap143/ap143.c
> +++ b/board/qca/ap143/ap143.c
> @@ -61,6 +61,6 @@ int board_early_init_f(void)
>  #ifdef CONFIG_DEBUG_UART
>  	debug_uart_init();
>  #endif
> -	ddr_init();
> +	ddr_init(650, 400, 200);
>  	return 0;
>  }
> diff --git a/board/tplink/wdr4300/wdr4300.c b/board/tplink/wdr4300/wdr4300.c
> index 8382ce0..bff3938 100644
> --- a/board/tplink/wdr4300/wdr4300.c
> +++ b/board/tplink/wdr4300/wdr4300.c
> @@ -64,7 +64,7 @@ int board_early_init_f(void)
>  
>  #ifndef CONFIG_SKIP_LOWLEVEL_INIT
>  	ar934x_pll_init(560, 480, 240);
> -	ar934x_ddr_init(560, 480, 240);
> +	ddr_init(560, 480, 240);
>  #endif
>  
>  	wdr4300_usb_start();
> 


-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list