summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas Stach <dev@lynxeye.de>2012-09-29 10:02:09 +0000
committerTom Rini <trini@ti.com>2012-10-15 11:54:07 -0700
commitc0720afbb56f91fd33fb5b4e564e1037809c6304 (patch)
tree612884dd33a0fd306e931c919c60112ba6e8cd9b
parent516f00b3240b678947389ccfbff54a5ebcc9b941 (diff)
tegra: nand: add board pinmux
Boards may require a different pinmux setup for NAND than the default one. Add a way to call into board specific code to set this up. Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Tom Warren <twarren@nvidia.com>
-rw-r--r--arch/arm/include/asm/arch-tegra/board.h1
-rw-r--r--board/nvidia/common/board.c12
-rw-r--r--drivers/mtd/nand/tegra_nand.c1
3 files changed, 13 insertions, 1 deletions
diff --git a/arch/arm/include/asm/arch-tegra/board.h b/arch/arm/include/asm/arch-tegra/board.h
index 7e56df78b1..be6bf25f0b 100644
--- a/arch/arm/include/asm/arch-tegra/board.h
+++ b/arch/arm/include/asm/arch-tegra/board.h
@@ -43,5 +43,6 @@ void gpio_early_init(void); /* overrideable GPIO config */
void pin_mux_usb(void); /* overrideable USB pinmux setup */
void pin_mux_spi(void); /* overrideable SPI pinmux setup */
+void pin_mux_nand(void); /* overrideable NAND pinmux setup */
#endif
diff --git a/board/nvidia/common/board.c b/board/nvidia/common/board.c
index dc301e741b..2c7cd0d401 100644
--- a/board/nvidia/common/board.c
+++ b/board/nvidia/common/board.c
@@ -27,6 +27,7 @@
#include <asm/io.h>
#include <asm/arch/clock.h>
#include <asm/arch/emc.h>
+#include <asm/arch/funcmux.h>
#include <asm/arch/pinmux.h>
#include <asm/arch/pmu.h>
#include <asm/arch/tegra.h>
@@ -77,6 +78,13 @@ void __gpio_early_init_uart(void)
void gpio_early_init_uart(void)
__attribute__((weak, alias("__gpio_early_init_uart")));
+void __pin_mux_nand(void)
+{
+ funcmux_select(PERIPH_ID_NDFLASH, FUNCMUX_DEFAULT);
+}
+
+void pin_mux_nand(void) __attribute__((weak, alias("__pin_mux_nand")));
+
/*
* Routine: power_det_init
* Description: turn off power detects
@@ -137,6 +145,10 @@ int board_init(void)
board_usb_init(gd->fdt_blob);
#endif
+#ifdef CONFIG_TEGRA_NAND
+ pin_mux_nand();
+#endif
+
#ifdef CONFIG_TEGRA_LP0
/* save Sdram params to PMC 2, 4, and 24 for WB0 */
warmboot_save_sdram_params();
diff --git a/drivers/mtd/nand/tegra_nand.c b/drivers/mtd/nand/tegra_nand.c
index 2c1b533bb0..5408c51ffb 100644
--- a/drivers/mtd/nand/tegra_nand.c
+++ b/drivers/mtd/nand/tegra_nand.c
@@ -992,7 +992,6 @@ int tegra_nand_init(struct nand_chip *nand, int devnum)
/* Adjust timing for NAND device */
setup_timing(config->timing, info->reg);
- funcmux_select(PERIPH_ID_NDFLASH, FUNCMUX_DEFAULT);
fdtdec_setup_gpio(&config->wp_gpio);
gpio_direction_output(config->wp_gpio.gpio, 1);