ARM: mach-shmobile: ap4evb: Add MMC support
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
cb9215e1fa
commit
c8ee3d4b5f
|
@ -28,6 +28,8 @@
|
||||||
#include <linux/mtd/mtd.h>
|
#include <linux/mtd/mtd.h>
|
||||||
#include <linux/mtd/partitions.h>
|
#include <linux/mtd/partitions.h>
|
||||||
#include <linux/mtd/physmap.h>
|
#include <linux/mtd/physmap.h>
|
||||||
|
#include <linux/mmc/host.h>
|
||||||
|
#include <linux/mmc/sh_mmcif.h>
|
||||||
#include <linux/i2c.h>
|
#include <linux/i2c.h>
|
||||||
#include <linux/i2c/tsc2007.h>
|
#include <linux/i2c/tsc2007.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
|
@ -124,6 +126,18 @@
|
||||||
* : OFF : Bluetooth Audio Mode
|
* : OFF : Bluetooth Audio Mode
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MMC (CN7)
|
||||||
|
*
|
||||||
|
* J22 : 1-2: 1.8v for MMC
|
||||||
|
* 2-3: 3.3v for MMC
|
||||||
|
* SW1 : OFF
|
||||||
|
* SW33: bit1: OFF
|
||||||
|
* bit2: ON
|
||||||
|
* bit3: ON
|
||||||
|
* bit4: X
|
||||||
|
*/
|
||||||
|
|
||||||
/* MTD */
|
/* MTD */
|
||||||
static struct mtd_partition nor_flash_partitions[] = {
|
static struct mtd_partition nor_flash_partitions[] = {
|
||||||
{
|
{
|
||||||
|
@ -242,6 +256,46 @@ static struct platform_device keysc_device = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* SH_MMCIF */
|
||||||
|
static struct resource sh_mmcif_resources[] = {
|
||||||
|
[0] = {
|
||||||
|
.name = "SH_MMCIF",
|
||||||
|
.start = 0xE6BD0000,
|
||||||
|
.end = 0xE6BD00FF,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
[1] = {
|
||||||
|
/* MMC ERR */
|
||||||
|
.start = 198,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
[2] = {
|
||||||
|
/* MMC NOR */
|
||||||
|
.start = 199,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
struct sh_mmcif_plat_data sh_mmcif_plat = {
|
||||||
|
.sup_pclk = 0,
|
||||||
|
.ocr = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34,
|
||||||
|
.caps = MMC_CAP_4_BIT_DATA |
|
||||||
|
MMC_CAP_8_BIT_DATA |
|
||||||
|
MMC_CAP_NEEDS_POLL,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct platform_device sh_mmcif_device = {
|
||||||
|
.name = "sh_mmcif",
|
||||||
|
.id = 0,
|
||||||
|
.dev = {
|
||||||
|
.dma_mask = NULL,
|
||||||
|
.coherent_dma_mask = 0xffffffff,
|
||||||
|
.platform_data = &sh_mmcif_plat,
|
||||||
|
},
|
||||||
|
.num_resources = ARRAY_SIZE(sh_mmcif_resources),
|
||||||
|
.resource = sh_mmcif_resources,
|
||||||
|
};
|
||||||
|
|
||||||
/* SDHI0 */
|
/* SDHI0 */
|
||||||
static struct sh_mobile_sdhi_info sdhi0_info = {
|
static struct sh_mobile_sdhi_info sdhi0_info = {
|
||||||
.dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
|
.dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
|
||||||
|
@ -447,6 +501,7 @@ static struct platform_device *ap4evb_devices[] __initdata = {
|
||||||
&lcdc_device,
|
&lcdc_device,
|
||||||
&mipidsi0_device,
|
&mipidsi0_device,
|
||||||
&fsi_device,
|
&fsi_device,
|
||||||
|
&sh_mmcif_device
|
||||||
};
|
};
|
||||||
|
|
||||||
/* TouchScreen (Needs SW3 set to OFF) */
|
/* TouchScreen (Needs SW3 set to OFF) */
|
||||||
|
@ -620,6 +675,18 @@ static void __init ap4evb_init(void)
|
||||||
gpio_request(GPIO_FN_IRQ28_123, NULL);
|
gpio_request(GPIO_FN_IRQ28_123, NULL);
|
||||||
set_irq_type(IRQ28, IRQ_TYPE_LEVEL_LOW);
|
set_irq_type(IRQ28, IRQ_TYPE_LEVEL_LOW);
|
||||||
|
|
||||||
|
/* MMCIF */
|
||||||
|
gpio_request(GPIO_FN_MMCD0_0, NULL);
|
||||||
|
gpio_request(GPIO_FN_MMCD0_1, NULL);
|
||||||
|
gpio_request(GPIO_FN_MMCD0_2, NULL);
|
||||||
|
gpio_request(GPIO_FN_MMCD0_3, NULL);
|
||||||
|
gpio_request(GPIO_FN_MMCD0_4, NULL);
|
||||||
|
gpio_request(GPIO_FN_MMCD0_5, NULL);
|
||||||
|
gpio_request(GPIO_FN_MMCD0_6, NULL);
|
||||||
|
gpio_request(GPIO_FN_MMCD0_7, NULL);
|
||||||
|
gpio_request(GPIO_FN_MMCCMD0, NULL);
|
||||||
|
gpio_request(GPIO_FN_MMCCLK0, NULL);
|
||||||
|
|
||||||
/* USB enable */
|
/* USB enable */
|
||||||
gpio_request(GPIO_FN_VBUS0_1, NULL);
|
gpio_request(GPIO_FN_VBUS0_1, NULL);
|
||||||
gpio_request(GPIO_FN_IDIN_1_18, NULL);
|
gpio_request(GPIO_FN_IDIN_1_18, NULL);
|
||||||
|
|
Loading…
Reference in New Issue