Commit 5e8e0a10 authored by Banajit Goswami's avatar Banajit Goswami Committed by Kukjin Kim

ARM: SAMSUNG: Consolidate common function to set SDHCI plat data

Moves similar functions to set SDHCI platform data for all Samsung
boards to a common location, thereby saves a few lines.
Signed-off-by: default avatarBanajit Goswami <banajit.g@samsung.com>
Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
parent 3e461977
...@@ -58,22 +58,5 @@ struct platform_device s3c_device_hsmmc0 = { ...@@ -58,22 +58,5 @@ struct platform_device s3c_device_hsmmc0 = {
void s3c_sdhci0_set_platdata(struct s3c_sdhci_platdata *pd) void s3c_sdhci0_set_platdata(struct s3c_sdhci_platdata *pd)
{ {
struct s3c_sdhci_platdata *set = &s3c_hsmmc0_def_platdata; s3c_sdhci_set_platdata(pd, &s3c_hsmmc0_def_platdata);
set->cd_type = pd->cd_type;
set->ext_cd_init = pd->ext_cd_init;
set->ext_cd_cleanup = pd->ext_cd_cleanup;
set->ext_cd_gpio = pd->ext_cd_gpio;
set->ext_cd_gpio_invert = pd->ext_cd_gpio_invert;
if (pd->max_width)
set->max_width = pd->max_width;
if (pd->cfg_gpio)
set->cfg_gpio = pd->cfg_gpio;
if (pd->cfg_card)
set->cfg_card = pd->cfg_card;
if (pd->host_caps)
set->host_caps |= pd->host_caps;
if (pd->clk_type)
set->clk_type = pd->clk_type;
} }
...@@ -58,22 +58,5 @@ struct platform_device s3c_device_hsmmc1 = { ...@@ -58,22 +58,5 @@ struct platform_device s3c_device_hsmmc1 = {
void s3c_sdhci1_set_platdata(struct s3c_sdhci_platdata *pd) void s3c_sdhci1_set_platdata(struct s3c_sdhci_platdata *pd)
{ {
struct s3c_sdhci_platdata *set = &s3c_hsmmc1_def_platdata; s3c_sdhci_set_platdata(pd, &s3c_hsmmc1_def_platdata);
set->cd_type = pd->cd_type;
set->ext_cd_init = pd->ext_cd_init;
set->ext_cd_cleanup = pd->ext_cd_cleanup;
set->ext_cd_gpio = pd->ext_cd_gpio;
set->ext_cd_gpio_invert = pd->ext_cd_gpio_invert;
if (pd->max_width)
set->max_width = pd->max_width;
if (pd->cfg_gpio)
set->cfg_gpio = pd->cfg_gpio;
if (pd->cfg_card)
set->cfg_card = pd->cfg_card;
if (pd->host_caps)
set->host_caps |= pd->host_caps;
if (pd->clk_type)
set->clk_type = pd->clk_type;
} }
...@@ -59,22 +59,5 @@ struct platform_device s3c_device_hsmmc2 = { ...@@ -59,22 +59,5 @@ struct platform_device s3c_device_hsmmc2 = {
void s3c_sdhci2_set_platdata(struct s3c_sdhci_platdata *pd) void s3c_sdhci2_set_platdata(struct s3c_sdhci_platdata *pd)
{ {
struct s3c_sdhci_platdata *set = &s3c_hsmmc2_def_platdata; s3c_sdhci_set_platdata(pd, &s3c_hsmmc2_def_platdata);
set->cd_type = pd->cd_type;
set->ext_cd_init = pd->ext_cd_init;
set->ext_cd_cleanup = pd->ext_cd_cleanup;
set->ext_cd_gpio = pd->ext_cd_gpio;
set->ext_cd_gpio_invert = pd->ext_cd_gpio_invert;
if (pd->max_width)
set->max_width = pd->max_width;
if (pd->cfg_gpio)
set->cfg_gpio = pd->cfg_gpio;
if (pd->cfg_card)
set->cfg_card = pd->cfg_card;
if (pd->host_caps)
set->host_caps |= pd->host_caps;
if (pd->clk_type)
set->clk_type = pd->clk_type;
} }
...@@ -62,22 +62,5 @@ struct platform_device s3c_device_hsmmc3 = { ...@@ -62,22 +62,5 @@ struct platform_device s3c_device_hsmmc3 = {
void s3c_sdhci3_set_platdata(struct s3c_sdhci_platdata *pd) void s3c_sdhci3_set_platdata(struct s3c_sdhci_platdata *pd)
{ {
struct s3c_sdhci_platdata *set = &s3c_hsmmc3_def_platdata; s3c_sdhci_set_platdata(pd, &s3c_hsmmc3_def_platdata);
set->cd_type = pd->cd_type;
set->ext_cd_init = pd->ext_cd_init;
set->ext_cd_cleanup = pd->ext_cd_cleanup;
set->ext_cd_gpio = pd->ext_cd_gpio;
set->ext_cd_gpio_invert = pd->ext_cd_gpio_invert;
if (pd->max_width)
set->max_width = pd->max_width;
if (pd->cfg_gpio)
set->cfg_gpio = pd->cfg_gpio;
if (pd->cfg_card)
set->cfg_card = pd->cfg_card;
if (pd->host_caps)
set->host_caps |= pd->host_caps;
if (pd->clk_type)
set->clk_type = pd->clk_type;
} }
...@@ -86,6 +86,13 @@ struct s3c_sdhci_platdata { ...@@ -86,6 +86,13 @@ struct s3c_sdhci_platdata {
struct mmc_card *card); struct mmc_card *card);
}; };
/* s3c_sdhci_set_platdata() - common helper for setting SDHCI platform data
* @pd: The default platform data for this device.
* @set: Pointer to the platform data to fill in.
*/
extern void s3c_sdhci_set_platdata(struct s3c_sdhci_platdata *pd,
struct s3c_sdhci_platdata *set);
/** /**
* s3c_sdhci0_set_platdata - Set platform data for S3C SDHCI device. * s3c_sdhci0_set_platdata - Set platform data for S3C SDHCI device.
* @pd: Platform data to register to device. * @pd: Platform data to register to device.
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <plat/devs.h> #include <plat/devs.h>
#include <plat/sdhci.h>
void __init *s3c_set_platdata(void *pd, size_t pdsize, void __init *s3c_set_platdata(void *pd, size_t pdsize,
struct platform_device *pdev) struct platform_device *pdev)
...@@ -35,3 +36,24 @@ void __init *s3c_set_platdata(void *pd, size_t pdsize, ...@@ -35,3 +36,24 @@ void __init *s3c_set_platdata(void *pd, size_t pdsize,
pdev->dev.platform_data = npd; pdev->dev.platform_data = npd;
return npd; return npd;
} }
void s3c_sdhci_set_platdata(struct s3c_sdhci_platdata *pd,
struct s3c_sdhci_platdata *set)
{
set->cd_type = pd->cd_type;
set->ext_cd_init = pd->ext_cd_init;
set->ext_cd_cleanup = pd->ext_cd_cleanup;
set->ext_cd_gpio = pd->ext_cd_gpio;
set->ext_cd_gpio_invert = pd->ext_cd_gpio_invert;
if (pd->max_width)
set->max_width = pd->max_width;
if (pd->cfg_gpio)
set->cfg_gpio = pd->cfg_gpio;
if (pd->cfg_card)
set->cfg_card = pd->cfg_card;
if (pd->host_caps)
set->host_caps |= pd->host_caps;
if (pd->clk_type)
set->clk_type = pd->clk_type;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment