34
34
#include <linux/input/sh_keysc.h>
35
35
#include <linux/mmc/host.h>
36
36
#include <linux/mmc/sh_mmcif.h>
37
#include <linux/mmc/sh_mobile_sdhi.h>
38
#include <linux/mfd/tmio.h>
37
39
#include <linux/sh_clk.h>
38
40
#include <video/sh_mobile_lcdc.h>
39
41
#include <video/sh_mipi_dsi.h>
161
static struct sh_mmcif_dma sh_mmcif_dma = {
163
.slave_id = SHDMA_SLAVE_MMCIF_RX,
166
.slave_id = SHDMA_SLAVE_MMCIF_TX,
159
169
static struct sh_mmcif_plat_data sh_mmcif_platdata = {
161
171
.ocr = MMC_VDD_165_195,
162
172
.caps = MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE,
173
.dma = &sh_mmcif_dma,
165
176
static struct platform_device mmc_device = {
341
static struct sh_mobile_sdhi_info sdhi0_info = {
342
.dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
343
.dma_slave_rx = SHDMA_SLAVE_SDHI0_RX,
344
.tmio_caps = MMC_CAP_SD_HIGHSPEED,
345
.tmio_ocr_mask = MMC_VDD_27_28 | MMC_VDD_28_29,
348
static struct resource sdhi0_resources[] = {
353
.flags = IORESOURCE_MEM,
356
.start = gic_spi(83),
357
.flags = IORESOURCE_IRQ,
360
.start = gic_spi(84),
361
.flags = IORESOURCE_IRQ,
364
.start = gic_spi(85),
365
.flags = IORESOURCE_IRQ,
369
static struct platform_device sdhi0_device = {
370
.name = "sh_mobile_sdhi",
372
.num_resources = ARRAY_SIZE(sdhi0_resources),
373
.resource = sdhi0_resources,
375
.platform_data = &sdhi0_info,
379
void ag5evm_sdhi1_set_pwr(struct platform_device *pdev, int state)
381
gpio_set_value(GPIO_PORT114, state);
384
static struct sh_mobile_sdhi_info sh_sdhi1_info = {
385
.tmio_flags = TMIO_MMC_WRPROTECT_DISABLE,
386
.tmio_caps = MMC_CAP_NONREMOVABLE | MMC_CAP_SDIO_IRQ,
387
.tmio_ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34,
388
.set_pwr = ag5evm_sdhi1_set_pwr,
391
static struct resource sdhi1_resources[] = {
396
.flags = IORESOURCE_MEM,
399
.start = gic_spi(87),
400
.flags = IORESOURCE_IRQ,
403
.start = gic_spi(88),
404
.flags = IORESOURCE_IRQ,
407
.start = gic_spi(89),
408
.flags = IORESOURCE_IRQ,
412
static struct platform_device sdhi1_device = {
413
.name = "sh_mobile_sdhi",
416
.platform_data = &sh_sdhi1_info,
418
.num_resources = ARRAY_SIZE(sdhi1_resources),
419
.resource = sdhi1_resources,
328
422
static struct platform_device *ag5evm_devices[] __initdata = {
454
550
/* MIPI-DSI clock setup */
455
551
__raw_writel(0x2a809010, DSI0PHYCR);
553
/* enable SDHI0 on CN15 [SD I/F] */
554
gpio_request(GPIO_FN_SDHICD0, NULL);
555
gpio_request(GPIO_FN_SDHIWP0, NULL);
556
gpio_request(GPIO_FN_SDHICMD0, NULL);
557
gpio_request(GPIO_FN_SDHICLK0, NULL);
558
gpio_request(GPIO_FN_SDHID0_3, NULL);
559
gpio_request(GPIO_FN_SDHID0_2, NULL);
560
gpio_request(GPIO_FN_SDHID0_1, NULL);
561
gpio_request(GPIO_FN_SDHID0_0, NULL);
563
/* enable SDHI1 on CN4 [WLAN I/F] */
564
gpio_request(GPIO_FN_SDHICLK1, NULL);
565
gpio_request(GPIO_FN_SDHICMD1_PU, NULL);
566
gpio_request(GPIO_FN_SDHID1_3_PU, NULL);
567
gpio_request(GPIO_FN_SDHID1_2_PU, NULL);
568
gpio_request(GPIO_FN_SDHID1_1_PU, NULL);
569
gpio_request(GPIO_FN_SDHID1_0_PU, NULL);
570
gpio_request(GPIO_PORT114, "sdhi1_power");
571
gpio_direction_output(GPIO_PORT114, 0);
457
573
#ifdef CONFIG_CACHE_L2X0
458
574
/* Shared attribute override enable, 64K*8way */
459
575
l2x0_init(__io(0xf0100000), 0x00460000, 0xc2000fff);