summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/cpu
diff options
context:
space:
mode:
authorMario Six <mario.six@gdsys.cc>2019-01-21 09:17:52 +0100
committerMario Six <mario.six@gdsys.cc>2019-05-21 07:51:40 +0200
commit0f06f57c280eaec528c76ebfca9b22aa181ca8be (patch)
tree92e03d89d58889670fd21d23e67c27267555646f /arch/powerpc/cpu
parent1cbc10c8158d22d65bb5ccc7550186036bb9f17a (diff)
downloadu-boot-0f06f57c280eaec528c76ebfca9b22aa181ca8be.tar.gz
u-boot-0f06f57c280eaec528c76ebfca9b22aa181ca8be.tar.xz
u-boot-0f06f57c280eaec528c76ebfca9b22aa181ca8be.zip
mpc83xx: Replace CONFIG_83XX_CLKIN in calculations
CONFIG_SYS_CLK_FREQ is the standard way to set the system clock frequency. On MPC83xx, CONFIG_83XX_CLKIN is used for this purpose. Hence, the obvious way is to replace CONFIG_83XX_CLKIN with CONFIG_SYS_CLK_FREQ. A few MPC83xx boards use the CONFIG_83XX_CLKIN variable for computing CONFIG_SYS_NS16550_CLK. This makes it harder to replace CONFIG_83XX_CLKIN. But the value of the multiplicator can be read from the SPMR register. Hence, replace the static calculations with a call to a new get_bus_freq function, as other architectures do. Signed-off-by: Mario Six <mario.six@gdsys.cc>
Diffstat (limited to 'arch/powerpc/cpu')
-rw-r--r--arch/powerpc/cpu/mpc83xx/spl_minimal.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/cpu/mpc83xx/spl_minimal.c b/arch/powerpc/cpu/mpc83xx/spl_minimal.c
index 746f1febba..3315ee05e1 100644
--- a/arch/powerpc/cpu/mpc83xx/spl_minimal.c
+++ b/arch/powerpc/cpu/mpc83xx/spl_minimal.c
@@ -89,3 +89,11 @@ void puts(const char *str)
while (*str)
putc(*str++);
}
+
+ulong get_bus_freq(ulong dummy)
+{
+ volatile immap_t *im = (immap_t *) CONFIG_SYS_IMMR;
+ u8 spmf = (im->clk.spmr & SPMR_SPMF) >> SPMR_SPMF_SHIFT;
+
+ return CONFIG_83XX_CLKIN * spmf;
+}