1 // SPDX-License-Identifier: GPL-2.0
3 // Copyright 2010 Ben Dooks <ben-linux <at> fluff.org>
5 // Helper for platform data setting
7 #include <linux/kernel.h>
8 #include <linux/slab.h>
9 #include <linux/string.h>
10 #include <linux/platform_device.h>
12 #include <plat/devs.h>
13 #include <plat/sdhci.h>
15 void __init
*s3c_set_platdata(void *pd
, size_t pdsize
,
16 struct platform_device
*pdev
)
21 /* too early to use dev_name(), may not be registered */
22 printk(KERN_ERR
"%s: no platform data supplied\n", pdev
->name
);
26 npd
= kmemdup(pd
, pdsize
, GFP_KERNEL
);
30 pdev
->dev
.platform_data
= npd
;
34 void s3c_sdhci_set_platdata(struct s3c_sdhci_platdata
*pd
,
35 struct s3c_sdhci_platdata
*set
)
37 set
->cd_type
= pd
->cd_type
;
38 set
->ext_cd_init
= pd
->ext_cd_init
;
39 set
->ext_cd_cleanup
= pd
->ext_cd_cleanup
;
40 set
->ext_cd_gpio
= pd
->ext_cd_gpio
;
41 set
->ext_cd_gpio_invert
= pd
->ext_cd_gpio_invert
;
44 set
->max_width
= pd
->max_width
;
46 set
->cfg_gpio
= pd
->cfg_gpio
;
48 set
->host_caps
|= pd
->host_caps
;
50 set
->host_caps2
|= pd
->host_caps2
;
52 set
->pm_caps
|= pd
->pm_caps
;