aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-s3c2410/include/mach/spi-gpio.h8
-rw-r--r--arch/arm/mach-s3c2410/mach-gta01.c3
-rw-r--r--arch/arm/mach-s3c2442/mach-gta02.c34
-rw-r--r--arch/arm/mach-s3c6410/include/mach/spi-gpio.h8
-rw-r--r--arch/arm/mach-s3c6410/mach-om-gta03.c6
-rw-r--r--drivers/mfd/glamo/glamo-spi-gpio.c16
-rw-r--r--drivers/spi/spi_s3c24xx_gpio.c17
-rw-r--r--drivers/spi/spi_s3c64xx_gpio.c16
-rw-r--r--include/linux/spi/glamo.h3
9 files changed, 25 insertions, 86 deletions
diff --git a/arch/arm/mach-s3c2410/include/mach/spi-gpio.h b/arch/arm/mach-s3c2410/include/mach/spi-gpio.h
index 2506b4ca028..0ff8949b244 100644
--- a/arch/arm/mach-s3c2410/include/mach/spi-gpio.h
+++ b/arch/arm/mach-s3c2410/include/mach/spi-gpio.h
@@ -22,14 +22,6 @@ struct s3c2410_spigpio_info {
int bus_num;
int non_blocking_transfer;
- /*
- * FIXME: board_size and board_info DO NOT belong here.
- * These were already removed upstream... but we still rely on them
- * so leave for now and revisit this.
- */
- unsigned long board_size;
- struct spi_board_info *board_info;
-
void (*chip_select)(struct s3c2410_spigpio_info *spi, int csid, int cs);
};
diff --git a/arch/arm/mach-s3c2410/mach-gta01.c b/arch/arm/mach-s3c2410/mach-gta01.c
index d424211b9d6..f1ceeec0508 100644
--- a/arch/arm/mach-s3c2410/mach-gta01.c
+++ b/arch/arm/mach-s3c2410/mach-gta01.c
@@ -801,8 +801,6 @@ static struct s3c2410_spigpio_info spi_gpio_cfg = {
.pin_clk = S3C2410_GPG7,
.pin_mosi = S3C2410_GPG6,
.pin_miso = S3C2410_GPG5,
- .board_size = ARRAY_SIZE(gta01_spi_board_info),
- .board_info = gta01_spi_board_info,
.chip_select = &spi_gpio_cs,
.num_chipselect = 2, /*** Should be 1 or 2 for gta01? ***/
};
@@ -983,6 +981,7 @@ static void __init gta01_machine_init(void)
}
mangle_pmu_pdata_by_system_rev();
i2c_register_board_info(0, gta01_i2c_devs, ARRAY_SIZE(gta01_i2c_devs));
+ spi_register_board_info(gta01_spi_board_info, ARRAY_SIZE(gta01_spi_board_info));
platform_device_register(&gta01_led_dev);
diff --git a/arch/arm/mach-s3c2442/mach-gta02.c b/arch/arm/mach-s3c2442/mach-gta02.c
index 55f9d946d4a..bdd357fde53 100644
--- a/arch/arm/mach-s3c2442/mach-gta02.c
+++ b/arch/arm/mach-s3c2442/mach-gta02.c
@@ -1076,19 +1076,6 @@ const struct jbt6k74_platform_data jbt6k74_pdata = {
.probe_completed = gta02_jbt6k74_probe_completed,
};
-static struct spi_board_info gta02_spi_board_info[] = {
- {
- .modalias = "jbt6k74",
- /* platform_data */
- .platform_data = &jbt6k74_pdata,
- /* controller_data */
- /* irq */
- .max_speed_hz = 100 * 1000,
- .bus_num = 2,
- /* chip_select */
- },
-};
-
#if 0 /* currently this is not used and we use gpio spi */
static struct glamo_spi_info glamo_spi_cfg = {
.board_size = ARRAY_SIZE(gta02_spi_board_info),
@@ -1101,8 +1088,7 @@ static struct glamo_spigpio_info glamo_spigpio_cfg = {
.pin_mosi = GLAMO_GPIO11_OUTPUT,
.pin_cs = GLAMO_GPIO12_OUTPUT,
.pin_miso = 0,
- .board_size = ARRAY_SIZE(gta02_spi_board_info),
- .board_info = gta02_spi_board_info,
+ .bus_num = 2,
};
/*----------- SPI: Accelerometers attached to SPI of s3c244x ----------------- */
@@ -1159,7 +1145,17 @@ struct lis302dl_platform_data lis302_pdata_bottom = {
.lis302dl_suspend_io = gta02_lis302dl_suspend_io,
};
-static struct spi_board_info lis302dl_spi_board_info[] = {
+static struct spi_board_info gta02_spi_board_info[] = {
+ {
+ .modalias = "jbt6k74",
+ /* platform_data */
+ .platform_data = &jbt6k74_pdata,
+ /* controller_data */
+ /* irq */
+ .max_speed_hz = 100 * 1000,
+ .bus_num = 2,
+ /* chip_select */
+ },
{
.modalias = "lis302dl",
/* platform_data */
@@ -1181,6 +1177,7 @@ static struct spi_board_info lis302dl_spi_board_info[] = {
.bus_num = 3,
.chip_select = 1,
},
+
};
static void gta02_lis302_chip_select(struct s3c2410_spigpio_info *info, int csid, int cs)
@@ -1225,8 +1222,7 @@ static struct s3c2410_spigpio_info gta02_spigpio_cfg = {
.pin_clk = S3C2410_GPG7,
.pin_mosi = S3C2410_GPG6,
.pin_miso = S3C2410_GPG5,
- .board_size = ARRAY_SIZE(lis302dl_spi_board_info),
- .board_info = lis302dl_spi_board_info,
+ .bus_num = 3,
.num_chipselect = 2,
.chip_select = gta02_lis302_chip_select,
.non_blocking_transfer = 1,
@@ -1620,6 +1616,8 @@ static void __init gta02_machine_init(void)
mangle_glamo_res_by_system_rev();
i2c_register_board_info(0, gta02_i2c_devs, ARRAY_SIZE(gta02_i2c_devs));
+ spi_register_board_info(gta02_spi_board_info,
+ ARRAY_SIZE(gta02_spi_board_info));
mangle_pmu_pdata_by_system_rev();
diff --git a/arch/arm/mach-s3c6410/include/mach/spi-gpio.h b/arch/arm/mach-s3c6410/include/mach/spi-gpio.h
index 35716ff0a1e..46ad9d67b24 100644
--- a/arch/arm/mach-s3c6410/include/mach/spi-gpio.h
+++ b/arch/arm/mach-s3c6410/include/mach/spi-gpio.h
@@ -21,14 +21,6 @@ struct s3c64xx_spigpio_info {
int bus_num;
int num_chipselect;
- /*
- * FIXME: board_size and board_info DO NOT belong here.
- * These were already removed upstream... but we still rely on them
- * so leave for now and revisit this.
- */
- unsigned long board_size;
- struct spi_board_info *board_info;
-
void (*chip_select)(struct s3c64xx_spigpio_info *spi, int csid, int cs);
};
diff --git a/arch/arm/mach-s3c6410/mach-om-gta03.c b/arch/arm/mach-s3c6410/mach-om-gta03.c
index 4f90239c646..4f4178a792f 100644
--- a/arch/arm/mach-s3c6410/mach-om-gta03.c
+++ b/arch/arm/mach-s3c6410/mach-om-gta03.c
@@ -998,10 +998,9 @@ static struct s3c64xx_spigpio_info spi_gpio_cfg = {
.pin_clk = GTA03_GPIO_LCM_CLK,
.pin_mosi = GTA03_GPIO_LCM_MOSI,
/* no pinout to MISO */
- .board_size = ARRAY_SIZE(gta03_spi_board_info),
- .board_info = gta03_spi_board_info,
.chip_select = &spi_gpio_cs,
.num_chipselect = 1,
+ .bus_num = 1,
};
struct platform_device gta03_device_spi_lcm = {
@@ -1044,6 +1043,9 @@ static void __init om_gta03_machine_init(void)
i2c_register_board_info(0, om_gta03_i2c_devs,
ARRAY_SIZE(om_gta03_i2c_devs));
+ spi_register_board_info(gta03_spi_board_info,
+ ARRAY_SIZE(gta03_spi_board_info));
+
platform_add_devices(om_gta03_devices, ARRAY_SIZE(om_gta03_devices));
/* Register the HDQ and vibrator as children of pwm device */
diff --git a/drivers/mfd/glamo/glamo-spi-gpio.c b/drivers/mfd/glamo/glamo-spi-gpio.c
index 2bf4e38ca8e..b92e48a17b7 100644
--- a/drivers/mfd/glamo/glamo-spi-gpio.c
+++ b/drivers/mfd/glamo/glamo-spi-gpio.c
@@ -44,7 +44,7 @@ struct glamo_spigpio {
static inline struct glamo_spigpio *to_sg(struct spi_device *spi)
{
- return spi->controller_data;
+ return dev_get_drvdata(&spi->master->dev);
}
static inline void setsck(struct spi_device *dev, int on)
@@ -132,7 +132,6 @@ static int glamo_spigpio_probe(struct platform_device *pdev)
struct spi_master *master;
struct glamo_spigpio *sp;
int ret;
- int i;
master = spi_alloc_master(&pdev->dev, sizeof(struct glamo_spigpio));
if (master == NULL) {
@@ -188,21 +187,12 @@ static int glamo_spigpio_probe(struct platform_device *pdev)
sp->bitbang.master->setup = glamo_spi_setup;
#endif
+ dev_set_drvdata(&sp->master->dev, sp);
+
ret = spi_bitbang_start(&sp->bitbang);
if (ret)
goto err_no_bitbang;
- /* register the chips to go with the board */
-
- for (i = 0; i < sp->info->board_size; i++) {
- dev_info(&pdev->dev, "registering %p: %s\n",
- &sp->info->board_info[i],
- sp->info->board_info[i].modalias);
-
- sp->info->board_info[i].controller_data = sp;
- spi_new_device(master, sp->info->board_info + i);
- }
-
return 0;
err_no_bitbang:
diff --git a/drivers/spi/spi_s3c24xx_gpio.c b/drivers/spi/spi_s3c24xx_gpio.c
index 582f20262a9..025f651b1bd 100644
--- a/drivers/spi/spi_s3c24xx_gpio.c
+++ b/drivers/spi/spi_s3c24xx_gpio.c
@@ -100,7 +100,6 @@ static int s3c2410_spigpio_probe(struct platform_device *dev)
struct spi_master *master;
struct s3c2410_spigpio *sp;
int ret;
- int i;
master = spi_alloc_master(&dev->dev, sizeof(struct s3c2410_spigpio));
if (master == NULL) {
@@ -147,22 +146,6 @@ static int s3c2410_spigpio_probe(struct platform_device *dev)
if (ret)
goto err_no_bitbang;
- /* register the chips to go with the board */
-
- for (i = 0; i < sp->info->board_size; i++) {
- struct spi_device *spidev;
-
- dev_info(&dev->dev, "registering %p: %s\n",
- &sp->info->board_info[i],
- sp->info->board_info[i].modalias);
-
- sp->info->board_info[i].controller_data = sp;
- spidev = spi_new_device(master, sp->info->board_info + i);
- if (spidev)
- spidev->max_speed_hz =
- sp->info->board_info[i].max_speed_hz;
- }
-
return 0;
err_no_bitbang:
diff --git a/drivers/spi/spi_s3c64xx_gpio.c b/drivers/spi/spi_s3c64xx_gpio.c
index 9ade147e80f..9953959476a 100644
--- a/drivers/spi/spi_s3c64xx_gpio.c
+++ b/drivers/spi/spi_s3c64xx_gpio.c
@@ -101,7 +101,6 @@ static int s3c64xx_spigpio_probe(struct platform_device *dev)
struct s3c64xx_spigpio *spi;
int ret;
- int i;
master = spi_alloc_master(&dev->dev, sizeof(struct s3c64xx_spigpio));
if (master == NULL) {
@@ -136,21 +135,6 @@ static int s3c64xx_spigpio_probe(struct platform_device *dev)
if (ret)
goto err_no_bitbang;
- /* register the chips to go with the board */
- for (i = 0; i < spi->info->board_size; i++) {
- struct spi_device *spidev;
-
- dev_info(&dev->dev, "registering %p: %s\n",
- &spi->info->board_info[i],
- spi->info->board_info[i].modalias);
-
- spi->info->board_info[i].controller_data = spi;
- spidev = spi_new_device(master, spi->info->board_info + i);
- if (spidev)
- spidev->max_speed_hz =
- spi->info->board_info[i].max_speed_hz;
- }
-
return 0;
err_no_bitbang:
diff --git a/include/linux/spi/glamo.h b/include/linux/spi/glamo.h
index 86419ea7dca..05b8cd75732 100644
--- a/include/linux/spi/glamo.h
+++ b/include/linux/spi/glamo.h
@@ -18,9 +18,8 @@ struct glamo_spigpio_info {
unsigned int pin_mosi;
unsigned int pin_miso;
unsigned int pin_cs;
+ int bus_num;
- unsigned int board_size;
- struct spi_board_info *board_info;
struct glamo_core *glamo;
};