1/* linux/arch/arm/plat-s3c/dev-hsmmc2.c 2 * 3 * Copyright (c) 2009 Samsung Electronics 4 * Copyright (c) 2009 Maurus Cuelenaere 5 * 6 * Based on arch/arm/plat-s3c/dev-hsmmc1.c 7 * original file Copyright (c) 2008 Simtec Electronics 8 * 9 * S3C series device definition for hsmmc device 2 10 * 11 * This program is free software; you can redistribute it and/or modify 12 * it under the terms of the GNU General Public License version 2 as 13 * published by the Free Software Foundation. 14*/ 15 16#include <linux/kernel.h> 17#include <linux/platform_device.h> 18#include <linux/mmc/host.h> 19 20#include <mach/map.h> 21#include <plat/sdhci.h> 22#include <plat/devs.h> 23 24#define S3C_SZ_HSMMC (0x1000) 25 26static struct resource s3c_hsmmc2_resource[] = { 27 [0] = { 28 .start = S3C_PA_HSMMC2, 29 .end = S3C_PA_HSMMC2 + S3C_SZ_HSMMC - 1, 30 .flags = IORESOURCE_MEM, 31 }, 32 [1] = { 33 .start = IRQ_HSMMC2, 34 .end = IRQ_HSMMC2, 35 .flags = IORESOURCE_IRQ, 36 } 37}; 38 39static u64 s3c_device_hsmmc2_dmamask = 0xffffffffUL; 40 41struct s3c_sdhci_platdata s3c_hsmmc2_def_platdata = { 42 .max_width = 4, 43 .host_caps = (MMC_CAP_4_BIT_DATA | 44 MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED), 45}; 46 47struct platform_device s3c_device_hsmmc2 = { 48 .name = "s3c-sdhci", 49 .id = 2, 50 .num_resources = ARRAY_SIZE(s3c_hsmmc2_resource), 51 .resource = s3c_hsmmc2_resource, 52 .dev = { 53 .dma_mask = &s3c_device_hsmmc2_dmamask, 54 .coherent_dma_mask = 0xffffffffUL, 55 .platform_data = &s3c_hsmmc2_def_platdata, 56 }, 57}; 58 59void s3c_sdhci2_set_platdata(struct s3c_sdhci_platdata *pd) 60{ 61 struct s3c_sdhci_platdata *set = &s3c_hsmmc2_def_platdata; 62 63 set->max_width = pd->max_width; 64 set->cd_type = pd->cd_type; 65 set->ext_cd_init = pd->ext_cd_init; 66 set->ext_cd_cleanup = pd->ext_cd_cleanup; 67 set->ext_cd_gpio = pd->ext_cd_gpio; 68 set->ext_cd_gpio_invert = pd->ext_cd_gpio_invert; 69 70 if (pd->cfg_gpio) 71 set->cfg_gpio = pd->cfg_gpio; 72 if (pd->cfg_card) 73 set->cfg_card = pd->cfg_card; 74 if (pd->host_caps) 75 set->host_caps = pd->host_caps; 76} 77