Created
May 1, 2012 17:02
-
-
Save bradfa/2569638 to your computer and use it in GitHub Desktop.
Beaglebone UART1 u-boot patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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