Skip to content

Instantly share code, notes, and snippets.

@bradfa
Created May 1, 2012 17:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bradfa/2569638 to your computer and use it in GitHub Desktop.
Save bradfa/2569638 to your computer and use it in GitHub Desktop.
Beaglebone UART1 u-boot patch
From 6263be7a3ea785ef9cf7d104263846b4eeb7df80 Mon Sep 17 00:00:00 2001
From: Andrew Bradford <andrew.bradford@omni-id.com>
Date: Tue, 13 Mar 2012 15:02:40 -0400
Subject: [PATCH 1/4] BeagleBone: Enable UART1 as main terminal
---
arch/arm/include/asm/arch-ti81xx/cpu.h | 1 +
board/ti/am335x/evm.c | 1 +
board/ti/am335x/mux.c | 14 +++++++++++++-
board/ti/am335x/pll.c | 4 ++++
include/configs/beaglebone.h | 7 ++++---
5 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/arch/arm/include/asm/arch-ti81xx/cpu.h b/arch/arm/include/asm/arch-ti81xx/cpu.h
index 8cbc289..0aa23f8 100644
--- a/arch/arm/include/asm/arch-ti81xx/cpu.h
+++ b/arch/arm/include/asm/arch-ti81xx/cpu.h
@@ -308,6 +308,7 @@ struct gptimer {
#define CM_PER_CPSW_CLKSTCTRL (CM_PER + 0x144)/* Ethernet */
#define CM_PER_OCMCRAM_CLKCTRL (CM_PER + 0x2C) /* OCMC RAM */
#define CM_PER_GPIO2_CLKCTRL (CM_PER + 0xB0) /* GPIO2 */
+#define CM_PER_UART1_CLKCTRL (CM_PER + 0x6C) /* UART1 */
#define CM_PER_UART3_CLKCTRL (CM_PER + 0x74) /* UART3 */
#define CM_PER_I2C1_CLKCTRL (CM_PER + 0x48) /* I2C1 */
#define CM_PER_I2C2_CLKCTRL (CM_PER + 0x44) /* I2C2 */
diff --git a/board/ti/am335x/evm.c b/board/ti/am335x/evm.c
index 3ba6ee8..b6b9e5b 100644
--- a/board/ti/am335x/evm.c
+++ b/board/ti/am335x/evm.c
@@ -580,6 +580,7 @@ void s_init(void)
u32 uart_base = DEFAULT_UART_BASE;
enable_uart0_pin_mux();
+ enable_uart1_pin_mux();
/* IA Motor Control Board has default console on UART3*/
/* XXX: This is before we've probed / set board_id */
if (board_id == IA_BOARD) {
diff --git a/board/ti/am335x/mux.c b/board/ti/am335x/mux.c
index d9956f3..fc243b3 100644
--- a/board/ti/am335x/mux.c
+++ b/board/ti/am335x/mux.c
@@ -269,6 +269,12 @@ static struct module_pin_mux uart0_pin_mux[] = {
{-1},
};
+static struct module_pin_mux uart1_pin_mux[] = {
+ {OFFSET(uart1_rxd), (MODE(0) | PULLUP_EN | RXACTIVE)}, /* UART1_RXD */
+ {OFFSET(uart1_txd), (MODE(0) | PULLUDEN)}, /* UART1_TXD */
+ {-1},
+};
+
static struct module_pin_mux uart3_pin_mux[] = {
{OFFSET(spi0_cs1), (MODE(1) | PULLUDEN | RXACTIVE)}, /* UART3_RXD */
{OFFSET(ecap0_in_pwm0_out), (MODE(1) | PULLUDEN)}, /* UART3_TXD */
@@ -454,6 +460,7 @@ static struct module_pin_mux mmc1_pin_mux[] = {
{OFFSET(mcasp0_fsx), (MODE(4) | RXACTIVE)}, /* MMC1_CD */
{-1},
};
+
#endif
#ifdef CONFIG_SPI
@@ -567,6 +574,7 @@ static struct evm_pin_mux low_cost_evm_pin_mux[] = {
static struct evm_pin_mux beaglebone_pin_mux[] = {
{uart0_pin_mux, PROFILE_ALL, DEV_ON_BASEBOARD},
+ {uart1_pin_mux, PROFILE_NONE, DEV_ON_BASEBOARD},
{i2c1_pin_mux, PROFILE_ALL & ~PROFILE_2 & ~PROFILE_4, DEV_ON_BASEBOARD},
#ifdef CONFIG_NAND
{nand_pin_mux, PROFILE_ALL & ~PROFILE_2 & ~PROFILE_3, DEV_ON_DGHTR_BRD},
@@ -576,7 +584,6 @@ static struct evm_pin_mux beaglebone_pin_mux[] = {
#endif
#ifdef CONFIG_MMC
{mmc0_pin_mux, PROFILE_ALL, DEV_ON_BASEBOARD},
- {mmc1_pin_mux, PROFILE_2, DEV_ON_DGHTR_BRD},
#endif
#ifdef CONFIG_SPI
{spi0_pin_mux, PROFILE_2, DEV_ON_DGHTR_BRD},
@@ -686,3 +693,8 @@ void enable_uart0_pin_mux(void)
{
configure_module_pin_mux(uart0_pin_mux);
}
+
+void enable_uart1_pin_mux(void)
+{
+ configure_module_pin_mux(uart1_pin_mux);
+}
diff --git a/board/ti/am335x/pll.c b/board/ti/am335x/pll.c
index 5391ee4..e283798 100644
--- a/board/ti/am335x/pll.c
+++ b/board/ti/am335x/pll.c
@@ -92,6 +92,10 @@ static void per_clocks_enable(void)
__raw_writel(PRCM_MOD_EN, CM_WKUP_UART0_CLKCTRL);
while (__raw_readl(CM_WKUP_UART0_CLKCTRL) != PRCM_MOD_EN);
+ /* UART1 */
+ __raw_writel(PRCM_MOD_EN, CM_PER_UART1_CLKCTRL);
+ while (__raw_readl(CM_PER_UART1_CLKCTRL) != PRCM_MOD_EN);
+
/* UART3 */
__raw_writel(PRCM_MOD_EN, CM_PER_UART3_CLKCTRL);
while (__raw_readl(CM_PER_UART3_CLKCTRL) != PRCM_MOD_EN);
diff --git a/include/configs/beaglebone.h b/include/configs/beaglebone.h
index 8cabde3..6073e06 100755
--- a/include/configs/beaglebone.h
+++ b/include/configs/beaglebone.h
@@ -51,7 +51,7 @@
"loadaddr=0x82000000\0" \
"kloadaddr=0x80007fc0\0" \
"script_addr=0x81900000\0" \
- "console=ttyO0,115200n8\0" \
+ "console=ttyO1,115200n8\0" \
"mmc_dev=0\0" \
"mmc_root=/dev/mmcblk0p2 rw\0" \
"mmc_root_fs_type=ext3 rootwait\0" \
@@ -218,6 +218,7 @@
#define CONFIG_SYS_NS16550_REG_SIZE (-4)
#define CONFIG_SYS_NS16550_CLK (48000000)
#define CONFIG_SYS_NS16550_COM1 0x44e09000 /* Base EVM has UART0 */
+#define CONFIG_SYS_NS16550_COM2 0x48022000 /* BeagleBone with UART1 */
#define CONFIG_SYS_NS16550_COM4 0x481A6000 /* UART3 on IA BOard */
#define CONFIG_BAUDRATE 115200
@@ -227,8 +228,8 @@
/*
* select serial console configuration
*/
-#define CONFIG_SERIAL1 1
-#define CONFIG_CONS_INDEX 1
+#define CONFIG_SERIAL2 1
+#define CONFIG_CONS_INDEX 2
#define CONFIG_SYS_CONSOLE_INFO_QUIET
#if defined(CONFIG_NO_ETH)
--
1.7.2.5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment