Commit b5ebe4e1 authored by Sekhar Nori's avatar Sekhar Nori Committed by Kevin Hilman

davinci: DA830/OMAP-L137 EVM: do not configure NAND on UI card when MMC/SD is selected

On the DA830, AEMIF and MMC/SD pins are shared. On the EVM, when
the mux_mode signal is low MMC/SD works and when mux_mode signal
is high, NAND works.

When MMC/SD driver is configured in the kernel, do not let NAND
get registered and drive mux_mode high. Instead, print a warning
for user to understand why the platform device for NAND did not
get registered.
Signed-off-by: default avatarSekhar Nori <nsekhar@ti.com>
Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
parent 77316f05
...@@ -282,6 +282,12 @@ static const short da830_evm_emif25_pins[] = { ...@@ -282,6 +282,12 @@ static const short da830_evm_emif25_pins[] = {
-1 -1
}; };
#if defined(CONFIG_MMC_DAVINCI) || defined(CONFIG_MMC_DAVINCI_MODULE)
#define HAS_MMC 1
#else
#define HAS_MMC 0
#endif
#ifdef CONFIG_DA830_UI_NAND #ifdef CONFIG_DA830_UI_NAND
static struct mtd_partition da830_evm_nand_partitions[] = { static struct mtd_partition da830_evm_nand_partitions[] = {
/* bootloader (U-Boot, etc) in first sector */ /* bootloader (U-Boot, etc) in first sector */
...@@ -377,6 +383,13 @@ static inline void da830_evm_init_nand(int mux_mode) ...@@ -377,6 +383,13 @@ static inline void da830_evm_init_nand(int mux_mode)
{ {
int ret; int ret;
if (HAS_MMC) {
pr_warning("WARNING: both MMC/SD and NAND are "
"enabled, but they share AEMIF pins.\n"
"\tDisable MMC/SD for NAND support.\n");
return;
}
ret = da8xx_pinmux_setup(da830_evm_emif25_pins); ret = da8xx_pinmux_setup(da830_evm_emif25_pins);
if (ret) if (ret)
pr_warning("da830_evm_init: emif25 mux setup failed: %d\n", pr_warning("da830_evm_init: emif25 mux setup failed: %d\n",
...@@ -425,6 +438,9 @@ static int da830_evm_ui_expander_setup(struct i2c_client *client, int gpio, ...@@ -425,6 +438,9 @@ static int da830_evm_ui_expander_setup(struct i2c_client *client, int gpio,
{ {
gpio_request(gpio + 6, "UI MUX_MODE"); gpio_request(gpio + 6, "UI MUX_MODE");
/* Drive mux mode low to match the default without UI card */
gpio_direction_output(gpio + 6, 0);
da830_evm_init_lcdc(gpio + 6); da830_evm_init_lcdc(gpio + 6);
da830_evm_init_nand(gpio + 6); da830_evm_init_nand(gpio + 6);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment