summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRouven Czerwinski <r.czerwinski@pengutronix.de>2019-01-15 06:44:03 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2019-02-05 12:39:09 +0100
commit9c3fe58fd962651bcab98b7d6f919a3e11e0dc3f (patch)
tree84adf53ea0991e6d9148c59a8d7a143fc4456609 /arch
parent86ec9aa7458ef752bdaed124e9905ef5d4ecf978 (diff)
downloadbarebox-9c3fe58fd962651bcab98b7d6f919a3e11e0dc3f.tar.gz
barebox-9c3fe58fd962651bcab98b7d6f919a3e11e0dc3f.tar.xz
ARM: rpi: retrieve miniuart clock from firmware
The miniuart uses the core clock as the clock source. This clock is fixed by the firmware to 250Mhz if enable_uart=1 is set in the config.txt file. However a user could still choose to overclock the core frequency, which would result in wrong baudrates computed by barebox. Retrieve the core clock frequency from the firmware to allow all potential firmware configurations to work with barebox. Signed-off-by: Rouven Czerwinski <r.czerwinski@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boards/raspberry-pi/rpi-common.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/boards/raspberry-pi/rpi-common.c b/arch/arm/boards/raspberry-pi/rpi-common.c
index 887f096f7e..f22239c7cc 100644
--- a/arch/arm/boards/raspberry-pi/rpi-common.c
+++ b/arch/arm/boards/raspberry-pi/rpi-common.c
@@ -310,6 +310,13 @@ static int rpi_console_clock_init(void)
clkdev_add_physbase(clk, 0x20201000, NULL);
clkdev_add_physbase(clk, 0x3f201000, NULL);
+ clk = rpi_register_firmware_clock(BCM2835_MBOX_CLOCK_ID_CORE,
+ "uart1-8250");
+ if (IS_ERR(clk))
+ return PTR_ERR(clk);
+
+ clkdev_add_physbase(clk, 0x3f215040, NULL);
+
clk = clk_fixed("bcm2835-cs", 1 * 1000 * 1000);
clk_register_clkdev(clk, NULL, "bcm2835-cs");