aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Neuschäfer <j.neuschaefer@gmx.net>2016-10-29 21:48:18 +0200
committerRonald G. Minnich <rminnich@gmail.com>2016-11-07 16:47:11 +0100
commit7ca9b8ae5014a745855296903682ae803235cb35 (patch)
tree28abfebb29b7e6666f7794923d7ea7c095bfb891
parent7d9068fe0b5d87fe3fe075d5d9a5f7493f5b1eac (diff)
mb/lowrisc/nexys4ddr: Actually fix the UART clock setup
Ron's code calculated the DLL and DLM registers of the 8250 UART, but that's the job of the UART driver. uart_input_clock_divider isn't needed anymore because the default value of 16 works. As a bonus, the baud rate can now be selected in Kconfig, instead of being hardcoded at 115200. TEST=Booted the board at 9600 and 115200 baud. Change-Id: I3d5e49568b798a6a6d944db1161def7d0a2d3b48 Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net> Reviewed-on: https://review.coreboot.org/17188 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Martin Roth <martinroth@google.com> Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
-rw-r--r--src/mainboard/lowrisc/nexys4ddr/Kconfig1
-rw-r--r--src/mainboard/lowrisc/nexys4ddr/uart.c13
2 files changed, 2 insertions, 12 deletions
diff --git a/src/mainboard/lowrisc/nexys4ddr/Kconfig b/src/mainboard/lowrisc/nexys4ddr/Kconfig
index f0a3637d1c..5a6bfb2503 100644
--- a/src/mainboard/lowrisc/nexys4ddr/Kconfig
+++ b/src/mainboard/lowrisc/nexys4ddr/Kconfig
@@ -21,7 +21,6 @@ config BOARD_SPECIFIC_OPTIONS # dummy
select DRIVERS_UART_8250MEM
select BOOT_DEVICE_NOT_SPI_FLASH
select UART_OVERRIDE_REFCLK
- select UART_OVERRIDE_INPUT_CLOCK_DIVIDER
config MAINBOARD_DIR
string
diff --git a/src/mainboard/lowrisc/nexys4ddr/uart.c b/src/mainboard/lowrisc/nexys4ddr/uart.c
index e3c233f80b..d19ce520d8 100644
--- a/src/mainboard/lowrisc/nexys4ddr/uart.c
+++ b/src/mainboard/lowrisc/nexys4ddr/uart.c
@@ -24,17 +24,8 @@ uintptr_t uart_platform_base(int idx)
return (uintptr_t) 0x42000000;
}
-/* these are currently not quite right but they are here for reference
- * and will be fixed when lowrisc gives us a standard clock
- * and set of values. */
-// divisor = clk_freq / (16 * Baud)
-unsigned int uart_input_clock_divider(void)
-{
- return (25 * 1000 * 1000u / (16u * 115200u)) % 0x100;
-}
-
-// System clock 25 MHz, 115200 baud rate
+/* The clock which the UART is based on */
unsigned int uart_platform_refclk(void)
{
- return (25 * 1000 * 1000u / (16u * 115200u)) >> 8;
+ return 25 * MHz;
}