ca90666287
* 'gpio' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm: (43 commits) ARM: 7135/1: ep93xx: bring back missing <mach/gpio.h> ARM: 7104/1: plat-pxa: break out GPIO driver specifics ARM: 7103/1: plat-pxa: move PXA GPIO driver to GPIO subsystem ARM: 7042/3: mach-ep93xx: break out GPIO driver specifics ARM: 7101/1: arm/tegra: Replace <mach/gpio.h> with <mach/gpio-tegra.h> ARM: 7094/1: arm/tegra: Move EN_VDD_1V05_GPIO to board-harmony.h ARM: 7083/1: rewrite U300 GPIO to use gpiolib ARM: 7074/1: gpio: davinci: eliminate unused variable warnings ARM: 7063/1: Orion: gpio: add missing include of linux/types.h ARM: 7055/1: arm/tegra: mach/gpio.h: include linux/types.h to fix build ARM: 7054/1: arm/tegra: Delete custom gpio_to_irq, and irq_to_gpio ARM: 7053/1: gpio/tegra: Implement gpio_chip.to_irq ARM: 7052/1: gpio/tegra: Remove use of irq_to_gpio ARM: 7057/1: mach-pnx4008: rename GPIO header ARM: 7056/1: plat-nomadik: kill off <plat/gpio.h> ARM: 7050/1: mach-sa1100: delete irq_to_gpio() function ARM: 7049/1: mach-sa1100: move SA1100 GPIO driver to GPIO subsystem ARM: 7045/1: mach-lpc32xx: break out GPIO driver specifics ARM: 7044/1: mach-lpc32xx: move LPC32XX GPIO driver to GPIO subsystem ARM: 7043/1: mach-ixp2000: rename GPIO header ... Fix up trivial conflicts in arch/arm/mach-u300/Kconfig manually
52 lines
1.3 KiB
C
52 lines
1.3 KiB
C
/*
|
|
*
|
|
* arch/arm/mach-u300/mmc.c
|
|
*
|
|
*
|
|
* Copyright (C) 2009 ST-Ericsson SA
|
|
* License terms: GNU General Public License (GPL) version 2
|
|
*
|
|
* Author: Linus Walleij <linus.walleij@stericsson.com>
|
|
* Author: Johan Lundin
|
|
* Author: Jonas Aaberg <jonas.aberg@stericsson.com>
|
|
*/
|
|
#include <linux/device.h>
|
|
#include <linux/amba/bus.h>
|
|
#include <linux/mmc/host.h>
|
|
#include <linux/dmaengine.h>
|
|
#include <linux/amba/mmci.h>
|
|
#include <linux/slab.h>
|
|
#include <mach/coh901318.h>
|
|
#include <mach/dma_channels.h>
|
|
#include <mach/gpio-u300.h>
|
|
|
|
#include "mmc.h"
|
|
|
|
static struct mmci_platform_data mmc0_plat_data = {
|
|
/*
|
|
* Do not set ocr_mask or voltage translation function,
|
|
* we have a regulator we can control instead.
|
|
*/
|
|
/* Nominally 2.85V on our platform */
|
|
.f_max = 24000000,
|
|
.gpio_wp = -1,
|
|
.gpio_cd = U300_GPIO_PIN_MMC_CD,
|
|
.cd_invert = true,
|
|
.capabilities = MMC_CAP_MMC_HIGHSPEED |
|
|
MMC_CAP_SD_HIGHSPEED | MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
|
|
#ifdef CONFIG_COH901318
|
|
.dma_filter = coh901318_filter_id,
|
|
.dma_rx_param = (void *) U300_DMA_MMCSD_RX_TX,
|
|
/* Don't specify a TX channel, this RX channel is bidirectional */
|
|
#endif
|
|
};
|
|
|
|
int __devinit mmc_init(struct amba_device *adev)
|
|
{
|
|
struct device *mmcsd_device = &adev->dev;
|
|
int ret = 0;
|
|
|
|
mmcsd_device->platform_data = &mmc0_plat_data;
|
|
|
|
return ret;
|
|
}
|