static void __init n8x0_mmc_init(void) { int err; if (machine_is_nokia_n810()) { mmc1_data.slots[0].name = "external"; /* * Some Samsung Movinand chips do not like open-ended * multi-block reads and fall to braind-dead state * while doing so. Reducing the number of blocks in * the transfer or delays in clock disable do not help */ mmc1_data.slots[1].name = "internal"; mmc1_data.slots[1].ban_openended = 1; } err = gpio_request_one(N8X0_SLOT_SWITCH_GPIO, GPIOF_OUT_INIT_LOW, "MMC slot switch"); if (err) return; if (machine_is_nokia_n810()) { err = gpio_request_array(n810_emmc_gpios, ARRAY_SIZE(n810_emmc_gpios)); if (err) { gpio_free(N8X0_SLOT_SWITCH_GPIO); return; } } mmc_data[0] = &mmc1_data; omap242x_init_mmc(mmc_data); }
static void __init n8x0_mmc_init(void) { int err; if (machine_is_nokia_n810()) { mmc1_data.slots[0].name = "external"; mmc1_data.slots[1].name = "internal"; mmc1_data.slots[1].ban_openended = 1; } err = gpio_request_one(N8X0_SLOT_SWITCH_GPIO, GPIOF_OUT_INIT_LOW, "MMC slot switch"); if (err) return; if (machine_is_nokia_n810()) { err = gpio_request_array(n810_emmc_gpios, ARRAY_SIZE(n810_emmc_gpios)); if (err) { gpio_free(N8X0_SLOT_SWITCH_GPIO); return; } } mmc_data[0] = &mmc1_data; omap242x_init_mmc(mmc_data); }