|
@@ -1512,7 +1512,7 @@ static struct resource s3c64xx_spi0_resource[] = {
|
|
|
};
|
|
|
|
|
|
struct platform_device s3c64xx_device_spi0 = {
|
|
|
- .name = "s3c64xx-spi",
|
|
|
+ .name = "s3c6410-spi",
|
|
|
.id = 0,
|
|
|
.num_resources = ARRAY_SIZE(s3c64xx_spi0_resource),
|
|
|
.resource = s3c64xx_spi0_resource,
|
|
@@ -1522,13 +1522,10 @@ struct platform_device s3c64xx_device_spi0 = {
|
|
|
},
|
|
|
};
|
|
|
|
|
|
-void __init s3c64xx_spi0_set_platdata(struct s3c64xx_spi_info *pd,
|
|
|
- int src_clk_nr, int num_cs)
|
|
|
+void __init s3c64xx_spi0_set_platdata(int (*cfg_gpio)(void), int src_clk_nr,
|
|
|
+ int num_cs)
|
|
|
{
|
|
|
- if (!pd) {
|
|
|
- pr_err("%s:Need to pass platform data\n", __func__);
|
|
|
- return;
|
|
|
- }
|
|
|
+ struct s3c64xx_spi_info pd;
|
|
|
|
|
|
/* Reject invalid configuration */
|
|
|
if (!num_cs || src_clk_nr < 0) {
|
|
@@ -1536,12 +1533,11 @@ void __init s3c64xx_spi0_set_platdata(struct s3c64xx_spi_info *pd,
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- pd->num_cs = num_cs;
|
|
|
- pd->src_clk_nr = src_clk_nr;
|
|
|
- if (!pd->cfg_gpio)
|
|
|
- pd->cfg_gpio = s3c64xx_spi0_cfg_gpio;
|
|
|
+ pd.num_cs = num_cs;
|
|
|
+ pd.src_clk_nr = src_clk_nr;
|
|
|
+ pd.cfg_gpio = (cfg_gpio) ? cfg_gpio : s3c64xx_spi0_cfg_gpio;
|
|
|
|
|
|
- s3c_set_platdata(pd, sizeof(*pd), &s3c64xx_device_spi0);
|
|
|
+ s3c_set_platdata(&pd, sizeof(pd), &s3c64xx_device_spi0);
|
|
|
}
|
|
|
#endif /* CONFIG_S3C64XX_DEV_SPI0 */
|
|
|
|
|
@@ -1554,7 +1550,7 @@ static struct resource s3c64xx_spi1_resource[] = {
|
|
|
};
|
|
|
|
|
|
struct platform_device s3c64xx_device_spi1 = {
|
|
|
- .name = "s3c64xx-spi",
|
|
|
+ .name = "s3c6410-spi",
|
|
|
.id = 1,
|
|
|
.num_resources = ARRAY_SIZE(s3c64xx_spi1_resource),
|
|
|
.resource = s3c64xx_spi1_resource,
|
|
@@ -1564,26 +1560,20 @@ struct platform_device s3c64xx_device_spi1 = {
|
|
|
},
|
|
|
};
|
|
|
|
|
|
-void __init s3c64xx_spi1_set_platdata(struct s3c64xx_spi_info *pd,
|
|
|
- int src_clk_nr, int num_cs)
|
|
|
+void __init s3c64xx_spi1_set_platdata(int (*cfg_gpio)(void), int src_clk_nr,
|
|
|
+ int num_cs)
|
|
|
{
|
|
|
- if (!pd) {
|
|
|
- pr_err("%s:Need to pass platform data\n", __func__);
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
/* Reject invalid configuration */
|
|
|
if (!num_cs || src_clk_nr < 0) {
|
|
|
pr_err("%s: Invalid SPI configuration\n", __func__);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- pd->num_cs = num_cs;
|
|
|
- pd->src_clk_nr = src_clk_nr;
|
|
|
- if (!pd->cfg_gpio)
|
|
|
- pd->cfg_gpio = s3c64xx_spi1_cfg_gpio;
|
|
|
+ pd.num_cs = num_cs;
|
|
|
+ pd.src_clk_nr = src_clk_nr;
|
|
|
+ pd.cfg_gpio = (cfg_gpio) ? cfg_gpio : s3c64xx_spi1_cfg_gpio;
|
|
|
|
|
|
- s3c_set_platdata(pd, sizeof(*pd), &s3c64xx_device_spi1);
|
|
|
+ s3c_set_platdata(&pd, sizeof(pd), &s3c64xx_device_spi1);
|
|
|
}
|
|
|
#endif /* CONFIG_S3C64XX_DEV_SPI1 */
|
|
|
|
|
@@ -1596,7 +1586,7 @@ static struct resource s3c64xx_spi2_resource[] = {
|
|
|
};
|
|
|
|
|
|
struct platform_device s3c64xx_device_spi2 = {
|
|
|
- .name = "s3c64xx-spi",
|
|
|
+ .name = "s3c6410-spi",
|
|
|
.id = 2,
|
|
|
.num_resources = ARRAY_SIZE(s3c64xx_spi2_resource),
|
|
|
.resource = s3c64xx_spi2_resource,
|
|
@@ -1606,13 +1596,10 @@ struct platform_device s3c64xx_device_spi2 = {
|
|
|
},
|
|
|
};
|
|
|
|
|
|
-void __init s3c64xx_spi2_set_platdata(struct s3c64xx_spi_info *pd,
|
|
|
- int src_clk_nr, int num_cs)
|
|
|
+void __init s3c64xx_spi2_set_platdata(int (*cfg_gpio)(void), int src_clk_nr,
|
|
|
+ int num_cs)
|
|
|
{
|
|
|
- if (!pd) {
|
|
|
- pr_err("%s:Need to pass platform data\n", __func__);
|
|
|
- return;
|
|
|
- }
|
|
|
+ struct s3c64xx_spi_info pd;
|
|
|
|
|
|
/* Reject invalid configuration */
|
|
|
if (!num_cs || src_clk_nr < 0) {
|
|
@@ -1620,11 +1607,10 @@ void __init s3c64xx_spi2_set_platdata(struct s3c64xx_spi_info *pd,
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- pd->num_cs = num_cs;
|
|
|
- pd->src_clk_nr = src_clk_nr;
|
|
|
- if (!pd->cfg_gpio)
|
|
|
- pd->cfg_gpio = s3c64xx_spi2_cfg_gpio;
|
|
|
+ pd.num_cs = num_cs;
|
|
|
+ pd.src_clk_nr = src_clk_nr;
|
|
|
+ pd.cfg_gpio = (cfg_gpio) ? cfg_gpio : s3c64xx_spi2_cfg_gpio;
|
|
|
|
|
|
- s3c_set_platdata(pd, sizeof(*pd), &s3c64xx_device_spi2);
|
|
|
+ s3c_set_platdata(&pd, sizeof(pd), &s3c64xx_device_spi2);
|
|
|
}
|
|
|
#endif /* CONFIG_S3C64XX_DEV_SPI2 */
|