diff mbox

[U-Boot,v2,2/2] tegra: nand: add board pinmux

Message ID 1348948929-29928-2-git-send-email-dev@lynxeye.de
State Accepted
Delegated to: Tom Warren
Headers show

Commit Message

Lucas Stach Sept. 29, 2012, 8:02 p.m. UTC
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>
---
v2: move pinmux setup to common Tegra board code
---
 arch/arm/include/asm/arch-tegra/board.h |  1 +
 board/nvidia/common/board.c             | 12 ++++++++++++
 drivers/mtd/nand/tegra_nand.c           |  1 -
 3 Dateien geändert, 13 Zeilen hinzugefügt(+), 1 Zeile entfernt(-)

Comments

Simon Glass Oct. 4, 2012, 12:35 a.m. UTC | #1
Hi,

On Sat, Sep 29, 2012 at 1:02 PM, Lucas Stach <dev@lynxeye.de> wrote:
> 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>

I think this is reasonable as is.

Acked-by: Simon Glass <sjg@chromium.org>

Regards,
Simon

> ---
> v2: move pinmux setup to common Tegra board code
> ---
>  arch/arm/include/asm/arch-tegra/board.h |  1 +
>  board/nvidia/common/board.c             | 12 ++++++++++++
>  drivers/mtd/nand/tegra_nand.c           |  1 -
>  3 Dateien geändert, 13 Zeilen hinzugefügt(+), 1 Zeile entfernt(-)
>
> diff --git a/arch/arm/include/asm/arch-tegra/board.h b/arch/arm/include/asm/arch-tegra/board.h
> index 7e56df7..be6bf25 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 dc301e7..2c7cd0d 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 2c1b533..5408c51 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);
>
> --
> 1.7.11.4
>
diff mbox

Patch

diff --git a/arch/arm/include/asm/arch-tegra/board.h b/arch/arm/include/asm/arch-tegra/board.h
index 7e56df7..be6bf25 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 dc301e7..2c7cd0d 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 2c1b533..5408c51 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);