Commit 46cddc01 authored by Tony Lindgren's avatar Tony Lindgren

Merge branch 'omap-for-v3.8/cleanup-headers-mmc' into omap-for-v3.8/cleanup-headers

Conflicts:
	arch/arm/mach-omap1/devices.c
	arch/arm/mach-omap2/omap_hwmod_33xx_data.c
	arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
	drivers/mmc/host/omap.c
parents 99f0b8d6 53db20d1
...@@ -13,12 +13,11 @@ ...@@ -13,12 +13,11 @@
*/ */
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/platform_data/gpio-omap.h>
#include <linux/i2c/tps65010.h> #include <linux/i2c/tps65010.h>
#include <plat/mmc.h>
#include "board-h2.h" #include "board-h2.h"
#include "mmc.h"
#if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE)
......
...@@ -16,9 +16,8 @@ ...@@ -16,9 +16,8 @@
#include <linux/i2c/tps65010.h> #include <linux/i2c/tps65010.h>
#include <plat/mmc.h>
#include "board-h3.h" #include "board-h3.h"
#include "mmc.h"
#if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE)
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <mach/omap7xx.h> #include <mach/omap7xx.h>
#include <plat/mmc.h> #include "mmc.h"
#include <mach/irqs.h> #include <mach/irqs.h>
#include <mach/usb.h> #include <mach/usb.h>
......
...@@ -36,13 +36,13 @@ ...@@ -36,13 +36,13 @@
#include <plat/fpga.h> #include <plat/fpga.h>
#include <plat/tc.h> #include <plat/tc.h>
#include <linux/platform_data/keypad-omap.h> #include <linux/platform_data/keypad-omap.h>
#include <plat/mmc.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/usb.h> #include <mach/usb.h>
#include "iomap.h" #include "iomap.h"
#include "common.h" #include "common.h"
#include "mmc.h"
/* At OMAP1610 Innovator the Ethernet is directly connected to CS1 */ /* At OMAP1610 Innovator the Ethernet is directly connected to CS1 */
#define INNOVATOR1610_ETHR_START 0x04000300 #define INNOVATOR1610_ETHR_START 0x04000300
......
...@@ -29,13 +29,13 @@ ...@@ -29,13 +29,13 @@
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <mach/mux.h> #include <mach/mux.h>
#include <plat/mmc.h>
#include <plat/clock.h> #include <plat/clock.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/usb.h> #include <mach/usb.h>
#include "common.h" #include "common.h"
#include "mmc.h"
#define ADS7846_PENDOWN_GPIO 15 #define ADS7846_PENDOWN_GPIO 15
......
...@@ -16,9 +16,10 @@ ...@@ -16,9 +16,10 @@
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <plat/mmc.h>
#include <mach/board-sx1.h> #include <mach/board-sx1.h>
#include "mmc.h"
#if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE)
static int mmc_set_power(struct device *dev, int slot, int power_on, static int mmc_set_power(struct device *dev, int slot, int power_on,
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
#include <plat/tc.h> #include <plat/tc.h>
#include <mach/mux.h> #include <mach/mux.h>
#include <plat/mmc.h>
#include <mach/omap7xx.h> #include <mach/omap7xx.h>
#include <mach/camera.h> #include <mach/camera.h>
...@@ -30,6 +29,7 @@ ...@@ -30,6 +29,7 @@
#include "common.h" #include "common.h"
#include "clock.h" #include "clock.h"
#include "dma.h" #include "dma.h"
#include "mmc.h"
#if defined(CONFIG_SND_SOC) || defined(CONFIG_SND_SOC_MODULE) #if defined(CONFIG_SND_SOC) || defined(CONFIG_SND_SOC_MODULE)
...@@ -175,6 +175,13 @@ static int __init omap_mmc_add(const char *name, int id, unsigned long base, ...@@ -175,6 +175,13 @@ static int __init omap_mmc_add(const char *name, int id, unsigned long base,
res[3].name = "tx"; res[3].name = "tx";
res[3].flags = IORESOURCE_DMA; res[3].flags = IORESOURCE_DMA;
if (cpu_is_omap7xx())
data->slots[0].features = MMC_OMAP7XX;
if (cpu_is_omap15xx())
data->slots[0].features = MMC_OMAP15XX;
if (cpu_is_omap16xx())
data->slots[0].features = MMC_OMAP16XX;
ret = platform_device_add_resources(pdev, res, ARRAY_SIZE(res)); ret = platform_device_add_resources(pdev, res, ARRAY_SIZE(res));
if (ret == 0) if (ret == 0)
ret = platform_device_add_data(pdev, data, sizeof(*data)); ret = platform_device_add_data(pdev, data, sizeof(*data));
......
#include <linux/mmc/host.h>
#include <linux/platform_data/mmc-omap.h>
#define OMAP15XX_NR_MMC 1
#define OMAP16XX_NR_MMC 2
#define OMAP1_MMC_SIZE 0x080
#define OMAP1_MMC1_BASE 0xfffb7800
#define OMAP1_MMC2_BASE 0xfffb7c00 /* omap16xx only */
#if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE)
void omap1_init_mmc(struct omap_mmc_platform_data **mmc_data,
int nr_controllers);
#else
static inline void omap1_init_mmc(struct omap_mmc_platform_data **mmc_data,
int nr_controllers)
{
}
#endif
...@@ -35,7 +35,6 @@ ...@@ -35,7 +35,6 @@
#include "common.h" #include "common.h"
#include <plat/usb.h> #include <plat/usb.h>
#include <plat/mmc.h>
#include "omap4-keypad.h" #include "omap4-keypad.h"
#include <video/omapdss.h> #include <video/omapdss.h>
#include <video/omap-panel-nokia-dsi.h> #include <video/omap-panel-nokia-dsi.h>
...@@ -45,6 +44,7 @@ ...@@ -45,6 +44,7 @@
#include "soc.h" #include "soc.h"
#include "mux.h" #include "mux.h"
#include "mmc.h"
#include "hsmmc.h" #include "hsmmc.h"
#include "control.h" #include "control.h"
#include "common-board-devices.h" #include "common-board-devices.h"
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
#include "common.h" #include "common.h"
#include <plat/menelaus.h> #include <plat/menelaus.h>
#include <plat/mmc.h> #include "mmc.h"
#include "mux.h" #include "mux.h"
#include "gpmc-onenand.h" #include "gpmc-onenand.h"
......
...@@ -40,10 +40,10 @@ ...@@ -40,10 +40,10 @@
#include "common.h" #include "common.h"
#include <plat/usb.h> #include <plat/usb.h>
#include <plat/mmc.h>
#include <video/omap-panel-tfp410.h> #include <video/omap-panel-tfp410.h>
#include "soc.h" #include "soc.h"
#include "mmc.h"
#include "hsmmc.h" #include "hsmmc.h"
#include "control.h" #include "control.h"
#include "mux.h" #include "mux.h"
......
...@@ -23,13 +23,13 @@ ...@@ -23,13 +23,13 @@
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <plat/i2c.h> #include <plat/i2c.h>
#include <plat/mmc.h>
#include <plat/usb.h> #include <plat/usb.h>
#include "gpmc.h" #include "gpmc.h"
#include "common.h" #include "common.h"
#include <plat/serial.h> #include <plat/serial.h>
#include "mux.h" #include "mux.h"
#include "mmc.h"
#include "hsmmc.h" #include "hsmmc.h"
#include "sdram-nokia.h" #include "sdram-nokia.h"
#include "common-board-devices.h" #include "common-board-devices.h"
......
...@@ -17,11 +17,11 @@ ...@@ -17,11 +17,11 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <linux/platform_data/gpio-omap.h> #include <linux/platform_data/gpio-omap.h>
#include <plat/mmc.h>
#include <plat/omap-pm.h> #include <plat/omap-pm.h>
#include <plat/omap_device.h> #include <plat/omap_device.h>
#include "mux.h" #include "mux.h"
#include "mmc.h"
#include "hsmmc.h" #include "hsmmc.h"
#include "control.h" #include "control.h"
......
#include <linux/mmc/host.h>
#include <linux/platform_data/mmc-omap.h>
#define OMAP24XX_NR_MMC 2
#define OMAP2420_MMC_SIZE OMAP1_MMC_SIZE
#define OMAP2_MMC1_BASE 0x4809c000
#define OMAP4_MMC_REG_OFFSET 0x100
#if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE)
void omap242x_init_mmc(struct omap_mmc_platform_data **mmc_data);
#else
static inline void omap242x_init_mmc(struct omap_mmc_platform_data **mmc_data)
{
}
#endif
struct omap_hwmod;
int omap_msdi_reset(struct omap_hwmod *oh);
/* called from board-specific card detection service routine */
extern void omap_mmc_notify_cover_event(struct device *dev, int slot,
int is_closed);
...@@ -27,11 +27,11 @@ ...@@ -27,11 +27,11 @@
#include <plat/omap_hwmod.h> #include <plat/omap_hwmod.h>
#include <plat/omap_device.h> #include <plat/omap_device.h>
#include <plat/mmc.h>
#include "common.h" #include "common.h"
#include "control.h" #include "control.h"
#include "mux.h" #include "mux.h"
#include "mmc.h"
/* /*
* MSDI_CON_OFFSET: offset in bytes of the MSDI IP block's CON register * MSDI_CON_OFFSET: offset in bytes of the MSDI IP block's CON register
......
...@@ -27,12 +27,12 @@ ...@@ -27,12 +27,12 @@
#include <plat/sram.h> #include <plat/sram.h>
#include <plat/omap-secure.h> #include <plat/omap-secure.h>
#include <plat/mmc.h>
#include "omap-wakeupgen.h" #include "omap-wakeupgen.h"
#include "soc.h" #include "soc.h"
#include "common.h" #include "common.h"
#include "mmc.h"
#include "hsmmc.h" #include "hsmmc.h"
#include "omap4-sar-layout.h" #include "omap4-sar-layout.h"
......
...@@ -21,12 +21,12 @@ ...@@ -21,12 +21,12 @@
#include <plat/dmtimer.h> #include <plat/dmtimer.h>
#include "l3_2xxx.h" #include "l3_2xxx.h"
#include "l4_2xxx.h" #include "l4_2xxx.h"
#include <plat/mmc.h>
#include "omap_hwmod_common_data.h" #include "omap_hwmod_common_data.h"
#include "cm-regbits-24xx.h" #include "cm-regbits-24xx.h"
#include "prm-regbits-24xx.h" #include "prm-regbits-24xx.h"
#include "mmc.h"
#include "wd_timer.h" #include "wd_timer.h"
/* /*
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
#include <plat/serial.h> #include <plat/serial.h>
#include <plat/i2c.h> #include <plat/i2c.h>
#include <plat/dmtimer.h> #include <plat/dmtimer.h>
#include <plat/mmc.h> #include "mmc.h"
#include "l3_2xxx.h" #include "l3_2xxx.h"
#include "soc.h" #include "soc.h"
......
...@@ -18,8 +18,6 @@ ...@@ -18,8 +18,6 @@
#include <plat/cpu.h> #include <plat/cpu.h>
#include <linux/platform_data/gpio-omap.h> #include <linux/platform_data/gpio-omap.h>
#include <linux/platform_data/spi-omap2-mcspi.h> #include <linux/platform_data/spi-omap2-mcspi.h>
#include <plat-omap/dma-omap.h>
#include <plat/mmc.h>
#include <plat/i2c.h> #include <plat/i2c.h>
#include "omap_hwmod_common_data.h" #include "omap_hwmod_common_data.h"
...@@ -28,6 +26,7 @@ ...@@ -28,6 +26,7 @@
#include "cm33xx.h" #include "cm33xx.h"
#include "prm33xx.h" #include "prm33xx.h"
#include "prm-regbits-33xx.h" #include "prm-regbits-33xx.h"
#include "mmc.h"
/* /*
* IP blocks * IP blocks
......
...@@ -23,7 +23,6 @@ ...@@ -23,7 +23,6 @@
#include "l3_3xxx.h" #include "l3_3xxx.h"
#include "l4_3xxx.h" #include "l4_3xxx.h"
#include <plat/i2c.h> #include <plat/i2c.h>
#include <plat/mmc.h>
#include <linux/platform_data/asoc-ti-mcbsp.h> #include <linux/platform_data/asoc-ti-mcbsp.h>
#include <linux/platform_data/spi-omap2-mcspi.h> #include <linux/platform_data/spi-omap2-mcspi.h>
#include <plat/dmtimer.h> #include <plat/dmtimer.h>
...@@ -37,6 +36,7 @@ ...@@ -37,6 +36,7 @@
#include "cm-regbits-34xx.h" #include "cm-regbits-34xx.h"
#include "dma.h" #include "dma.h"
#include "mmc.h"
#include "wd_timer.h" #include "wd_timer.h"
/* /*
......
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
#include <plat-omap/dma-omap.h> #include <plat-omap/dma-omap.h>
#include <linux/platform_data/spi-omap2-mcspi.h> #include <linux/platform_data/spi-omap2-mcspi.h>
#include <linux/platform_data/asoc-ti-mcbsp.h> #include <linux/platform_data/asoc-ti-mcbsp.h>
#include <plat/mmc.h>
#include <plat/dmtimer.h> #include <plat/dmtimer.h>
#include <plat/common.h> #include <plat/common.h>
#include <plat/iommu.h> #include <plat/iommu.h>
...@@ -37,6 +36,7 @@ ...@@ -37,6 +36,7 @@
#include "cm2_44xx.h" #include "cm2_44xx.h"
#include "prm44xx.h" #include "prm44xx.h"
#include "prm-regbits-44xx.h" #include "prm-regbits-44xx.h"
#include "mmc.h"
#include "wd_timer.h" #include "wd_timer.h"
/* Base offset for all OMAP4 interrupts external to MPUSS */ /* Base offset for all OMAP4 interrupts external to MPUSS */
......
...@@ -28,9 +28,8 @@ ...@@ -28,9 +28,8 @@
#include <linux/clk.h> #include <linux/clk.h>
#include <linux/scatterlist.h> #include <linux/scatterlist.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/platform_data/mmc-omap.h>
#include <plat/mmc.h>
#include <plat-omap/dma-omap.h>
#define OMAP_MMC_REG_CMD 0x00 #define OMAP_MMC_REG_CMD 0x00
#define OMAP_MMC_REG_ARGL 0x01 #define OMAP_MMC_REG_ARGL 0x01
...@@ -72,6 +71,13 @@ ...@@ -72,6 +71,13 @@
#define OMAP_MMC_STAT_CARD_BUSY (1 << 2) #define OMAP_MMC_STAT_CARD_BUSY (1 << 2)
#define OMAP_MMC_STAT_END_OF_CMD (1 << 0) #define OMAP_MMC_STAT_END_OF_CMD (1 << 0)
#define mmc_omap7xx() (host->features & MMC_OMAP7XX)
#define mmc_omap15xx() (host->features & MMC_OMAP15XX)
#define mmc_omap16xx() (host->features & MMC_OMAP16XX)
#define MMC_OMAP1_MASK (MMC_OMAP7XX | MMC_OMAP15XX | MMC_OMAP16XX)
#define mmc_omap1() (host->features & MMC_OMAP1_MASK)
#define mmc_omap2() (!mmc_omap1())
#define OMAP_MMC_REG(host, reg) (OMAP_MMC_REG_##reg << (host)->reg_shift) #define OMAP_MMC_REG(host, reg) (OMAP_MMC_REG_##reg << (host)->reg_shift)
#define OMAP_MMC_READ(host, reg) __raw_readw((host)->virt_base + OMAP_MMC_REG(host, reg)) #define OMAP_MMC_READ(host, reg) __raw_readw((host)->virt_base + OMAP_MMC_REG(host, reg))
#define OMAP_MMC_WRITE(host, reg, val) __raw_writew((val), (host)->virt_base + OMAP_MMC_REG(host, reg)) #define OMAP_MMC_WRITE(host, reg, val) __raw_writew((val), (host)->virt_base + OMAP_MMC_REG(host, reg))
...@@ -157,6 +163,7 @@ struct mmc_omap_host { ...@@ -157,6 +163,7 @@ struct mmc_omap_host {
u32 buffer_bytes_left; u32 buffer_bytes_left;
u32 total_bytes_left; u32 total_bytes_left;
unsigned features;
unsigned use_dma:1; unsigned use_dma:1;
unsigned brs_received:1, dma_done:1; unsigned brs_received:1, dma_done:1;
unsigned dma_in_use:1; unsigned dma_in_use:1;
...@@ -998,7 +1005,7 @@ mmc_omap_prepare_data(struct mmc_omap_host *host, struct mmc_request *req) ...@@ -998,7 +1005,7 @@ mmc_omap_prepare_data(struct mmc_omap_host *host, struct mmc_request *req)
* blocksize is at least that large. Blocksize is * blocksize is at least that large. Blocksize is
* usually 512 bytes; but not for some SD reads. * usually 512 bytes; but not for some SD reads.
*/ */
burst = cpu_is_omap15xx() ? 32 : 64; burst = mmc_omap15xx() ? 32 : 64;
if (burst > data->blksz) if (burst > data->blksz)
burst = data->blksz; burst = data->blksz;
...@@ -1114,8 +1121,7 @@ static void mmc_omap_set_power(struct mmc_omap_slot *slot, int power_on, ...@@ -1114,8 +1121,7 @@ static void mmc_omap_set_power(struct mmc_omap_slot *slot, int power_on,
if (slot->pdata->set_power != NULL) if (slot->pdata->set_power != NULL)
slot->pdata->set_power(mmc_dev(slot->mmc), slot->id, power_on, slot->pdata->set_power(mmc_dev(slot->mmc), slot->id, power_on,
vdd); vdd);
if (mmc_omap2()) {
if (cpu_is_omap24xx()) {
u16 w; u16 w;
if (power_on) { if (power_on) {
...@@ -1249,7 +1255,7 @@ static int __devinit mmc_omap_new_slot(struct mmc_omap_host *host, int id) ...@@ -1249,7 +1255,7 @@ static int __devinit mmc_omap_new_slot(struct mmc_omap_host *host, int id)
mmc->ops = &mmc_omap_ops; mmc->ops = &mmc_omap_ops;
mmc->f_min = 400000; mmc->f_min = 400000;
if (cpu_class_is_omap2()) if (mmc_omap2())
mmc->f_max = 48000000; mmc->f_max = 48000000;
else else
mmc->f_max = 24000000; mmc->f_max = 24000000;
...@@ -1369,6 +1375,7 @@ static int __devinit mmc_omap_probe(struct platform_device *pdev) ...@@ -1369,6 +1375,7 @@ static int __devinit mmc_omap_probe(struct platform_device *pdev)
init_waitqueue_head(&host->slot_wq); init_waitqueue_head(&host->slot_wq);
host->pdata = pdata; host->pdata = pdata;
host->features = host->pdata->slots[0].features;
host->dev = &pdev->dev; host->dev = &pdev->dev;
platform_set_drvdata(pdev, host); platform_set_drvdata(pdev, host);
...@@ -1401,7 +1408,7 @@ static int __devinit mmc_omap_probe(struct platform_device *pdev) ...@@ -1401,7 +1408,7 @@ static int __devinit mmc_omap_probe(struct platform_device *pdev)
host->dma_tx_burst = -1; host->dma_tx_burst = -1;
host->dma_rx_burst = -1; host->dma_rx_burst = -1;
if (cpu_is_omap24xx()) if (mmc_omap2())
sig = host->id == 0 ? OMAP24XX_DMA_MMC1_TX : OMAP24XX_DMA_MMC2_TX; sig = host->id == 0 ? OMAP24XX_DMA_MMC1_TX : OMAP24XX_DMA_MMC2_TX;
else else
sig = host->id == 0 ? OMAP_DMA_MMC_TX : OMAP_DMA_MMC2_TX; sig = host->id == 0 ? OMAP_DMA_MMC_TX : OMAP_DMA_MMC2_TX;
...@@ -1417,7 +1424,7 @@ static int __devinit mmc_omap_probe(struct platform_device *pdev) ...@@ -1417,7 +1424,7 @@ static int __devinit mmc_omap_probe(struct platform_device *pdev)
dev_warn(host->dev, "unable to obtain TX DMA engine channel %u\n", dev_warn(host->dev, "unable to obtain TX DMA engine channel %u\n",
sig); sig);
#endif #endif
if (cpu_is_omap24xx()) if (mmc_omap2())
sig = host->id == 0 ? OMAP24XX_DMA_MMC1_RX : OMAP24XX_DMA_MMC2_RX; sig = host->id == 0 ? OMAP24XX_DMA_MMC1_RX : OMAP24XX_DMA_MMC2_RX;
else else
sig = host->id == 0 ? OMAP_DMA_MMC_RX : OMAP_DMA_MMC2_RX; sig = host->id == 0 ? OMAP_DMA_MMC_RX : OMAP_DMA_MMC2_RX;
...@@ -1445,7 +1452,7 @@ static int __devinit mmc_omap_probe(struct platform_device *pdev) ...@@ -1445,7 +1452,7 @@ static int __devinit mmc_omap_probe(struct platform_device *pdev)
} }
host->nr_slots = pdata->nr_slots; host->nr_slots = pdata->nr_slots;
host->reg_shift = (cpu_is_omap7xx() ? 1 : 2); host->reg_shift = (mmc_omap7xx() ? 1 : 2);
host->mmc_omap_wq = alloc_workqueue("mmc_omap", 0, 0); host->mmc_omap_wq = alloc_workqueue("mmc_omap", 0, 0);
if (!host->mmc_omap_wq) if (!host->mmc_omap_wq)
......
...@@ -38,9 +38,7 @@ ...@@ -38,9 +38,7 @@
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/regulator/consumer.h> #include <linux/regulator/consumer.h>
#include <linux/pm_runtime.h> #include <linux/pm_runtime.h>
#include <mach/hardware.h> #include <linux/platform_data/mmc-omap.h>
#include <plat/mmc.h>
#include <plat/cpu.h>
/* OMAP HSMMC Host Controller Registers */ /* OMAP HSMMC Host Controller Registers */
#define OMAP_HSMMC_SYSSTATUS 0x0014 #define OMAP_HSMMC_SYSSTATUS 0x0014
......
...@@ -8,27 +8,6 @@ ...@@ -8,27 +8,6 @@
* published by the Free Software Foundation. * published by the Free Software Foundation.
*/ */
#ifndef __OMAP2_MMC_H
#define __OMAP2_MMC_H
#include <linux/types.h>
#include <linux/device.h>
#include <linux/mmc/host.h>
#include <plat/omap_hwmod.h>
#define OMAP15XX_NR_MMC 1
#define OMAP16XX_NR_MMC 2
#define OMAP1_MMC_SIZE 0x080
#define OMAP1_MMC1_BASE 0xfffb7800
#define OMAP1_MMC2_BASE 0xfffb7c00 /* omap16xx only */
#define OMAP24XX_NR_MMC 2
#define OMAP2420_MMC_SIZE OMAP1_MMC_SIZE
#define OMAP2_MMC1_BASE 0x4809c000
#define OMAP4_MMC_REG_OFFSET 0x100
#define OMAP_MMC_MAX_SLOTS 2 #define OMAP_MMC_MAX_SLOTS 2
/* /*
...@@ -50,6 +29,8 @@ ...@@ -50,6 +29,8 @@
#define OMAP_HSMMC_SUPPORTS_DUAL_VOLT BIT(0) #define OMAP_HSMMC_SUPPORTS_DUAL_VOLT BIT(0)
#define OMAP_HSMMC_BROKEN_MULTIBLOCK_READ BIT(1) #define OMAP_HSMMC_BROKEN_MULTIBLOCK_READ BIT(1)
struct mmc_card;
struct omap_mmc_dev_attr { struct omap_mmc_dev_attr {
u8 flags; u8 flags;
}; };
...@@ -126,6 +107,9 @@ struct omap_mmc_platform_data { ...@@ -126,6 +107,9 @@ struct omap_mmc_platform_data {
/* we can put the features above into this variable */ /* we can put the features above into this variable */
#define HSMMC_HAS_PBIAS (1 << 0) #define HSMMC_HAS_PBIAS (1 << 0)
#define HSMMC_HAS_UPDATED_RESET (1 << 1) #define HSMMC_HAS_UPDATED_RESET (1 << 1)
#define MMC_OMAP7XX (1 << 2)
#define MMC_OMAP15XX (1 << 3)
#define MMC_OMAP16XX (1 << 4)
unsigned features; unsigned features;
int switch_pin; /* gpio (card detect) */ int switch_pin; /* gpio (card detect) */
...@@ -164,25 +148,3 @@ struct omap_mmc_platform_data { ...@@ -164,25 +148,3 @@ struct omap_mmc_platform_data {
} slots[OMAP_MMC_MAX_SLOTS]; } slots[OMAP_MMC_MAX_SLOTS];
}; };
/* called from board-specific card detection service routine */
extern void omap_mmc_notify_cover_event(struct device *dev, int slot,
int is_closed);
#if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE)
void omap1_init_mmc(struct omap_mmc_platform_data **mmc_data,
int nr_controllers);
void omap242x_init_mmc(struct omap_mmc_platform_data **mmc_data);
#else
static inline void omap1_init_mmc(struct omap_mmc_platform_data **mmc_data,
int nr_controllers)
{
}
static inline void omap242x_init_mmc(struct omap_mmc_platform_data **mmc_data)
{
}
#endif
extern int omap_msdi_reset(struct omap_hwmod *oh);
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment