|
|
@ -33,20 +33,39 @@ void __init rt305x_clocks_init(void) |
|
|
|
u32 t; |
|
|
|
u32 t; |
|
|
|
|
|
|
|
|
|
|
|
t = rt305x_sysc_rr(SYSC_REG_SYSTEM_CONFIG); |
|
|
|
t = rt305x_sysc_rr(SYSC_REG_SYSTEM_CONFIG); |
|
|
|
t = ((t >> RT305X_SYSCFG_CPUCLK_SHIFT) & RT305X_SYSCFG_CPUCLK_MASK); |
|
|
|
|
|
|
|
|
|
|
|
if (soc_is_rt305x() || soc_is_rt3350()) { |
|
|
|
switch (t) { |
|
|
|
t = (t >> RT305X_SYSCFG_CPUCLK_SHIFT) & |
|
|
|
case RT305X_SYSCFG_CPUCLK_LOW: |
|
|
|
RT305X_SYSCFG_CPUCLK_MASK; |
|
|
|
rt305x_cpu_clk.rate = 320000000; |
|
|
|
switch (t) { |
|
|
|
break; |
|
|
|
case RT305X_SYSCFG_CPUCLK_LOW: |
|
|
|
case RT305X_SYSCFG_CPUCLK_HIGH: |
|
|
|
rt305x_cpu_clk.rate = 320000000; |
|
|
|
rt305x_cpu_clk.rate = 384000000; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case RT305X_SYSCFG_CPUCLK_HIGH: |
|
|
|
|
|
|
|
rt305x_cpu_clk.rate = 384000000; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
rt305x_sys_clk.rate = rt305x_cpu_clk.rate / 3; |
|
|
|
|
|
|
|
rt305x_uart_clk.rate = rt305x_sys_clk.rate; |
|
|
|
|
|
|
|
rt305x_wdt_clk.rate = rt305x_sys_clk.rate; |
|
|
|
|
|
|
|
} else if (soc_is_rt3352()) { |
|
|
|
|
|
|
|
t = (t >> RT3352_SYSCFG0_CPUCLK_SHIFT) & |
|
|
|
|
|
|
|
RT3352_SYSCFG0_CPUCLK_MASK; |
|
|
|
|
|
|
|
switch (t) { |
|
|
|
|
|
|
|
case RT3352_SYSCFG0_CPUCLK_LOW: |
|
|
|
|
|
|
|
rt305x_cpu_clk.rate = 384000000; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case RT3352_SYSCFG0_CPUCLK_HIGH: |
|
|
|
|
|
|
|
rt305x_cpu_clk.rate = 400000000; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
rt305x_sys_clk.rate = rt305x_cpu_clk.rate / 3; |
|
|
|
|
|
|
|
rt305x_uart_clk.rate = rt305x_sys_clk.rate / 10; |
|
|
|
|
|
|
|
rt305x_wdt_clk.rate = rt305x_sys_clk.rate; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
BUG(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
rt305x_sys_clk.rate = rt305x_cpu_clk.rate / 3; |
|
|
|
|
|
|
|
rt305x_uart_clk.rate = rt305x_sys_clk.rate; |
|
|
|
|
|
|
|
rt305x_wdt_clk.rate = rt305x_sys_clk.rate; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|