From 9c3fe58fd962651bcab98b7d6f919a3e11e0dc3f Mon Sep 17 00:00:00 2001 From: Rouven Czerwinski Date: Tue, 15 Jan 2019 06:44:03 +0100 Subject: 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 Signed-off-by: Sascha Hauer --- arch/arm/boards/raspberry-pi/rpi-common.c | 7 +++++++ 1 file changed, 7 insertions(+) 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"); -- cgit v1.2.3