1 /* linux/arch/arm/plat-samsung/platformdata.c
3 * Copyright 2010 Ben Dooks <ben-linux <at> fluff.org>
5 * Helper for platform data setting
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
12 #include <linux/kernel.h>
13 #include <linux/slab.h>
14 #include <linux/string.h>
15 #include <linux/platform_device.h>
17 #include <plat/devs.h>
18 #include <plat/sdhci.h>
20 void __init
*s3c_set_platdata(void *pd
, size_t pdsize
,
21 struct platform_device
*pdev
)
26 /* too early to use dev_name(), may not be registered */
27 printk(KERN_ERR
"%s: no platform data supplied\n", pdev
->name
);
31 npd
= kmemdup(pd
, pdsize
, GFP_KERNEL
);
33 printk(KERN_ERR
"%s: cannot clone platform data\n", pdev
->name
);
37 pdev
->dev
.platform_data
= npd
;
41 void s3c_sdhci_set_platdata(struct s3c_sdhci_platdata
*pd
,
42 struct s3c_sdhci_platdata
*set
)
44 set
->cd_type
= pd
->cd_type
;
45 set
->ext_cd_init
= pd
->ext_cd_init
;
46 set
->ext_cd_cleanup
= pd
->ext_cd_cleanup
;
47 set
->ext_cd_gpio
= pd
->ext_cd_gpio
;
48 set
->ext_cd_gpio_invert
= pd
->ext_cd_gpio_invert
;
51 set
->max_width
= pd
->max_width
;
53 set
->cfg_gpio
= pd
->cfg_gpio
;
55 set
->cfg_card
= pd
->cfg_card
;
57 set
->host_caps
|= pd
->host_caps
;
59 set
->clk_type
= pd
->clk_type
;