forked from Minki/linux
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: Sekhar Nori <nsekhar@ti.com> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
This commit is contained in:
parent
77316f0575
commit
b5ebe4e198
@ -282,6 +282,12 @@ static const short da830_evm_emif25_pins[] = {
|
||||
-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
|
||||
static struct mtd_partition da830_evm_nand_partitions[] = {
|
||||
/* bootloader (U-Boot, etc) in first sector */
|
||||
@ -377,6 +383,13 @@ static inline void da830_evm_init_nand(int mux_mode)
|
||||
{
|
||||
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);
|
||||
if (ret)
|
||||
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,
|
||||
{
|
||||
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_nand(gpio + 6);
|
||||
|
Loading…
Reference in New Issue
Block a user