summaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/files/arch/mips/ralink
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/ramips/files/arch/mips/ralink')
-rw-r--r--target/linux/ramips/files/arch/mips/ralink/rt305x/clock.c21
-rw-r--r--target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c2
-rw-r--r--target/linux/ramips/files/arch/mips/ralink/rt305x/rt305x.c5
3 files changed, 26 insertions, 2 deletions
diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/clock.c b/target/linux/ramips/files/arch/mips/ralink/rt305x/clock.c
index 958547611..c46a1747b 100644
--- a/target/linux/ramips/files/arch/mips/ralink/rt305x/clock.c
+++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/clock.c
@@ -62,6 +62,27 @@ void __init rt305x_clocks_init(void)
rt305x_sys_clk.rate = rt305x_cpu_clk.rate / 3;
rt305x_uart_clk.rate = 40000000;
rt305x_wdt_clk.rate = rt305x_sys_clk.rate;
+ } else if (soc_is_rt5350()) {
+ t = (t >> RT5350_SYSCFG0_CPUCLK_SHIFT) &
+ RT5350_SYSCFG0_CPUCLK_MASK;
+ switch (t) {
+ case RT5350_SYSCFG0_CPUCLK_360:
+ rt305x_cpu_clk.rate = 360000000;
+ rt305x_sys_clk.rate = rt305x_cpu_clk.rate / 3;
+ break;
+ case RT5350_SYSCFG0_CPUCLK_320:
+ rt305x_cpu_clk.rate = 320000000;
+ rt305x_sys_clk.rate = rt305x_cpu_clk.rate / 4;
+ break;
+ case RT5350_SYSCFG0_CPUCLK_300:
+ rt305x_cpu_clk.rate = 300000000;
+ rt305x_sys_clk.rate = rt305x_cpu_clk.rate / 3;
+ break;
+ default:
+ BUG();
+ }
+ rt305x_uart_clk.rate = 40000000;
+ rt305x_wdt_clk.rate = rt305x_sys_clk.rate;
} else {
BUG();
}
diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c b/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c
index 07e950ad9..92ae56d3b 100644
--- a/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c
+++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/devices.c
@@ -404,7 +404,7 @@ void __init rt305x_register_usb(void)
{
if (soc_is_rt305x() || soc_is_rt3350()) {
platform_device_register(&rt305x_dwc_otg_device);
- } else if (soc_is_rt3352()) {
+ } else if (soc_is_rt3352() || soc_is_rt5350()) {
platform_device_register(&rt3352_ehci_device);
platform_device_register(&rt3352_ohci_device);
} else {
diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/rt305x.c b/target/linux/ramips/files/arch/mips/ralink/rt305x/rt305x.c
index 179f9b7bc..856d869eb 100644
--- a/target/linux/ramips/files/arch/mips/ralink/rt305x/rt305x.c
+++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/rt305x.c
@@ -54,6 +54,9 @@ void __init ramips_soc_prom_init(void)
} else if (n0 == RT3352_CHIP_NAME0 && n1 == RT3352_CHIP_NAME1) {
rt305x_soc = RT305X_SOC_RT3352;
name = "RT3352";
+ } else if (n0 == RT5350_CHIP_NAME0 && n1 == RT5350_CHIP_NAME1) {
+ rt305x_soc = RT305X_SOC_RT5350;
+ name = "RT5350";
} else {
panic("rt305x: unknown SoC, n0:%08x n1:%08x\n", n0, n1);
}
@@ -68,7 +71,7 @@ void __init ramips_soc_prom_init(void)
ramips_mem_base = RT305X_SDRAM_BASE;
- if (soc_is_rt305x() || soc_is_rt3350()) {
+ if (soc_is_rt305x() || soc_is_rt3350() || soc_is_rt5350()) {
ramips_mem_size_min = RT305X_MEM_SIZE_MIN;
ramips_mem_size_max = RT305X_MEM_SIZE_MAX;
} else if (soc_is_rt3352()) {