diff options
Diffstat (limited to 'arch/arm/plat-samsung/devs.c')
| -rw-r--r-- | arch/arm/plat-samsung/devs.c | 60 | 
1 files changed, 23 insertions, 37 deletions
diff --git a/arch/arm/plat-samsung/devs.c b/arch/arm/plat-samsung/devs.c index 6303974c2ee..74e31ce3553 100644 --- a/arch/arm/plat-samsung/devs.c +++ b/arch/arm/plat-samsung/devs.c @@ -1513,7 +1513,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, @@ -1523,13 +1523,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) { @@ -1537,12 +1534,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 */ @@ -1555,7 +1551,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, @@ -1565,26 +1561,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 */ @@ -1597,7 +1587,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, @@ -1607,13 +1597,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) { @@ -1621,11 +1608,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 */  |