Beispiel #1
0
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
}