From 40961b6ac79c8d90e54fed12e131b020ce8e90a2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E9=BB=84=E6=B6=9B?= Date: Fri, 15 Jul 2011 11:03:32 +0800 Subject: [PATCH] rk29: fix for vmac and usb host 1.1 both enabled --- arch/arm/mach-rk29/board-rk29-ddr3sdk.c | 2 +- arch/arm/mach-rk29/board-rk29sdk.c | 2 +- arch/arm/mach-rk29/clock.c | 4 +++- arch/arm/mach-rk29/include/mach/board.h | 7 ++++++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/arch/arm/mach-rk29/board-rk29-ddr3sdk.c b/arch/arm/mach-rk29/board-rk29-ddr3sdk.c index 4fb9faf0dbd3..90c59030924a 100755 --- a/arch/arm/mach-rk29/board-rk29-ddr3sdk.c +++ b/arch/arm/mach-rk29/board-rk29-ddr3sdk.c @@ -1746,7 +1746,7 @@ static void __init machine_rk29_mapio(void) rk29_map_common_io(); rk29_setup_early_printk(); rk29_sram_init(); - rk29_clock_init(periph_pll_288mhz); + rk29_clock_init(periph_pll_default); rk29_iomux_init(); ddr_init(DDR_TYPE, DDR_FREQ); } diff --git a/arch/arm/mach-rk29/board-rk29sdk.c b/arch/arm/mach-rk29/board-rk29sdk.c index a9867898e0cc..7a11667ce000 100755 --- a/arch/arm/mach-rk29/board-rk29sdk.c +++ b/arch/arm/mach-rk29/board-rk29sdk.c @@ -1746,7 +1746,7 @@ static void __init machine_rk29_mapio(void) rk29_map_common_io(); rk29_setup_early_printk(); rk29_sram_init(); - rk29_clock_init(periph_pll_288mhz); + rk29_clock_init(periph_pll_default); rk29_iomux_init(); ddr_init(DDR_TYPE,DDR_FREQ); // DDR3_1333H, 400 } diff --git a/arch/arm/mach-rk29/clock.c b/arch/arm/mach-rk29/clock.c index 9d9af56a4e28..f15715cdaecf 100755 --- a/arch/arm/mach-rk29/clock.c +++ b/arch/arm/mach-rk29/clock.c @@ -2526,6 +2526,8 @@ static void __init rk29_clock_common_init(unsigned long ppll_rate, unsigned long clk_set_rate_nolock(&pclk_periph, pclk_p); clk_set_parent_nolock(&clk_uhost, &general_pll_clk); clk_set_rate_nolock(&clk_uhost, 48 * MHZ); + if (clk_uhost.rate != 48 * MHZ) + clk_set_parent_nolock(&clk_uhost, &otgphy1_clkin); clk_set_parent_nolock(&clk_i2s0_div, &general_pll_clk); clk_set_parent_nolock(&clk_i2s1_div, &general_pll_clk); clk_set_parent_nolock(&clk_spdif_div, &general_pll_clk); @@ -2636,7 +2638,7 @@ void __init rk29_clock_init2(enum periph_pll ppll_rate, enum codec_pll cpll_rate printk(KERN_INFO "Clocking rate (apll/dpll/cpll/gpll/core/aclk_cpu/hclk_cpu/pclk_cpu/aclk_periph/hclk_periph/pclk_periph): %ld/%ld/%ld/%ld/%ld/%ld/%ld/%ld/%ld/%ld/%ld MHz", arm_pll_clk.rate / MHZ, ddr_pll_clk.rate / MHZ, codec_pll_clk.rate / MHZ, general_pll_clk.rate / MHZ, clk_core.rate / MHZ, aclk_cpu.rate / MHZ, hclk_cpu.rate / MHZ, pclk_cpu.rate / MHZ, aclk_periph.rate / MHZ, hclk_periph.rate / MHZ, pclk_periph.rate / MHZ); - printk(KERN_CONT " (20110714)\n"); + printk(KERN_CONT " (20110715)\n"); } void __init rk29_clock_init(enum periph_pll ppll_rate) diff --git a/arch/arm/mach-rk29/include/mach/board.h b/arch/arm/mach-rk29/include/mach/board.h index e2b47210fc82..706abdda19e8 100755 --- a/arch/arm/mach-rk29/include/mach/board.h +++ b/arch/arm/mach-rk29/include/mach/board.h @@ -299,10 +299,15 @@ void __init board_power_init(void); int board_boot_mode(void); enum periph_pll { - periph_pll_96mhz = 96000000, + periph_pll_96mhz = 96000000, /* save more power */ periph_pll_144mhz = 144000000, periph_pll_288mhz = 288000000, /* for USB 1.1 */ periph_pll_300mhz = 300000000, /* for Ethernet */ +#if defined(CONFIG_RK29_VMAC) && defined(CONFIG_USB20_HOST_EN) + periph_pll_default = periph_pll_300mhz, +#else + periph_pll_default = periph_pll_288mhz, +#endif }; enum codec_pll { -- 2.34.1