[U-Boot] [PATCH 5/7] mips: ath79: Unify DDR initialization entry for ar934x
Wills Wang
wills.wang at live.com
Sun May 22 13:35:30 CEST 2016
On 05/22/2016 07:13 PM, Marek Vasut wrote:
> 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() .
You mean like this:
void ath79_ddr_init(const u16 cpu_mhz, const u16 ddr_mhz, const u16 bus_mhz)
{
if (soc_is_ar933x())
ar933x_ddr_init(cpu_mhz, ddr_mhz, bus_mhz);
else if (soc_is_ar934x())
ar934x_ddr_init(cpu_mhz, ddr_mhz, bus_mhz);
...
}
>> {
>> 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
Wills
More information about the U-Boot
mailing list