Patchwork [U-Boot] am335x: add initial AM335x IDK board support

login
register
mail settings
Submitter Matthias Fuchs
Date Oct. 29, 2012, 11:44 a.m.
Message ID <508E6C3A.10000@esd.eu>
Download mbox | patch
Permalink /patch/194984/
State Superseded
Delegated to: Tom Rini
Headers show

Comments

Matthias Fuchs - Oct. 29, 2012, 11:44 a.m.
This patch extends the am335x_evm board for the AM335x IDK.

The IDK board uses MII for the ethernet phy (same as
Beaglebone board) and MMC0 for storage (but without
card detect line).

The IDK uses UART3 for console. So u-boot must be build
with CONFIG_SERIAL4 and CONFIG_CONS_INDEX=4 or for
the am335x_evm_uart3 board configuration as introduced
by Andrew Bradfords recent patch series "am33xx: Enable
UART {1,2,3,4,5}..."

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd.eu>
---
 arch/arm/cpu/armv7/am33xx/board.c |    9 +++++++--
 board/ti/am335x/mux.c             |   20 ++++++++++++++++++++
 2 files changed, 27 insertions(+), 2 deletions(-)
Peter Korsgaard - Oct. 29, 2012, 12:54 p.m.
>>>>> "Matthias" == Matthias Fuchs <matthias.fuchs@esd.eu> writes:

 Matthias> This patch extends the am335x_evm board for the AM335x IDK.
 Matthias> The IDK board uses MII for the ethernet phy (same as
 Matthias> Beaglebone board) and MMC0 for storage (but without
 Matthias> card detect line).

 Matthias> The IDK uses UART3 for console. So u-boot must be build
 Matthias> with CONFIG_SERIAL4 and CONFIG_CONS_INDEX=4 or for
 Matthias> the am335x_evm_uart3 board configuration as introduced
 Matthias> by Andrew Bradfords recent patch series "am33xx: Enable
 Matthias> UART {1,2,3,4,5}..."

The changes look good from a quick look, but notice that the ti board
support has recently moved to board/ti/am335x/board.c. Could you rebase
against current git and resend?

Patch

diff --git a/arch/arm/cpu/armv7/am33xx/board.c b/arch/arm/cpu/armv7/am33xx/board.c
index e324265..3818d84 100644
--- a/arch/arm/cpu/armv7/am33xx/board.c
+++ b/arch/arm/cpu/armv7/am33xx/board.c
@@ -64,6 +64,11 @@  static inline int board_is_bone(void)
 	return !strncmp(header.name, "A335BONE", HDR_NAME_LEN);
 }
 
+static inline int board_is_idk(void)
+{
+	return !strncmp(header.config, "SKU#02", 6);
+}
+
 static inline int board_is_evm_sk(void)
 {
 	return !strncmp("A335X_SK", header.name, HDR_NAME_LEN);
@@ -211,7 +216,7 @@  void s_init(void)
 int board_mmc_init(bd_t *bis)
 {
 	int ret;
-	
+
 	ret = omap_mmc_init(0, 0, 0);
 	if (ret)
 		return ret;
@@ -302,7 +307,7 @@  int board_eth_init(bd_t *bis)
 			return -1;
 	}
 
-	if (board_is_bone()) {
+	if (board_is_bone() || board_is_idk()) {
 		writel(MII_MODE_ENABLE, &cdev->miisel);
 		cpsw_slaves[0].phy_if = cpsw_slaves[1].phy_if =
 				PHY_INTERFACE_MODE_MII;
diff --git a/board/ti/am335x/mux.c b/board/ti/am335x/mux.c
index 82b5852..f20cfbc 100644
--- a/board/ti/am335x/mux.c
+++ b/board/ti/am335x/mux.c
@@ -301,6 +301,17 @@  static struct module_pin_mux mmc0_pin_mux[] = {
 	{-1},
 };
 
+static struct module_pin_mux mmc0_no_cd_pin_mux[] = {
+	{OFFSET(mmc0_dat3), (MODE(0) | RXACTIVE | PULLUP_EN)},	/* MMC0_DAT3 */
+	{OFFSET(mmc0_dat2), (MODE(0) | RXACTIVE | PULLUP_EN)},	/* MMC0_DAT2 */
+	{OFFSET(mmc0_dat1), (MODE(0) | RXACTIVE | PULLUP_EN)},	/* MMC0_DAT1 */
+	{OFFSET(mmc0_dat0), (MODE(0) | RXACTIVE | PULLUP_EN)},	/* MMC0_DAT0 */
+	{OFFSET(mmc0_clk), (MODE(0) | RXACTIVE | PULLUP_EN)},	/* MMC0_CLK */
+	{OFFSET(mmc0_cmd), (MODE(0) | RXACTIVE | PULLUP_EN)},	/* MMC0_CMD */
+	{OFFSET(mcasp0_aclkr), (MODE(4) | RXACTIVE)},		/* MMC0_WP */
+	{-1},
+};
+
 static struct module_pin_mux mmc0_pin_mux_sk_evm[] = {
 	{OFFSET(mmc0_dat3), (MODE(0) | RXACTIVE | PULLUP_EN)},	/* MMC0_DAT3 */
 	{OFFSET(mmc0_dat2), (MODE(0) | RXACTIVE | PULLUP_EN)},	/* MMC0_DAT2 */
@@ -496,6 +507,15 @@  void enable_board_pin_mux(struct am335x_baseboard_id *header)
 			configure_module_pin_mux(mmc1_pin_mux);
 			configure_module_pin_mux(spi0_pin_mux);
 		}
+	} else if (!strncmp(header->config, "SKU#02", 6)) {
+		/*
+		 * Industrial Motor Control (IDK)
+		 * note: IDK console is on UART3 by default.
+		 *       So u-boot mus be build with CONFIG_SERIAL4 and
+		 *       CONFIG_CONS_INDEX=4
+		 */
+		configure_module_pin_mux(mii1_pin_mux);
+		configure_module_pin_mux(mmc0_no_cd_pin_mux);
 	} else if (!strncmp(header->name, "A335X_SK", HDR_NAME_LEN)) {
 		/* Starter Kit EVM */
 		configure_module_pin_mux(i2c1_pin_mux);