Loading arch/arm/mach-omap1/board-h2-mmc.c +32 −57 Original line number Diff line number Diff line Loading @@ -12,90 +12,68 @@ * published by the Free Software Foundation. */ #include <linux/platform_device.h> #include <linux/i2c/tps65010.h> #include <mach/mmc.h> #include <mach/gpio.h> #ifdef CONFIG_MMC_OMAP static int slot_cover_open; static struct device *mmc_device; #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) static int h2_mmc_set_power(struct device *dev, int slot, int power_on, static int mmc_set_power(struct device *dev, int slot, int power_on, int vdd) { #ifdef CONFIG_MMC_DEBUG dev_dbg(dev, "Set slot %d power: %s (vdd %d)\n", slot + 1, power_on ? "on" : "off", vdd); #endif if (slot != 0) { dev_err(dev, "No such slot %d\n", slot + 1); return -ENODEV; } return 0; } static int h2_mmc_set_bus_mode(struct device *dev, int slot, int bus_mode) { #ifdef CONFIG_MMC_DEBUG dev_dbg(dev, "Set slot %d bus_mode %s\n", slot + 1, bus_mode == MMC_BUSMODE_OPENDRAIN ? "open-drain" : "push-pull"); #endif if (slot != 0) { dev_err(dev, "No such slot %d\n", slot + 1); return -ENODEV; } if (power_on) gpio_direction_output(H2_TPS_GPIO_MMC_PWR_EN, 1); else gpio_direction_output(H2_TPS_GPIO_MMC_PWR_EN, 0); return 0; } static int h2_mmc_get_cover_state(struct device *dev, int slot) { BUG_ON(slot != 0); return slot_cover_open; } void h2_mmc_slot_cover_handler(void *arg, int state) static int mmc_late_init(struct device *dev) { if (mmc_device == NULL) return; int ret; slot_cover_open = state; omap_mmc_notify_cover_event(mmc_device, 0, state); } static int h2_mmc_late_init(struct device *dev) { int ret = 0; ret = gpio_request(H2_TPS_GPIO_MMC_PWR_EN, "MMC power"); if (ret < 0) return ret; mmc_device = dev; gpio_direction_output(H2_TPS_GPIO_MMC_PWR_EN, 0); return ret; } static void h2_mmc_cleanup(struct device *dev) static void mmc_shutdown(struct device *dev) { gpio_free(H2_TPS_GPIO_MMC_PWR_EN); } static struct omap_mmc_platform_data h2_mmc_data = { /* * H2 could use the following functions tested: * - mmc_get_cover_state that uses OMAP_MPUIO(1) * - mmc_get_wp that uses OMAP_MPUIO(3) */ static struct omap_mmc_platform_data mmc1_data = { .nr_slots = 1, .switch_slot = NULL, .init = h2_mmc_late_init, .cleanup = h2_mmc_cleanup, .init = mmc_late_init, .shutdown = mmc_shutdown, .dma_mask = 0xffffffff, .slots[0] = { .set_power = h2_mmc_set_power, .set_bus_mode = h2_mmc_set_bus_mode, .get_ro = NULL, .get_cover_state = h2_mmc_get_cover_state, .set_power = mmc_set_power, .ocr_mask = MMC_VDD_28_29 | MMC_VDD_30_31 | MMC_VDD_32_33 | MMC_VDD_33_34, .name = "mmcblk", }, }; static struct omap_mmc_platform_data *mmc_data[OMAP16XX_NR_MMC]; void __init h2_mmc_init(void) { omap_set_mmc_info(1, &h2_mmc_data); mmc_data[0] = &mmc1_data; omap1_init_mmc(mmc_data, OMAP16XX_NR_MMC); } #else Loading @@ -104,7 +82,4 @@ void __init h2_mmc_init(void) { } void h2_mmc_slot_cover_handler(void *arg, int state) { } #endif arch/arm/mach-omap1/board-h2.c +15 −10 Original line number Diff line number Diff line Loading @@ -345,10 +345,25 @@ static void __init h2_init_smc91x(void) } } static int tps_setup(struct i2c_client *client, void *context) { tps65010_config_vregs1(TPS_LDO2_ENABLE | TPS_VLDO2_3_0V | TPS_LDO1_ENABLE | TPS_VLDO1_3_0V); return 0; } static struct tps65010_board tps_board = { .base = H2_TPS_GPIO_BASE, .outmask = 0x0f, .setup = tps_setup, }; static struct i2c_board_info __initdata h2_i2c_board_info[] = { { I2C_BOARD_INFO("tps65010", 0x48), .irq = OMAP_GPIO_IRQ(58), .platform_data = &tps_board, }, { I2C_BOARD_INFO("isp1301_omap", 0x2d), .irq = OMAP_GPIO_IRQ(2), Loading Loading @@ -378,15 +393,6 @@ static struct omap_usb_config h2_usb_config __initdata = { .pins[1] = 3, }; static struct omap_mmc_config h2_mmc_config __initdata = { .mmc[0] = { .enabled = 1, .wire4 = 1, }, }; extern struct omap_mmc_platform_data h2_mmc_data; static struct omap_uart_config h2_uart_config __initdata = { .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)), }; Loading @@ -397,7 +403,6 @@ static struct omap_lcd_config h2_lcd_config __initdata = { static struct omap_board_config_kernel h2_config[] __initdata = { { OMAP_TAG_USB, &h2_usb_config }, { OMAP_TAG_MMC, &h2_mmc_config }, { OMAP_TAG_UART, &h2_uart_config }, { OMAP_TAG_LCD, &h2_lcd_config }, }; Loading arch/arm/mach-omap1/board-h3-mmc.c +29 −71 Original line number Diff line number Diff line Loading @@ -12,94 +12,55 @@ * published by the Free Software Foundation. */ #include <linux/platform_device.h> #include <linux/i2c/tps65010.h> #include <mach/mmc.h> #include <mach/gpio.h> #ifdef CONFIG_MMC_OMAP static int slot_cover_open; static struct device *mmc_device; #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) static int h3_mmc_set_power(struct device *dev, int slot, int power_on, static int mmc_set_power(struct device *dev, int slot, int power_on, int vdd) { #ifdef CONFIG_MMC_DEBUG dev_dbg(dev, "Set slot %d power: %s (vdd %d)\n", slot + 1, power_on ? "on" : "off", vdd); #endif if (slot != 0) { dev_err(dev, "No such slot %d\n", slot + 1); return -ENODEV; } if (power_on) gpio_direction_output(H3_TPS_GPIO_MMC_PWR_EN, 1); else gpio_direction_output(H3_TPS_GPIO_MMC_PWR_EN, 0); return 0; } static int h3_mmc_set_bus_mode(struct device *dev, int slot, int bus_mode) { int ret = 0; #ifdef CONFIG_MMC_DEBUG dev_dbg(dev, "Set slot %d bus_mode %s\n", slot + 1, bus_mode == MMC_BUSMODE_OPENDRAIN ? "open-drain" : "push-pull"); #endif if (slot != 0) { dev_err(dev, "No such slot %d\n", slot + 1); return -ENODEV; } /* Treated on upper level */ return bus_mode; } static int h3_mmc_get_cover_state(struct device *dev, int slot) { BUG_ON(slot != 0); return slot_cover_open; } void h3_mmc_slot_cover_handler(void *arg, int state) { if (mmc_device == NULL) return; slot_cover_open = state; omap_mmc_notify_cover_event(mmc_device, 0, state); } static int h3_mmc_late_init(struct device *dev) { int ret = 0; mmc_device = dev; return ret; } static void h3_mmc_cleanup(struct device *dev) { } static struct omap_mmc_platform_data h3_mmc_data = { /* * H3 could use the following functions tested: * - mmc_get_cover_state that uses OMAP_MPUIO(1) * - mmc_get_wp that maybe uses OMAP_MPUIO(3) */ static struct omap_mmc_platform_data mmc1_data = { .nr_slots = 1, .switch_slot = NULL, .init = h3_mmc_late_init, .cleanup = h3_mmc_cleanup, .dma_mask = 0xffffffff, .slots[0] = { .set_power = h3_mmc_set_power, .set_bus_mode = h3_mmc_set_bus_mode, .get_ro = NULL, .get_cover_state = h3_mmc_get_cover_state, .set_power = mmc_set_power, .ocr_mask = MMC_VDD_28_29 | MMC_VDD_30_31 | MMC_VDD_32_33 | MMC_VDD_33_34, .name = "mmcblk", }, }; static struct omap_mmc_platform_data *mmc_data[OMAP16XX_NR_MMC]; void __init h3_mmc_init(void) { omap_set_mmc_info(1, &h3_mmc_data); int ret; ret = gpio_request(H3_TPS_GPIO_MMC_PWR_EN, "MMC power"); if (ret < 0) return; gpio_direction_output(H3_TPS_GPIO_MMC_PWR_EN, 0); mmc_data[0] = &mmc1_data; omap1_init_mmc(mmc_data, OMAP16XX_NR_MMC); } #else Loading @@ -108,7 +69,4 @@ void __init h3_mmc_init(void) { } void h3_mmc_slot_cover_handler(void *arg, int state) { } #endif arch/arm/mach-omap1/board-h3.c +0 −10 Original line number Diff line number Diff line Loading @@ -447,15 +447,6 @@ static struct omap_usb_config h3_usb_config __initdata = { .pins[1] = 3, }; static struct omap_mmc_config h3_mmc_config __initdata = { .mmc[0] = { .enabled = 1, .wire4 = 1, }, }; extern struct omap_mmc_platform_data h3_mmc_data; static struct omap_uart_config h3_uart_config __initdata = { .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)), }; Loading @@ -466,7 +457,6 @@ static struct omap_lcd_config h3_lcd_config __initdata = { static struct omap_board_config_kernel h3_config[] __initdata = { { OMAP_TAG_USB, &h3_usb_config }, { OMAP_TAG_MMC, &h3_mmc_config }, { OMAP_TAG_UART, &h3_uart_config }, { OMAP_TAG_LCD, &h3_lcd_config }, }; Loading arch/arm/mach-omap1/board-innovator.c +42 −8 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ #include <mach/common.h> #include <mach/mcbsp.h> #include <mach/omap-alsa.h> #include <mach/mmc.h> static int innovator_keymap[] = { KEY(0, 0, KEY_F1), Loading Loading @@ -360,16 +361,49 @@ static struct omap_lcd_config innovator1610_lcd_config __initdata = { }; #endif static struct omap_mmc_config innovator_mmc_config __initdata = { .mmc [0] = { .enabled = 1, .wire4 = 1, .wp_pin = OMAP_MPUIO(3), .power_pin = -1, /* FPGA F3 UIO42 */ .switch_pin = -1, /* FPGA F4 UIO43 */ #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) static int mmc_set_power(struct device *dev, int slot, int power_on, int vdd) { if (power_on) fpga_write(fpga_read(OMAP1510_FPGA_POWER) | (1 << 3), OMAP1510_FPGA_POWER); else fpga_write(fpga_read(OMAP1510_FPGA_POWER) & ~(1 << 3), OMAP1510_FPGA_POWER); return 0; } /* * Innovator could use the following functions tested: * - mmc_get_wp that uses OMAP_MPUIO(3) * - mmc_get_cover_state that uses FPGA F4 UIO43 */ static struct omap_mmc_platform_data mmc1_data = { .nr_slots = 1, .slots[0] = { .set_power = mmc_set_power, .wires = 4, .name = "mmcblk", }, }; static struct omap_mmc_platform_data *mmc_data[OMAP16XX_NR_MMC]; void __init innovator_mmc_init(void) { mmc_data[0] = &mmc1_data; omap1_init_mmc(mmc_data, OMAP15XX_NR_MMC); } #else static inline void innovator_mmc_init(void) { } #endif static struct omap_uart_config innovator_uart_config __initdata = { .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)), }; Loading @@ -377,7 +411,6 @@ static struct omap_uart_config innovator_uart_config __initdata = { static struct omap_board_config_kernel innovator_config[] = { { OMAP_TAG_USB, NULL }, { OMAP_TAG_LCD, NULL }, { OMAP_TAG_MMC, &innovator_mmc_config }, { OMAP_TAG_UART, &innovator_uart_config }, }; Loading Loading @@ -412,6 +445,7 @@ static void __init innovator_init(void) omap_board_config_size = ARRAY_SIZE(innovator_config); omap_serial_init(); omap_register_i2c_bus(1, 100, NULL, 0); innovator_mmc_init(); } static void __init innovator_map_io(void) Loading Loading
arch/arm/mach-omap1/board-h2-mmc.c +32 −57 Original line number Diff line number Diff line Loading @@ -12,90 +12,68 @@ * published by the Free Software Foundation. */ #include <linux/platform_device.h> #include <linux/i2c/tps65010.h> #include <mach/mmc.h> #include <mach/gpio.h> #ifdef CONFIG_MMC_OMAP static int slot_cover_open; static struct device *mmc_device; #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) static int h2_mmc_set_power(struct device *dev, int slot, int power_on, static int mmc_set_power(struct device *dev, int slot, int power_on, int vdd) { #ifdef CONFIG_MMC_DEBUG dev_dbg(dev, "Set slot %d power: %s (vdd %d)\n", slot + 1, power_on ? "on" : "off", vdd); #endif if (slot != 0) { dev_err(dev, "No such slot %d\n", slot + 1); return -ENODEV; } return 0; } static int h2_mmc_set_bus_mode(struct device *dev, int slot, int bus_mode) { #ifdef CONFIG_MMC_DEBUG dev_dbg(dev, "Set slot %d bus_mode %s\n", slot + 1, bus_mode == MMC_BUSMODE_OPENDRAIN ? "open-drain" : "push-pull"); #endif if (slot != 0) { dev_err(dev, "No such slot %d\n", slot + 1); return -ENODEV; } if (power_on) gpio_direction_output(H2_TPS_GPIO_MMC_PWR_EN, 1); else gpio_direction_output(H2_TPS_GPIO_MMC_PWR_EN, 0); return 0; } static int h2_mmc_get_cover_state(struct device *dev, int slot) { BUG_ON(slot != 0); return slot_cover_open; } void h2_mmc_slot_cover_handler(void *arg, int state) static int mmc_late_init(struct device *dev) { if (mmc_device == NULL) return; int ret; slot_cover_open = state; omap_mmc_notify_cover_event(mmc_device, 0, state); } static int h2_mmc_late_init(struct device *dev) { int ret = 0; ret = gpio_request(H2_TPS_GPIO_MMC_PWR_EN, "MMC power"); if (ret < 0) return ret; mmc_device = dev; gpio_direction_output(H2_TPS_GPIO_MMC_PWR_EN, 0); return ret; } static void h2_mmc_cleanup(struct device *dev) static void mmc_shutdown(struct device *dev) { gpio_free(H2_TPS_GPIO_MMC_PWR_EN); } static struct omap_mmc_platform_data h2_mmc_data = { /* * H2 could use the following functions tested: * - mmc_get_cover_state that uses OMAP_MPUIO(1) * - mmc_get_wp that uses OMAP_MPUIO(3) */ static struct omap_mmc_platform_data mmc1_data = { .nr_slots = 1, .switch_slot = NULL, .init = h2_mmc_late_init, .cleanup = h2_mmc_cleanup, .init = mmc_late_init, .shutdown = mmc_shutdown, .dma_mask = 0xffffffff, .slots[0] = { .set_power = h2_mmc_set_power, .set_bus_mode = h2_mmc_set_bus_mode, .get_ro = NULL, .get_cover_state = h2_mmc_get_cover_state, .set_power = mmc_set_power, .ocr_mask = MMC_VDD_28_29 | MMC_VDD_30_31 | MMC_VDD_32_33 | MMC_VDD_33_34, .name = "mmcblk", }, }; static struct omap_mmc_platform_data *mmc_data[OMAP16XX_NR_MMC]; void __init h2_mmc_init(void) { omap_set_mmc_info(1, &h2_mmc_data); mmc_data[0] = &mmc1_data; omap1_init_mmc(mmc_data, OMAP16XX_NR_MMC); } #else Loading @@ -104,7 +82,4 @@ void __init h2_mmc_init(void) { } void h2_mmc_slot_cover_handler(void *arg, int state) { } #endif
arch/arm/mach-omap1/board-h2.c +15 −10 Original line number Diff line number Diff line Loading @@ -345,10 +345,25 @@ static void __init h2_init_smc91x(void) } } static int tps_setup(struct i2c_client *client, void *context) { tps65010_config_vregs1(TPS_LDO2_ENABLE | TPS_VLDO2_3_0V | TPS_LDO1_ENABLE | TPS_VLDO1_3_0V); return 0; } static struct tps65010_board tps_board = { .base = H2_TPS_GPIO_BASE, .outmask = 0x0f, .setup = tps_setup, }; static struct i2c_board_info __initdata h2_i2c_board_info[] = { { I2C_BOARD_INFO("tps65010", 0x48), .irq = OMAP_GPIO_IRQ(58), .platform_data = &tps_board, }, { I2C_BOARD_INFO("isp1301_omap", 0x2d), .irq = OMAP_GPIO_IRQ(2), Loading Loading @@ -378,15 +393,6 @@ static struct omap_usb_config h2_usb_config __initdata = { .pins[1] = 3, }; static struct omap_mmc_config h2_mmc_config __initdata = { .mmc[0] = { .enabled = 1, .wire4 = 1, }, }; extern struct omap_mmc_platform_data h2_mmc_data; static struct omap_uart_config h2_uart_config __initdata = { .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)), }; Loading @@ -397,7 +403,6 @@ static struct omap_lcd_config h2_lcd_config __initdata = { static struct omap_board_config_kernel h2_config[] __initdata = { { OMAP_TAG_USB, &h2_usb_config }, { OMAP_TAG_MMC, &h2_mmc_config }, { OMAP_TAG_UART, &h2_uart_config }, { OMAP_TAG_LCD, &h2_lcd_config }, }; Loading
arch/arm/mach-omap1/board-h3-mmc.c +29 −71 Original line number Diff line number Diff line Loading @@ -12,94 +12,55 @@ * published by the Free Software Foundation. */ #include <linux/platform_device.h> #include <linux/i2c/tps65010.h> #include <mach/mmc.h> #include <mach/gpio.h> #ifdef CONFIG_MMC_OMAP static int slot_cover_open; static struct device *mmc_device; #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) static int h3_mmc_set_power(struct device *dev, int slot, int power_on, static int mmc_set_power(struct device *dev, int slot, int power_on, int vdd) { #ifdef CONFIG_MMC_DEBUG dev_dbg(dev, "Set slot %d power: %s (vdd %d)\n", slot + 1, power_on ? "on" : "off", vdd); #endif if (slot != 0) { dev_err(dev, "No such slot %d\n", slot + 1); return -ENODEV; } if (power_on) gpio_direction_output(H3_TPS_GPIO_MMC_PWR_EN, 1); else gpio_direction_output(H3_TPS_GPIO_MMC_PWR_EN, 0); return 0; } static int h3_mmc_set_bus_mode(struct device *dev, int slot, int bus_mode) { int ret = 0; #ifdef CONFIG_MMC_DEBUG dev_dbg(dev, "Set slot %d bus_mode %s\n", slot + 1, bus_mode == MMC_BUSMODE_OPENDRAIN ? "open-drain" : "push-pull"); #endif if (slot != 0) { dev_err(dev, "No such slot %d\n", slot + 1); return -ENODEV; } /* Treated on upper level */ return bus_mode; } static int h3_mmc_get_cover_state(struct device *dev, int slot) { BUG_ON(slot != 0); return slot_cover_open; } void h3_mmc_slot_cover_handler(void *arg, int state) { if (mmc_device == NULL) return; slot_cover_open = state; omap_mmc_notify_cover_event(mmc_device, 0, state); } static int h3_mmc_late_init(struct device *dev) { int ret = 0; mmc_device = dev; return ret; } static void h3_mmc_cleanup(struct device *dev) { } static struct omap_mmc_platform_data h3_mmc_data = { /* * H3 could use the following functions tested: * - mmc_get_cover_state that uses OMAP_MPUIO(1) * - mmc_get_wp that maybe uses OMAP_MPUIO(3) */ static struct omap_mmc_platform_data mmc1_data = { .nr_slots = 1, .switch_slot = NULL, .init = h3_mmc_late_init, .cleanup = h3_mmc_cleanup, .dma_mask = 0xffffffff, .slots[0] = { .set_power = h3_mmc_set_power, .set_bus_mode = h3_mmc_set_bus_mode, .get_ro = NULL, .get_cover_state = h3_mmc_get_cover_state, .set_power = mmc_set_power, .ocr_mask = MMC_VDD_28_29 | MMC_VDD_30_31 | MMC_VDD_32_33 | MMC_VDD_33_34, .name = "mmcblk", }, }; static struct omap_mmc_platform_data *mmc_data[OMAP16XX_NR_MMC]; void __init h3_mmc_init(void) { omap_set_mmc_info(1, &h3_mmc_data); int ret; ret = gpio_request(H3_TPS_GPIO_MMC_PWR_EN, "MMC power"); if (ret < 0) return; gpio_direction_output(H3_TPS_GPIO_MMC_PWR_EN, 0); mmc_data[0] = &mmc1_data; omap1_init_mmc(mmc_data, OMAP16XX_NR_MMC); } #else Loading @@ -108,7 +69,4 @@ void __init h3_mmc_init(void) { } void h3_mmc_slot_cover_handler(void *arg, int state) { } #endif
arch/arm/mach-omap1/board-h3.c +0 −10 Original line number Diff line number Diff line Loading @@ -447,15 +447,6 @@ static struct omap_usb_config h3_usb_config __initdata = { .pins[1] = 3, }; static struct omap_mmc_config h3_mmc_config __initdata = { .mmc[0] = { .enabled = 1, .wire4 = 1, }, }; extern struct omap_mmc_platform_data h3_mmc_data; static struct omap_uart_config h3_uart_config __initdata = { .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)), }; Loading @@ -466,7 +457,6 @@ static struct omap_lcd_config h3_lcd_config __initdata = { static struct omap_board_config_kernel h3_config[] __initdata = { { OMAP_TAG_USB, &h3_usb_config }, { OMAP_TAG_MMC, &h3_mmc_config }, { OMAP_TAG_UART, &h3_uart_config }, { OMAP_TAG_LCD, &h3_lcd_config }, }; Loading
arch/arm/mach-omap1/board-innovator.c +42 −8 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ #include <mach/common.h> #include <mach/mcbsp.h> #include <mach/omap-alsa.h> #include <mach/mmc.h> static int innovator_keymap[] = { KEY(0, 0, KEY_F1), Loading Loading @@ -360,16 +361,49 @@ static struct omap_lcd_config innovator1610_lcd_config __initdata = { }; #endif static struct omap_mmc_config innovator_mmc_config __initdata = { .mmc [0] = { .enabled = 1, .wire4 = 1, .wp_pin = OMAP_MPUIO(3), .power_pin = -1, /* FPGA F3 UIO42 */ .switch_pin = -1, /* FPGA F4 UIO43 */ #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) static int mmc_set_power(struct device *dev, int slot, int power_on, int vdd) { if (power_on) fpga_write(fpga_read(OMAP1510_FPGA_POWER) | (1 << 3), OMAP1510_FPGA_POWER); else fpga_write(fpga_read(OMAP1510_FPGA_POWER) & ~(1 << 3), OMAP1510_FPGA_POWER); return 0; } /* * Innovator could use the following functions tested: * - mmc_get_wp that uses OMAP_MPUIO(3) * - mmc_get_cover_state that uses FPGA F4 UIO43 */ static struct omap_mmc_platform_data mmc1_data = { .nr_slots = 1, .slots[0] = { .set_power = mmc_set_power, .wires = 4, .name = "mmcblk", }, }; static struct omap_mmc_platform_data *mmc_data[OMAP16XX_NR_MMC]; void __init innovator_mmc_init(void) { mmc_data[0] = &mmc1_data; omap1_init_mmc(mmc_data, OMAP15XX_NR_MMC); } #else static inline void innovator_mmc_init(void) { } #endif static struct omap_uart_config innovator_uart_config __initdata = { .enabled_uarts = ((1 << 0) | (1 << 1) | (1 << 2)), }; Loading @@ -377,7 +411,6 @@ static struct omap_uart_config innovator_uart_config __initdata = { static struct omap_board_config_kernel innovator_config[] = { { OMAP_TAG_USB, NULL }, { OMAP_TAG_LCD, NULL }, { OMAP_TAG_MMC, &innovator_mmc_config }, { OMAP_TAG_UART, &innovator_uart_config }, }; Loading Loading @@ -412,6 +445,7 @@ static void __init innovator_init(void) omap_board_config_size = ARRAY_SIZE(innovator_config); omap_serial_init(); omap_register_i2c_bus(1, 100, NULL, 0); innovator_mmc_init(); } static void __init innovator_map_io(void) Loading