Merge branch 'devel-omap-misc' into omap-for-linus
This commit is contained in:
Коммит
b245f26f5e
|
@ -19,6 +19,7 @@
|
|||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/physmap.h>
|
||||
#include <linux/mmc/host.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
#include <linux/err.h>
|
||||
|
@ -190,7 +191,7 @@ static int __init omap2430_i2c_init(void)
|
|||
static struct omap2_hsmmc_info mmc[] __initdata = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = -EINVAL,
|
||||
.ext_clock = 1,
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <linux/regulator/machine.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/gpio.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -353,12 +354,12 @@ static struct omap2_hsmmc_info mmc[] = {
|
|||
/* 8 bits (default) requires S6.3 == ON,
|
||||
* so the SIM card isn't used; else 4 bits.
|
||||
*/
|
||||
.wires = 8,
|
||||
.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
.gpio_wp = 4,
|
||||
},
|
||||
{
|
||||
.mmc = 2,
|
||||
.wires = 8,
|
||||
.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
.gpio_wp = 7,
|
||||
},
|
||||
{} /* Terminator */
|
||||
|
|
|
@ -193,12 +193,12 @@ static struct omap_musb_board_data musb_board_data = {
|
|||
static struct omap2_hsmmc_info mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.wires = 8,
|
||||
.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
.gpio_wp = -EINVAL,
|
||||
},
|
||||
{
|
||||
.mmc = 2,
|
||||
.wires = 8,
|
||||
.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = -EINVAL,
|
||||
.nonremovable = true,
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include <linux/i2c/at24.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/spi/tdo24m.h>
|
||||
|
@ -579,14 +580,14 @@ static struct twl4030_keypad_data cm_t35_kp_data = {
|
|||
static struct omap2_hsmmc_info mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = -EINVAL,
|
||||
|
||||
},
|
||||
{
|
||||
.mmc = 2,
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.transceiver = 1,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = -EINVAL,
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
|
@ -105,7 +106,7 @@ static struct omap_nand_platform_data devkit8000_nand_data = {
|
|||
static struct omap2_hsmmc_info mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.wires = 8,
|
||||
.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
.gpio_wp = 29,
|
||||
},
|
||||
{} /* Terminator */
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -248,13 +249,13 @@ static struct regulator_init_data igep2_vmmc2 = {
|
|||
static struct omap2_hsmmc_info mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = -EINVAL,
|
||||
},
|
||||
{
|
||||
.mmc = 2,
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = -EINVAL,
|
||||
},
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include <linux/i2c/twl.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/smsc911x.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -362,7 +363,7 @@ static int __init omap_i2c_init(void)
|
|||
static struct omap2_hsmmc_info mmc[] __initdata = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = -EINVAL,
|
||||
},
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <linux/i2c.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/usb/musb.h>
|
||||
#include <sound/tlv320aic3x.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -487,7 +488,7 @@ static struct omap_mmc_platform_data mmc1_data = {
|
|||
.max_freq = 24000000,
|
||||
.dma_mask = 0xffffffff,
|
||||
.slots[0] = {
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.set_power = n8x0_mmc_set_power,
|
||||
.set_bus_mode = n8x0_mmc_set_bus_mode,
|
||||
.get_cover_state = n8x0_mmc_get_cover_state,
|
||||
|
@ -614,29 +615,35 @@ static int n8x0_menelaus_late_init(struct device *dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct i2c_board_info __initdata n8x0_i2c_board_info_1[] = {
|
||||
#else
|
||||
static int n8x0_menelaus_late_init(struct device *dev)
|
||||
{
|
||||
I2C_BOARD_INFO("menelaus", 0x72),
|
||||
.irq = INT_24XX_SYS_NIRQ,
|
||||
},
|
||||
};
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static struct menelaus_platform_data n8x0_menelaus_platform_data = {
|
||||
static struct menelaus_platform_data n8x0_menelaus_platform_data __initdata = {
|
||||
.late_init = n8x0_menelaus_late_init,
|
||||
};
|
||||
|
||||
static void __init n8x0_menelaus_init(void)
|
||||
static struct i2c_board_info __initdata n8x0_i2c_board_info_1[] __initdata = {
|
||||
{
|
||||
n8x0_i2c_board_info_1[0].platform_data = &n8x0_menelaus_platform_data;
|
||||
omap_register_i2c_bus(1, 400, n8x0_i2c_board_info_1,
|
||||
ARRAY_SIZE(n8x0_i2c_board_info_1));
|
||||
}
|
||||
I2C_BOARD_INFO("menelaus", 0x72),
|
||||
.irq = INT_24XX_SYS_NIRQ,
|
||||
.platform_data = &n8x0_menelaus_platform_data,
|
||||
},
|
||||
};
|
||||
|
||||
#else
|
||||
static inline void __init n8x0_menelaus_init(void)
|
||||
static struct aic3x_pdata n810_aic33_data __initdata = {
|
||||
.gpio_reset = 118,
|
||||
};
|
||||
|
||||
static struct i2c_board_info n810_i2c_board_info_2[] __initdata = {
|
||||
{
|
||||
}
|
||||
#endif
|
||||
I2C_BOARD_INFO("tlv320aic3x", 0x18),
|
||||
.platform_data = &n810_aic33_data,
|
||||
},
|
||||
};
|
||||
|
||||
static void __init n8x0_map_io(void)
|
||||
{
|
||||
|
@ -653,6 +660,11 @@ static void __init n8x0_init_irq(void)
|
|||
|
||||
#ifdef CONFIG_OMAP_MUX
|
||||
static struct omap_board_mux board_mux[] __initdata = {
|
||||
/* I2S codec port pins for McBSP block */
|
||||
OMAP2420_MUX(EAC_AC_SCLK, OMAP_MUX_MODE1 | OMAP_PIN_INPUT),
|
||||
OMAP2420_MUX(EAC_AC_FS, OMAP_MUX_MODE1 | OMAP_PIN_INPUT),
|
||||
OMAP2420_MUX(EAC_AC_DIN, OMAP_MUX_MODE1 | OMAP_PIN_INPUT),
|
||||
OMAP2420_MUX(EAC_AC_DOUT, OMAP_MUX_MODE1 | OMAP_PIN_OUTPUT),
|
||||
{ .reg_offset = OMAP_MUX_TERMINATOR },
|
||||
};
|
||||
#else
|
||||
|
@ -665,9 +677,14 @@ static void __init n8x0_init_machine(void)
|
|||
/* FIXME: add n810 spi devices */
|
||||
spi_register_board_info(n800_spi_board_info,
|
||||
ARRAY_SIZE(n800_spi_board_info));
|
||||
omap_register_i2c_bus(1, 400, n8x0_i2c_board_info_1,
|
||||
ARRAY_SIZE(n8x0_i2c_board_info_1));
|
||||
omap_register_i2c_bus(2, 400, NULL, 0);
|
||||
if (machine_is_nokia_n810())
|
||||
i2c_register_board_info(2, n810_i2c_board_info_2,
|
||||
ARRAY_SIZE(n810_i2c_board_info_2));
|
||||
|
||||
omap_serial_init();
|
||||
n8x0_menelaus_init();
|
||||
n8x0_onenand_init();
|
||||
n8x0_mmc_init();
|
||||
n8x0_usb_init();
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
|
@ -166,7 +167,7 @@ static void __init beagle_display_init(void)
|
|||
static struct omap2_hsmmc_info mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.wires = 8,
|
||||
.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
.gpio_wp = 29,
|
||||
},
|
||||
{} /* Terminator */
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include <linux/smsc911x.h>
|
||||
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -370,7 +371,7 @@ static struct regulator_init_data omap3evm_vsim = {
|
|||
static struct omap2_hsmmc_info mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = 63,
|
||||
},
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include <linux/input.h>
|
||||
#include <linux/input/matrix_keypad.h>
|
||||
#include <linux/gpio_keys.h>
|
||||
#include <linux/mmc/host.h>
|
||||
#include <linux/mmc/card.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -276,14 +277,14 @@ static void pandora_wl1251_init_card(struct mmc_card *card)
|
|||
static struct omap2_hsmmc_info omap3pandora_mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = 126,
|
||||
.ext_clock = 0,
|
||||
},
|
||||
{
|
||||
.mmc = 2,
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = 127,
|
||||
.ext_clock = 1,
|
||||
|
@ -291,7 +292,7 @@ static struct omap2_hsmmc_info omap3pandora_mmc[] = {
|
|||
},
|
||||
{
|
||||
.mmc = 3,
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = -EINVAL,
|
||||
.init_card = pandora_wl1251_init_card,
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
@ -275,7 +276,7 @@ static struct regulator_init_data omap3stalker_vsim = {
|
|||
static struct omap2_hsmmc_info mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = 23,
|
||||
},
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <plat/mcspi.h>
|
||||
#include <linux/spi/spi.h>
|
||||
|
@ -108,7 +109,7 @@ static struct omap_nand_platform_data omap3touchbook_nand_data = {
|
|||
static struct omap2_hsmmc_info mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.wires = 8,
|
||||
.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
.gpio_wp = 29,
|
||||
},
|
||||
{} /* Terminator */
|
||||
|
|
|
@ -56,7 +56,7 @@ static struct omap_musb_board_data musb_board_data = {
|
|||
static struct omap2_hsmmc_info mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.wires = 8,
|
||||
.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
.gpio_wp = -EINVAL,
|
||||
},
|
||||
{} /* Terminator */
|
||||
|
@ -274,8 +274,6 @@ static int __init omap4_panda_i2c_init(void)
|
|||
}
|
||||
static void __init omap4_panda_init(void)
|
||||
{
|
||||
int status;
|
||||
|
||||
omap4_panda_i2c_init();
|
||||
omap_serial_init();
|
||||
omap4_twl6030_hsmmc_init(mmc);
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include <linux/mtd/mtd.h>
|
||||
#include <linux/mtd/nand.h>
|
||||
#include <linux/mtd/partitions.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -303,13 +304,13 @@ static void __init overo_flash_init(void)
|
|||
static struct omap2_hsmmc_info mmc[] = {
|
||||
{
|
||||
.mmc = 1,
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = -EINVAL,
|
||||
},
|
||||
{
|
||||
.mmc = 2,
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = -EINVAL,
|
||||
.transceiver = true,
|
||||
|
|
|
@ -302,7 +302,7 @@ static struct omap2_hsmmc_info mmc[] __initdata = {
|
|||
{
|
||||
.name = "external",
|
||||
.mmc = 1,
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.cover_only = true,
|
||||
.gpio_cd = 160,
|
||||
.gpio_wp = -EINVAL,
|
||||
|
@ -311,7 +311,8 @@ static struct omap2_hsmmc_info mmc[] __initdata = {
|
|||
{
|
||||
.name = "internal",
|
||||
.mmc = 2,
|
||||
.wires = 8, /* See also rx51_mmc2_remux */
|
||||
.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
/* See also rx51_mmc2_remux */
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = -EINVAL,
|
||||
.nonremovable = true,
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include <linux/gpio.h>
|
||||
#include <linux/i2c/twl.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -155,14 +156,14 @@ static struct omap2_hsmmc_info mmc[] __initdata = {
|
|||
{
|
||||
.name = "external",
|
||||
.mmc = 1,
|
||||
.wires = 4,
|
||||
.caps = MMC_CAP_4_BIT_DATA,
|
||||
.gpio_wp = -EINVAL,
|
||||
.power_saving = true,
|
||||
},
|
||||
{
|
||||
.name = "internal",
|
||||
.mmc = 2,
|
||||
.wires = 8,
|
||||
.caps = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
||||
.gpio_cd = -EINVAL,
|
||||
.gpio_wp = -EINVAL,
|
||||
.nonremovable = true,
|
||||
|
|
|
@ -1838,7 +1838,7 @@ static struct omap_clk omap2420_clks[] = {
|
|||
CLK(NULL, "des_ick", &des_ick, CK_242X),
|
||||
CLK("omap-sham", "ick", &sha_ick, CK_242X),
|
||||
CLK("omap_rng", "ick", &rng_ick, CK_242X),
|
||||
CLK(NULL, "aes_ick", &aes_ick, CK_242X),
|
||||
CLK("omap-aes", "ick", &aes_ick, CK_242X),
|
||||
CLK(NULL, "pka_ick", &pka_ick, CK_242X),
|
||||
CLK(NULL, "usb_fck", &usb_fck, CK_242X),
|
||||
CLK("musb_hdrc", "fck", &osc_ck, CK_242X),
|
||||
|
|
|
@ -1926,7 +1926,7 @@ static struct omap_clk omap2430_clks[] = {
|
|||
CLK(NULL, "des_ick", &des_ick, CK_243X),
|
||||
CLK("omap-sham", "ick", &sha_ick, CK_243X),
|
||||
CLK("omap_rng", "ick", &rng_ick, CK_243X),
|
||||
CLK(NULL, "aes_ick", &aes_ick, CK_243X),
|
||||
CLK("omap-aes", "ick", &aes_ick, CK_243X),
|
||||
CLK(NULL, "pka_ick", &pka_ick, CK_243X),
|
||||
CLK(NULL, "usb_fck", &usb_fck, CK_243X),
|
||||
CLK("musb_hdrc", "ick", &usbhs_ick, CK_243X),
|
||||
|
|
|
@ -3288,7 +3288,7 @@ static struct omap_clk omap3xxx_clks[] = {
|
|||
CLK(NULL, "usbtll_ick", &usbtll_ick, CK_3430ES2 | CK_AM35XX),
|
||||
CLK("mmci-omap-hs.2", "ick", &mmchs3_ick, CK_3430ES2 | CK_AM35XX),
|
||||
CLK(NULL, "icr_ick", &icr_ick, CK_343X),
|
||||
CLK(NULL, "aes2_ick", &aes2_ick, CK_343X),
|
||||
CLK("omap-aes", "ick", &aes2_ick, CK_343X),
|
||||
CLK("omap-sham", "ick", &sha12_ick, CK_343X),
|
||||
CLK(NULL, "des2_ick", &des2_ick, CK_343X),
|
||||
CLK("mmci-omap-hs.1", "ick", &mmchs2_ick, CK_3XXX),
|
||||
|
|
|
@ -498,6 +498,76 @@ static void omap_init_sham(void)
|
|||
static inline void omap_init_sham(void) { }
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CRYPTO_DEV_OMAP_AES) || defined(CONFIG_CRYPTO_DEV_OMAP_AES_MODULE)
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP2
|
||||
static struct resource omap2_aes_resources[] = {
|
||||
{
|
||||
.start = OMAP24XX_SEC_AES_BASE,
|
||||
.end = OMAP24XX_SEC_AES_BASE + 0x4C,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
{
|
||||
.start = OMAP24XX_DMA_AES_TX,
|
||||
.flags = IORESOURCE_DMA,
|
||||
},
|
||||
{
|
||||
.start = OMAP24XX_DMA_AES_RX,
|
||||
.flags = IORESOURCE_DMA,
|
||||
}
|
||||
};
|
||||
static int omap2_aes_resources_sz = ARRAY_SIZE(omap2_aes_resources);
|
||||
#else
|
||||
#define omap2_aes_resources NULL
|
||||
#define omap2_aes_resources_sz 0
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP3
|
||||
static struct resource omap3_aes_resources[] = {
|
||||
{
|
||||
.start = OMAP34XX_SEC_AES_BASE,
|
||||
.end = OMAP34XX_SEC_AES_BASE + 0x4C,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
{
|
||||
.start = OMAP34XX_DMA_AES2_TX,
|
||||
.flags = IORESOURCE_DMA,
|
||||
},
|
||||
{
|
||||
.start = OMAP34XX_DMA_AES2_RX,
|
||||
.flags = IORESOURCE_DMA,
|
||||
}
|
||||
};
|
||||
static int omap3_aes_resources_sz = ARRAY_SIZE(omap3_aes_resources);
|
||||
#else
|
||||
#define omap3_aes_resources NULL
|
||||
#define omap3_aes_resources_sz 0
|
||||
#endif
|
||||
|
||||
static struct platform_device aes_device = {
|
||||
.name = "omap-aes",
|
||||
.id = -1,
|
||||
};
|
||||
|
||||
static void omap_init_aes(void)
|
||||
{
|
||||
if (cpu_is_omap24xx()) {
|
||||
aes_device.resource = omap2_aes_resources;
|
||||
aes_device.num_resources = omap2_aes_resources_sz;
|
||||
} else if (cpu_is_omap34xx()) {
|
||||
aes_device.resource = omap3_aes_resources;
|
||||
aes_device.num_resources = omap3_aes_resources_sz;
|
||||
} else {
|
||||
pr_err("%s: platform not supported\n", __func__);
|
||||
return;
|
||||
}
|
||||
platform_device_register(&aes_device);
|
||||
}
|
||||
|
||||
#else
|
||||
static inline void omap_init_aes(void) { }
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
|
||||
|
@ -624,7 +694,7 @@ static inline void omap2_mmc_mux(struct omap_mmc_platform_data *mmc_controller,
|
|||
omap_mux_init_signal("sdmmc_dat0", 0);
|
||||
omap_mux_init_signal("sdmmc_dat_dir0", 0);
|
||||
omap_mux_init_signal("sdmmc_cmd_dir", 0);
|
||||
if (mmc_controller->slots[0].wires == 4) {
|
||||
if (mmc_controller->slots[0].caps & MMC_CAP_4_BIT_DATA) {
|
||||
omap_mux_init_signal("sdmmc_dat1", 0);
|
||||
omap_mux_init_signal("sdmmc_dat2", 0);
|
||||
omap_mux_init_signal("sdmmc_dat3", 0);
|
||||
|
@ -652,8 +722,8 @@ static inline void omap2_mmc_mux(struct omap_mmc_platform_data *mmc_controller,
|
|||
OMAP_PIN_INPUT_PULLUP);
|
||||
omap_mux_init_signal("sdmmc1_dat0",
|
||||
OMAP_PIN_INPUT_PULLUP);
|
||||
if (mmc_controller->slots[0].wires == 4 ||
|
||||
mmc_controller->slots[0].wires == 8) {
|
||||
if (mmc_controller->slots[0].caps &
|
||||
(MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA)) {
|
||||
omap_mux_init_signal("sdmmc1_dat1",
|
||||
OMAP_PIN_INPUT_PULLUP);
|
||||
omap_mux_init_signal("sdmmc1_dat2",
|
||||
|
@ -661,7 +731,8 @@ static inline void omap2_mmc_mux(struct omap_mmc_platform_data *mmc_controller,
|
|||
omap_mux_init_signal("sdmmc1_dat3",
|
||||
OMAP_PIN_INPUT_PULLUP);
|
||||
}
|
||||
if (mmc_controller->slots[0].wires == 8) {
|
||||
if (mmc_controller->slots[0].caps &
|
||||
MMC_CAP_8_BIT_DATA) {
|
||||
omap_mux_init_signal("sdmmc1_dat4",
|
||||
OMAP_PIN_INPUT_PULLUP);
|
||||
omap_mux_init_signal("sdmmc1_dat5",
|
||||
|
@ -685,8 +756,8 @@ static inline void omap2_mmc_mux(struct omap_mmc_platform_data *mmc_controller,
|
|||
* For 8 wire configurations, Lines DAT4, 5, 6 and 7 need to be muxed
|
||||
* in the board-*.c files
|
||||
*/
|
||||
if (mmc_controller->slots[0].wires == 4 ||
|
||||
mmc_controller->slots[0].wires == 8) {
|
||||
if (mmc_controller->slots[0].caps &
|
||||
(MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA)) {
|
||||
omap_mux_init_signal("sdmmc2_dat1",
|
||||
OMAP_PIN_INPUT_PULLUP);
|
||||
omap_mux_init_signal("sdmmc2_dat2",
|
||||
|
@ -694,7 +765,8 @@ static inline void omap2_mmc_mux(struct omap_mmc_platform_data *mmc_controller,
|
|||
omap_mux_init_signal("sdmmc2_dat3",
|
||||
OMAP_PIN_INPUT_PULLUP);
|
||||
}
|
||||
if (mmc_controller->slots[0].wires == 8) {
|
||||
if (mmc_controller->slots[0].caps &
|
||||
MMC_CAP_8_BIT_DATA) {
|
||||
omap_mux_init_signal("sdmmc2_dat4.sdmmc2_dat4",
|
||||
OMAP_PIN_INPUT_PULLUP);
|
||||
omap_mux_init_signal("sdmmc2_dat5.sdmmc2_dat5",
|
||||
|
@ -854,6 +926,7 @@ static int __init omap2_init_devices(void)
|
|||
omap_hdq_init();
|
||||
omap_init_sti();
|
||||
omap_init_sham();
|
||||
omap_init_aes();
|
||||
omap_init_vout();
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -258,7 +258,7 @@ void __init omap2_hsmmc_init(struct omap2_hsmmc_info *controllers)
|
|||
"mmc%islot%i", c->mmc, 1);
|
||||
mmc->slots[0].name = hc->name;
|
||||
mmc->nr_slots = 1;
|
||||
mmc->slots[0].wires = c->wires;
|
||||
mmc->slots[0].caps = c->caps;
|
||||
mmc->slots[0].internal_clock = !c->ext_clock;
|
||||
mmc->dma_mask = 0xffffffff;
|
||||
|
||||
|
@ -316,16 +316,20 @@ void __init omap2_hsmmc_init(struct omap2_hsmmc_info *controllers)
|
|||
}
|
||||
|
||||
/* Omap3630 HSMMC1 supports only 4-bit */
|
||||
if (cpu_is_omap3630() && c->wires > 4) {
|
||||
c->wires = 4;
|
||||
mmc->slots[0].wires = c->wires;
|
||||
if (cpu_is_omap3630() &&
|
||||
(c->caps & MMC_CAP_8_BIT_DATA)) {
|
||||
c->caps &= ~MMC_CAP_8_BIT_DATA;
|
||||
c->caps |= MMC_CAP_4_BIT_DATA;
|
||||
mmc->slots[0].caps = c->caps;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (c->ext_clock)
|
||||
c->transceiver = 1;
|
||||
if (c->transceiver && c->wires > 4)
|
||||
c->wires = 4;
|
||||
if (c->transceiver && (c->caps & MMC_CAP_8_BIT_DATA)) {
|
||||
c->caps &= ~MMC_CAP_8_BIT_DATA;
|
||||
c->caps |= MMC_CAP_4_BIT_DATA;
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
case 3:
|
||||
if (mmc->slots[0].features & HSMMC_HAS_PBIAS) {
|
||||
|
|
|
@ -10,7 +10,8 @@ struct mmc_card;
|
|||
|
||||
struct omap2_hsmmc_info {
|
||||
u8 mmc; /* controller 1/2/3 */
|
||||
u8 wires; /* 1/4/8 wires */
|
||||
u32 caps; /* 4/8 wires and any additional host
|
||||
* capabilities OR'd (ref. linux/mmc/host.h) */
|
||||
bool transceiver; /* MMC-2 option */
|
||||
bool ext_clock; /* use external pin for input clock */
|
||||
bool cover_only; /* No card detect - just cover switch */
|
||||
|
|
|
@ -23,29 +23,6 @@
|
|||
#include <plat/cpu.h>
|
||||
#include <plat/mcbsp.h>
|
||||
|
||||
#include "mux.h"
|
||||
|
||||
static void omap2_mcbsp2_mux_setup(void)
|
||||
{
|
||||
omap_mux_init_signal("eac_ac_sclk.mcbsp2_clkx", OMAP_PULL_ENA);
|
||||
omap_mux_init_signal("eac_ac_fs.mcbsp2_fsx", OMAP_PULL_ENA);
|
||||
omap_mux_init_signal("eac_ac_din.mcbsp2_dr", OMAP_PULL_ENA);
|
||||
omap_mux_init_signal("eac_ac_dout.mcbsp2_dx", OMAP_PULL_ENA);
|
||||
omap_mux_init_gpio(117, OMAP_PULL_ENA);
|
||||
/*
|
||||
* TODO: Need to add MUX settings for OMAP 2430 SDP
|
||||
*/
|
||||
}
|
||||
|
||||
static void omap2_mcbsp_request(unsigned int id)
|
||||
{
|
||||
if (cpu_is_omap2420() && (id == OMAP_MCBSP2))
|
||||
omap2_mcbsp2_mux_setup();
|
||||
}
|
||||
|
||||
static struct omap_mcbsp_ops omap2_mcbsp_ops = {
|
||||
.request = omap2_mcbsp_request,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP2420
|
||||
static struct omap_mcbsp_platform_data omap2420_mcbsp_pdata[] = {
|
||||
|
@ -55,7 +32,6 @@ static struct omap_mcbsp_platform_data omap2420_mcbsp_pdata[] = {
|
|||
.dma_tx_sync = OMAP24XX_DMA_MCBSP1_TX,
|
||||
.rx_irq = INT_24XX_MCBSP1_IRQ_RX,
|
||||
.tx_irq = INT_24XX_MCBSP1_IRQ_TX,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
},
|
||||
{
|
||||
.phys_base = OMAP24XX_MCBSP2_BASE,
|
||||
|
@ -63,7 +39,6 @@ static struct omap_mcbsp_platform_data omap2420_mcbsp_pdata[] = {
|
|||
.dma_tx_sync = OMAP24XX_DMA_MCBSP2_TX,
|
||||
.rx_irq = INT_24XX_MCBSP2_IRQ_RX,
|
||||
.tx_irq = INT_24XX_MCBSP2_IRQ_TX,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
},
|
||||
};
|
||||
#define OMAP2420_MCBSP_PDATA_SZ ARRAY_SIZE(omap2420_mcbsp_pdata)
|
||||
|
@ -82,7 +57,6 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
|
|||
.dma_tx_sync = OMAP24XX_DMA_MCBSP1_TX,
|
||||
.rx_irq = INT_24XX_MCBSP1_IRQ_RX,
|
||||
.tx_irq = INT_24XX_MCBSP1_IRQ_TX,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
},
|
||||
{
|
||||
.phys_base = OMAP24XX_MCBSP2_BASE,
|
||||
|
@ -90,7 +64,6 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
|
|||
.dma_tx_sync = OMAP24XX_DMA_MCBSP2_TX,
|
||||
.rx_irq = INT_24XX_MCBSP2_IRQ_RX,
|
||||
.tx_irq = INT_24XX_MCBSP2_IRQ_TX,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
},
|
||||
{
|
||||
.phys_base = OMAP2430_MCBSP3_BASE,
|
||||
|
@ -98,7 +71,6 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
|
|||
.dma_tx_sync = OMAP24XX_DMA_MCBSP3_TX,
|
||||
.rx_irq = INT_24XX_MCBSP3_IRQ_RX,
|
||||
.tx_irq = INT_24XX_MCBSP3_IRQ_TX,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
},
|
||||
{
|
||||
.phys_base = OMAP2430_MCBSP4_BASE,
|
||||
|
@ -106,7 +78,6 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
|
|||
.dma_tx_sync = OMAP24XX_DMA_MCBSP4_TX,
|
||||
.rx_irq = INT_24XX_MCBSP4_IRQ_RX,
|
||||
.tx_irq = INT_24XX_MCBSP4_IRQ_TX,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
},
|
||||
{
|
||||
.phys_base = OMAP2430_MCBSP5_BASE,
|
||||
|
@ -114,7 +85,6 @@ static struct omap_mcbsp_platform_data omap2430_mcbsp_pdata[] = {
|
|||
.dma_tx_sync = OMAP24XX_DMA_MCBSP5_TX,
|
||||
.rx_irq = INT_24XX_MCBSP5_IRQ_RX,
|
||||
.tx_irq = INT_24XX_MCBSP5_IRQ_TX,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
},
|
||||
};
|
||||
#define OMAP2430_MCBSP_PDATA_SZ ARRAY_SIZE(omap2430_mcbsp_pdata)
|
||||
|
@ -133,7 +103,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
|
|||
.dma_tx_sync = OMAP24XX_DMA_MCBSP1_TX,
|
||||
.rx_irq = INT_24XX_MCBSP1_IRQ_RX,
|
||||
.tx_irq = INT_24XX_MCBSP1_IRQ_TX,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
.buffer_size = 0x80, /* The FIFO has 128 locations */
|
||||
},
|
||||
{
|
||||
|
@ -143,7 +112,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
|
|||
.dma_tx_sync = OMAP24XX_DMA_MCBSP2_TX,
|
||||
.rx_irq = INT_24XX_MCBSP2_IRQ_RX,
|
||||
.tx_irq = INT_24XX_MCBSP2_IRQ_TX,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
.buffer_size = 0x500, /* The FIFO has 1024 + 256 locations */
|
||||
},
|
||||
{
|
||||
|
@ -153,7 +121,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
|
|||
.dma_tx_sync = OMAP24XX_DMA_MCBSP3_TX,
|
||||
.rx_irq = INT_24XX_MCBSP3_IRQ_RX,
|
||||
.tx_irq = INT_24XX_MCBSP3_IRQ_TX,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
.buffer_size = 0x80, /* The FIFO has 128 locations */
|
||||
},
|
||||
{
|
||||
|
@ -162,7 +129,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
|
|||
.dma_tx_sync = OMAP24XX_DMA_MCBSP4_TX,
|
||||
.rx_irq = INT_24XX_MCBSP4_IRQ_RX,
|
||||
.tx_irq = INT_24XX_MCBSP4_IRQ_TX,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
.buffer_size = 0x80, /* The FIFO has 128 locations */
|
||||
},
|
||||
{
|
||||
|
@ -171,7 +137,6 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
|
|||
.dma_tx_sync = OMAP24XX_DMA_MCBSP5_TX,
|
||||
.rx_irq = INT_24XX_MCBSP5_IRQ_RX,
|
||||
.tx_irq = INT_24XX_MCBSP5_IRQ_TX,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
.buffer_size = 0x80, /* The FIFO has 128 locations */
|
||||
},
|
||||
};
|
||||
|
@ -189,28 +154,24 @@ static struct omap_mcbsp_platform_data omap44xx_mcbsp_pdata[] = {
|
|||
.dma_rx_sync = OMAP44XX_DMA_MCBSP1_RX,
|
||||
.dma_tx_sync = OMAP44XX_DMA_MCBSP1_TX,
|
||||
.tx_irq = OMAP44XX_IRQ_MCBSP1,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
},
|
||||
{
|
||||
.phys_base = OMAP44XX_MCBSP2_BASE,
|
||||
.dma_rx_sync = OMAP44XX_DMA_MCBSP2_RX,
|
||||
.dma_tx_sync = OMAP44XX_DMA_MCBSP2_TX,
|
||||
.tx_irq = OMAP44XX_IRQ_MCBSP2,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
},
|
||||
{
|
||||
.phys_base = OMAP44XX_MCBSP3_BASE,
|
||||
.dma_rx_sync = OMAP44XX_DMA_MCBSP3_RX,
|
||||
.dma_tx_sync = OMAP44XX_DMA_MCBSP3_TX,
|
||||
.tx_irq = OMAP44XX_IRQ_MCBSP3,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
},
|
||||
{
|
||||
.phys_base = OMAP44XX_MCBSP4_BASE,
|
||||
.dma_rx_sync = OMAP44XX_DMA_MCBSP4_RX,
|
||||
.dma_tx_sync = OMAP44XX_DMA_MCBSP4_TX,
|
||||
.tx_irq = OMAP44XX_IRQ_MCBSP4,
|
||||
.ops = &omap2_mcbsp_ops,
|
||||
},
|
||||
};
|
||||
#define OMAP44XX_MCBSP_PDATA_SZ ARRAY_SIZE(omap44xx_mcbsp_pdata)
|
||||
|
|
|
@ -87,7 +87,7 @@ static char *omap_mux_options;
|
|||
int __init omap_mux_init_gpio(int gpio, int val)
|
||||
{
|
||||
struct omap_mux_entry *e;
|
||||
struct omap_mux *gpio_mux;
|
||||
struct omap_mux *gpio_mux = NULL;
|
||||
u16 old_mode;
|
||||
u16 mux_mode;
|
||||
int found = 0;
|
||||
|
|
|
@ -2084,7 +2084,7 @@ void omap2_gpio_prepare_for_idle(int power_state)
|
|||
|
||||
for (i = min; i < gpio_bank_count; i++) {
|
||||
struct gpio_bank *bank = &gpio_bank[i];
|
||||
u32 l1, l2;
|
||||
u32 l1 = 0, l2 = 0;
|
||||
int j;
|
||||
|
||||
for (j = 0; j < hweight_long(bank->dbck_enable_mask); j++)
|
||||
|
@ -2152,7 +2152,7 @@ void omap2_gpio_resume_after_idle(void)
|
|||
min = 1;
|
||||
for (i = min; i < gpio_bank_count; i++) {
|
||||
struct gpio_bank *bank = &gpio_bank[i];
|
||||
u32 l, gen, gen0, gen1;
|
||||
u32 l = 0, gen, gen0, gen1;
|
||||
int j;
|
||||
|
||||
for (j = 0; j < hweight_long(bank->dbck_enable_mask); j++)
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
* 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
#ifndef __ASM__ARCH_OMAP_I2C_H
|
||||
#define __ASM__ARCH_OMAP_I2C_H
|
||||
|
||||
#include <linux/i2c.h>
|
||||
|
||||
|
@ -36,3 +38,5 @@ static inline int omap_register_i2c_bus(int bus_id, u32 clkrate,
|
|||
|
||||
void __init omap1_i2c_mux_pins(int bus_id);
|
||||
void __init omap2_i2c_mux_pins(int bus_id);
|
||||
|
||||
#endif /* __ASM__ARCH_OMAP_I2C_H */
|
||||
|
|
|
@ -73,10 +73,9 @@ struct omap_mmc_platform_data {
|
|||
|
||||
struct omap_mmc_slot_data {
|
||||
|
||||
/* 4 wire signaling is optional, and is used for SD/SDIO/HSMMC;
|
||||
* 8 wire signaling is also optional, and is used with HSMMC
|
||||
*/
|
||||
u8 wires;
|
||||
/* 4/8 wires and any additional host capabilities
|
||||
* need to OR'd all capabilities (ref. linux/mmc/host.h) */
|
||||
u32 caps;
|
||||
|
||||
/*
|
||||
* nomux means "standard" muxing is wrong on this board, and
|
||||
|
|
|
@ -105,7 +105,7 @@ static inline void omap1_usb_init(struct omap_usb_config *pdata)
|
|||
#if defined(CONFIG_ARCH_OMAP_OTG) || defined(CONFIG_ARCH_OMAP_OTG_MODULE)
|
||||
void omap2_usbfs_init(struct omap_usb_config *pdata);
|
||||
#else
|
||||
static inline omap2_usbfs_init(struct omap_usb_config *pdata)
|
||||
static inline void omap2_usbfs_init(struct omap_usb_config *pdata)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -878,7 +878,7 @@ EXPORT_SYMBOL(omap_mcbsp_free);
|
|||
void omap_mcbsp_start(unsigned int id, int tx, int rx)
|
||||
{
|
||||
struct omap_mcbsp *mcbsp;
|
||||
int idle;
|
||||
int enable_srg = 0;
|
||||
u16 w;
|
||||
|
||||
if (!omap_mcbsp_check_valid_id(id)) {
|
||||
|
@ -893,10 +893,13 @@ void omap_mcbsp_start(unsigned int id, int tx, int rx)
|
|||
mcbsp->rx_word_length = (MCBSP_READ_CACHE(mcbsp, RCR1) >> 5) & 0x7;
|
||||
mcbsp->tx_word_length = (MCBSP_READ_CACHE(mcbsp, XCR1) >> 5) & 0x7;
|
||||
|
||||
idle = !((MCBSP_READ_CACHE(mcbsp, SPCR2) |
|
||||
/* Only enable SRG, if McBSP is master */
|
||||
w = MCBSP_READ_CACHE(mcbsp, PCR0);
|
||||
if (w & (FSXM | FSRM | CLKXM | CLKRM))
|
||||
enable_srg = !((MCBSP_READ_CACHE(mcbsp, SPCR2) |
|
||||
MCBSP_READ_CACHE(mcbsp, SPCR1)) & 1);
|
||||
|
||||
if (idle) {
|
||||
if (enable_srg) {
|
||||
/* Start the sample generator */
|
||||
w = MCBSP_READ_CACHE(mcbsp, SPCR2);
|
||||
MCBSP_WRITE(mcbsp, SPCR2, w | (1 << 6));
|
||||
|
@ -919,7 +922,7 @@ void omap_mcbsp_start(unsigned int id, int tx, int rx)
|
|||
*/
|
||||
udelay(500);
|
||||
|
||||
if (idle) {
|
||||
if (enable_srg) {
|
||||
/* Start frame sync */
|
||||
w = MCBSP_READ_CACHE(mcbsp, SPCR2);
|
||||
MCBSP_WRITE(mcbsp, SPCR2, w | (1 << 7));
|
||||
|
|
|
@ -1317,7 +1317,7 @@ static int __init mmc_omap_new_slot(struct mmc_omap_host *host, int id)
|
|||
host->slots[id] = slot;
|
||||
|
||||
mmc->caps = 0;
|
||||
if (host->pdata->slots[id].wires >= 4)
|
||||
if (host->pdata->slots[id].caps & MMC_CAP_8_BIT_DATA)
|
||||
mmc->caps |= MMC_CAP_4_BIT_DATA;
|
||||
|
||||
mmc->ops = &mmc_omap_ops;
|
||||
|
|
|
@ -2116,23 +2116,9 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev)
|
|||
mmc->caps |= MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
|
||||
MMC_CAP_WAIT_WHILE_BUSY | MMC_CAP_ERASE;
|
||||
|
||||
switch (mmc_slot(host).wires) {
|
||||
case 8:
|
||||
mmc->caps |= MMC_CAP_8_BIT_DATA;
|
||||
/* Fall through */
|
||||
case 4:
|
||||
mmc->caps |= mmc_slot(host).caps;
|
||||
if (mmc->caps & MMC_CAP_8_BIT_DATA)
|
||||
mmc->caps |= MMC_CAP_4_BIT_DATA;
|
||||
break;
|
||||
case 1:
|
||||
/* Nothing to crib here */
|
||||
case 0:
|
||||
/* Assuming nothing was given by board, Core use's 1-Bit */
|
||||
break;
|
||||
default:
|
||||
/* Completely unexpected.. Core goes with 1-Bit Width */
|
||||
dev_crit(mmc_dev(host->mmc), "Invalid width %d\n used!"
|
||||
"using 1 instead\n", mmc_slot(host).wires);
|
||||
}
|
||||
|
||||
if (mmc_slot(host).nonremovable)
|
||||
mmc->caps |= MMC_CAP_NONREMOVABLE;
|
||||
|
|
Загрузка…
Ссылка в новой задаче