beaglebone: Enable the clocks and pins for the configured UART.

Set up the pinmux to enable the pins and the clocks for whichever UART is
currently configured.

Change-Id: Iac13f16d9d84320555b99734ea83eafd0a2803fe
Signed-off-by: Gabe Black <gabeblack@chromium.org>
Reviewed-on: http://review.coreboot.org/3573
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
Gabe Black 2013-06-29 23:20:14 -07:00 committed by Ronald G. Minnich
parent 94f631cdc9
commit 595ab4f955
1 changed files with 26 additions and 0 deletions

View File

@ -21,10 +21,13 @@
#include <types.h>
#include <uart.h>
#include <console/console.h>
#include <cpu/ti/am335x/pinmux.h>
void bootblock_mainboard_init(void);
void bootblock_mainboard_init(void)
{
void *uart_clock_ctrl = NULL;
/* Enable the GPIO module */
writel((0x2 << 0) | (1 << 18), (uint32_t *)(0x44e00000 + 0xac));
@ -38,6 +41,29 @@ void bootblock_mainboard_init(void)
clrbits_le32((uint32_t *)(0x4804c000 + 0x13c), 0xf << 21);
setbits_le32((uint32_t *)(0x4804c000 + 0x13c), 0x5 << 21);
/* Set up the UART we're going to use */
if (CONFIG_CONSOLE_SERIAL_UART0) {
am335x_pinmux_uart0();
uart_clock_ctrl = (void *)(uintptr_t)(0x44e00400 + 0xb4);
} else if (CONFIG_CONSOLE_SERIAL_UART1) {
am335x_pinmux_uart1();
uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x6c);
} else if (CONFIG_CONSOLE_SERIAL_UART2) {
am335x_pinmux_uart2();
uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x70);
} else if (CONFIG_CONSOLE_SERIAL_UART3) {
am335x_pinmux_uart3();
uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x74);
} else if (CONFIG_CONSOLE_SERIAL_UART4) {
am335x_pinmux_uart4();
uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x78);
} else if (CONFIG_CONSOLE_SERIAL_UART5) {
am335x_pinmux_uart5();
uart_clock_ctrl = (void *)(uintptr_t)(0x44e00000 + 0x38);
}
if (uart_clock_ctrl)
writel(0x2, uart_clock_ctrl);
/* Start monotonic timer */
//rtc_start();