static void sdi0_sdi1_configure(void) { int ret; /* v2 has a new version of this block that need to be forced */ u32 periphid = 0x10480180; ret = gpio_request(sdi0_en, "level shifter enable"); if (!ret) ret = gpio_request(sdi0_vsel, "level shifter 1v8-3v select"); if (ret) { pr_warning("unable to config sdi0 gpios for level shifter.\n"); return; } /* Select the default 2.9V and enable level shifter */ gpio_direction_output(sdi0_vsel, 0); gpio_direction_output(sdi0_en, 1); db8500_add_sdi0(&mop500_sdi0_data, periphid); sdi1_configure(); db8500_add_sdi1(&mop500_sdi1_data, periphid); }
void __init mop500_sdi_init(void) { u32 periphid = 0x10480180; /* POPed eMMC */ db8500_add_sdi2(&mop500_sdi2_data, periphid); /* On-board eMMC */ db8500_add_sdi4(&mop500_sdi4_data, periphid); /* WLAN */ sdi1_configure(); db8500_add_sdi1(&mop500_sdi1_data, periphid); #ifdef CONFIG_U8500_SD_MMC_CARD_SUPPORT /* SD/MMC card */ sdi3_configure(); db8500_add_sdi3(&mop500_sdi3_data, periphid); #endif }