1 /* linux/arch/arm/plat-s3c/dev-hsmmc2.c
3 * Copyright (c) 2009 Samsung Electronics
4 * Copyright (c) 2009 Maurus Cuelenaere
6 * Based on arch/arm/plat-s3c/dev-hsmmc1.c
7 * original file Copyright (c) 2008 Simtec Electronics
9 * S3C series device definition for hsmmc device 2
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.
16 #include <linux/kernel.h>
17 #include <linux/platform_device.h>
18 #include <linux/mmc/host.h>
21 #include <plat/sdhci.h>
22 #include <plat/devs.h>
24 #define S3C_SZ_HSMMC (0x1000)
26 static struct resource s3c_hsmmc2_resource
[] = {
28 .start
= S3C_PA_HSMMC2
,
29 .end
= S3C_PA_HSMMC2
+ S3C_SZ_HSMMC
- 1,
30 .flags
= IORESOURCE_MEM
,
35 .flags
= IORESOURCE_IRQ
,
39 static u64 s3c_device_hsmmc2_dmamask
= 0xffffffffUL
;
41 struct s3c_sdhci_platdata s3c_hsmmc2_def_platdata
= {
43 .host_caps
= (MMC_CAP_4_BIT_DATA
|
44 MMC_CAP_MMC_HIGHSPEED
| MMC_CAP_SD_HIGHSPEED
),
45 .clk_type
= S3C_SDHCI_CLK_DIV_INTERNAL
,
48 struct platform_device s3c_device_hsmmc2
= {
51 .num_resources
= ARRAY_SIZE(s3c_hsmmc2_resource
),
52 .resource
= s3c_hsmmc2_resource
,
54 .dma_mask
= &s3c_device_hsmmc2_dmamask
,
55 .coherent_dma_mask
= 0xffffffffUL
,
56 .platform_data
= &s3c_hsmmc2_def_platdata
,
60 void s3c_sdhci2_set_platdata(struct s3c_sdhci_platdata
*pd
)
62 struct s3c_sdhci_platdata
*set
= &s3c_hsmmc2_def_platdata
;
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
;
71 set
->max_width
= pd
->max_width
;
73 set
->cfg_gpio
= pd
->cfg_gpio
;
75 set
->cfg_card
= pd
->cfg_card
;
77 set
->host_caps
|= pd
->host_caps
;
79 set
->clk_type
= pd
->clk_type
;