1 /* linux/arch/arm/plat-samsung/dev-hsmmc3.c
3 * Copyright (c) 2010 Samsung Electronics Co., Ltd.
4 * http://www.samsung.com
6 * Copyright (c) 2008 Simtec Electronics
7 * Ben Dooks <ben@simtec.co.uk>
8 * http://armlinux.simtec.co.uk/
10 * Based on arch/arm/plat-samsung/dev-hsmmc1.c
12 * Samsung device definition for hsmmc device 3
14 * This program is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License version 2 as
16 * published by the Free Software Foundation.
19 #include <linux/kernel.h>
20 #include <linux/platform_device.h>
21 #include <linux/mmc/host.h>
24 #include <plat/sdhci.h>
25 #include <plat/devs.h>
27 #define S3C_SZ_HSMMC (0x1000)
29 static struct resource s3c_hsmmc3_resource
[] = {
31 .start
= S3C_PA_HSMMC3
,
32 .end
= S3C_PA_HSMMC3
+ S3C_SZ_HSMMC
- 1,
33 .flags
= IORESOURCE_MEM
,
38 .flags
= IORESOURCE_IRQ
,
42 static u64 s3c_device_hsmmc3_dmamask
= 0xffffffffUL
;
44 struct s3c_sdhci_platdata s3c_hsmmc3_def_platdata
= {
46 .host_caps
= (MMC_CAP_4_BIT_DATA
|
47 MMC_CAP_MMC_HIGHSPEED
| MMC_CAP_SD_HIGHSPEED
),
48 .clk_type
= S3C_SDHCI_CLK_DIV_INTERNAL
,
51 struct platform_device s3c_device_hsmmc3
= {
54 .num_resources
= ARRAY_SIZE(s3c_hsmmc3_resource
),
55 .resource
= s3c_hsmmc3_resource
,
57 .dma_mask
= &s3c_device_hsmmc3_dmamask
,
58 .coherent_dma_mask
= 0xffffffffUL
,
59 .platform_data
= &s3c_hsmmc3_def_platdata
,
63 void s3c_sdhci3_set_platdata(struct s3c_sdhci_platdata
*pd
)
65 struct s3c_sdhci_platdata
*set
= &s3c_hsmmc3_def_platdata
;
67 set
->cd_type
= pd
->cd_type
;
68 set
->ext_cd_init
= pd
->ext_cd_init
;
69 set
->ext_cd_cleanup
= pd
->ext_cd_cleanup
;
70 set
->ext_cd_gpio
= pd
->ext_cd_gpio
;
71 set
->ext_cd_gpio_invert
= pd
->ext_cd_gpio_invert
;
74 set
->max_width
= pd
->max_width
;
76 set
->cfg_gpio
= pd
->cfg_gpio
;
78 set
->cfg_card
= pd
->cfg_card
;
80 set
->host_caps
|= pd
->host_caps
;
82 set
->clk_type
= pd
->clk_type
;