Skip to contentSkip to conversation

remove spi-s3c24xx-gpio driver

PATCH New Peter Korsgaard 4 participants 13 messages Jun 28, 2011 – Jul 5, 2011

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

cover remove spi-s3c24xx-gpio driver

The spi-s3c24xx-gpio driver is functionally equivalent to the spi-gpio driver (but precedes it). The driver has seen very little development since it got added back in 2006, and there's only 2 in-tree users of it.

This patch series moves the remaining users to the spi-gpio driver and then finally removes the driver.

Compile tested only as I don't have access to the hardware.

 arch/arm/mach-s3c2410/include/mach/spi-gpio.h |   28 ----
 arch/arm/mach-s3c2410/mach-qt2410.c           |   34 +----
 arch/arm/mach-s3c2412/mach-jive.c             |   41 ++----
 arch/arm/mach-s3c2440/mach-gta02.c            |    1 -
 drivers/spi/Kconfig                           |   10 --
 drivers/spi/Makefile                          |    1 -
 drivers/spi/spi-s3c24xx-gpio.c                |  200 -------------------------
 7 files changed, 22 insertions(+), 293 deletions(-)

--
Bye, Peter Korsgaard

#1 lore raw

PATCH 1/5 mach-jive: convert to spi_gpio

Rather than the deprecated spi_s3c24xx_gpio driver. Compile tested only.

---
 arch/arm/mach-s3c2412/mach-jive.c |   41 ++++++++++++------------------------
 1 files changed, 14 insertions(+), 27 deletions(-)
arch/arm/mach-s3c2412/mach-jive.c +14 -27
index 85dcaeb..5eeb475 100644
@@ -25,6 +25,7 @@
 #include <video/ili9320.h>
 
 #include <linux/spi/spi.h>
+#include <linux/spi/spi_gpio.h>
 
 #include <asm/mach/arch.h>
 #include <asm/mach/map.h>
@@ -38,7 +39,6 @@
 #include <mach/regs-gpio.h>
 #include <mach/regs-mem.h>
 #include <mach/regs-lcd.h>
-#include <mach/spi-gpio.h>
 #include <mach/fb.h>
 
 #include <asm/mach-types.h>
@@ -389,45 +389,30 @@ static struct ili9320_platdata jive_lcm_config = {
 
 /* LCD SPI support */
 
-static void jive_lcd_spi_chipselect(struct s3c2410_spigpio_info *spi, int cs)
-{
-	gpio_set_value(S3C2410_GPB(7), cs ? 0 : 1);
-}
-
-static struct s3c2410_spigpio_info jive_lcd_spi = {
-	.bus_num	= 1,
-	.pin_clk	= S3C2410_GPG(8),
-	.pin_mosi	= S3C2410_GPB(8),
-	.num_chipselect	= 1,
-	.chip_select	= jive_lcd_spi_chipselect,
+static struct spi_gpio_platform_data jive_lcd_spi = {
+	.sck		= S3C2410_GPG(8),
+	.mosi		= S3C2410_GPB(8),
+	.miso		= SPI_GPIO_NO_MISO,
 };
 
 static struct platform_device jive_device_lcdspi = {
-	.name		= "spi_s3c24xx_gpio",
+	.name		= "spi-gpio",
 	.id		= 1,
-	.num_resources  = 0,
 	.dev.platform_data = &jive_lcd_spi,
 };
 
-/* WM8750 audio code SPI definition */
 
-static void jive_wm8750_chipselect(struct s3c2410_spigpio_info *spi, int cs)
-{
-	gpio_set_value(S3C2410_GPH(10), cs ? 0 : 1);
-}
+/* WM8750 audio code SPI definition */
 
-static struct s3c2410_spigpio_info jive_wm8750_spi = {
-	.bus_num	= 2,
-	.pin_clk	= S3C2410_GPB(4),
-	.pin_mosi	= S3C2410_GPB(9),
-	.num_chipselect	= 1,
-	.chip_select	= jive_wm8750_chipselect,
+static struct spi_gpio_platform_data jive_wm8750_spi = {
+	.sck		= S3C2410_GPB(4),
+	.mosi		= S3C2410_GPB(9),
+	.miso		= SPI_GPIO_NO_MISO,
 };
 
 static struct platform_device jive_device_wm8750 = {
-	.name		= "spi_s3c24xx_gpio",
+	.name		= "spi-gpio",
 	.id		= 2,
-	.num_resources  = 0,
 	.dev.platform_data = &jive_wm8750_spi,
 };
 
@@ -441,12 +426,14 @@ static struct spi_board_info __initdata jive_spi_devs[] = {
 		.mode		= SPI_MODE_3,	/* CPOL=1, CPHA=1 */
 		.max_speed_hz	= 100000,
 		.platform_data	= &jive_lcm_config,
+		.controller_data = (void *)S3C2410_GPB(7),
 	}, {
 		.modalias	= "WM8750",
 		.bus_num	= 2,
 		.chip_select	= 0,
 		.mode		= SPI_MODE_0,	/* CPOL=0, CPHA=0 */
 		.max_speed_hz	= 100000,
+		.controller_data = (void *)S3C2410_GPH(10),
 	},
 };
 
Signature · 1 line
1.7.5.4
#2 lore raw

PATCH 2/5 mach-qt2410: convert to spi_gpio

In reply to Peter Korsgaard

Rather than the deprecated spi_s3c24xx_gpio driver.

Only compile tested. Notice that the board support seems quite broken as the spi_s3c24xx_gpio platform device name was misspelled and there is no struct spi_board_info defined, but this atleast didn't make it any worse.

---
 arch/arm/mach-s3c2410/mach-qt2410.c |   34 ++++++++--------------------------
 1 files changed, 8 insertions(+), 26 deletions(-)
arch/arm/mach-s3c2410/mach-qt2410.c +8 -26
index e8f49fe..f44f775 100644
@@ -32,7 +32,7 @@
 #include <linux/platform_device.h>
 #include <linux/serial_core.h>
 #include <linux/spi/spi.h>
-#include <linux/spi/spi_bitbang.h>
+#include <linux/spi/spi_gpio.h>
 #include <linux/io.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/nand.h>
@@ -53,8 +53,6 @@
 #include <mach/fb.h>
 #include <plat/nand.h>
 #include <plat/udc.h>
-#include <mach/spi.h>
-#include <mach/spi-gpio.h>
 #include <plat/iic.h>
 
 #include <plat/common-smdk.h>
@@ -216,32 +214,16 @@ static struct platform_device qt2410_led = {
 
 /* SPI */
 
-static void spi_gpio_cs(struct s3c2410_spigpio_info *spi, int cs)
-{
-	switch (cs) {
-	case BITBANG_CS_ACTIVE:
-		gpio_set_value(S3C2410_GPB(5), 0);
-		break;
-	case BITBANG_CS_INACTIVE:
-		gpio_set_value(S3C2410_GPB(5), 1);
-		break;
-	}
-}
-
-static struct s3c2410_spigpio_info spi_gpio_cfg = {
-	.pin_clk	= S3C2410_GPG(7),
-	.pin_mosi	= S3C2410_GPG(6),
-	.pin_miso	= S3C2410_GPG(5),
-	.chip_select	= &spi_gpio_cs,
+static struct spi_gpio_platform_data spi_gpio_cfg = {
+	.sck		= S3C2410_GPG(7),
+	.mosi		= S3C2410_GPG(6),
+	.miso		= S3C2410_GPG(5),
 };
 
-
 static struct platform_device qt2410_spi = {
-	.name		  = "s3c24xx-spi-gpio",
-	.id		  = 1,
-	.dev = {
-		.platform_data = &spi_gpio_cfg,
-	},
+	.name		= "spi-gpio",
+	.id		= 1,
+	.dev.platform_data = &spi_gpio_cfg,
 };
 
 /* Board devices */
Signature · 1 line
1.7.5.4
#3 lore raw

PATCH 3/5 mach-gta2: remove unused spi-gpio.h include

In reply to Peter Korsgaard

Not needed, and the file is going away.

---
 arch/arm/mach-s3c2440/mach-gta02.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
arch/arm/mach-s3c2440/mach-gta02.c +0 -1
index 7166620..c10ddf4 100644
@@ -74,7 +74,6 @@
 #include <mach/fb.h>
 
 #include <mach/spi.h>
-#include <mach/spi-gpio.h>
 #include <plat/usb-control.h>
 #include <mach/regs-mem.h>
 #include <mach/hardware.h>
Signature · 1 line
1.7.5.4
#4 lore raw

PATCH 4/5 spi: remove obsolete spi-s3c24xx-gpio driver

In reply to Peter Korsgaard

It was equivalent to spi-gpio, and there's no longer any in-tree users of it, so get rid of it.

---
 drivers/spi/Kconfig            |   10 --
 drivers/spi/Makefile           |    1 -
 drivers/spi/spi-s3c24xx-gpio.c |  200 ----------------------------------------
 3 files changed, 0 insertions(+), 211 deletions(-)
 delete mode 100644 drivers/spi/spi-s3c24xx-gpio.c
drivers/spi/Kconfig +0 -10
index c013481..9aafa98 100644
@@ -313,16 +313,6 @@ config SPI_S3C24XX_FIQ
 	  no free DMA channels, or when doing transfers that required both
 	  TX and RX data paths.
 
-config SPI_S3C24XX_GPIO
-	tristate "Samsung S3C24XX series SPI by GPIO"
-	depends on ARCH_S3C2410 && EXPERIMENTAL
-	select SPI_BITBANG
-	help
-	  SPI driver for Samsung S3C24XX series ARM SoCs using
-	  GPIO lines to provide the SPI bus. This can be used where
-	  the inbuilt hardware cannot provide the transfer mode, or
-	  where the board is using non hardware connected pins.
-
 config SPI_S3C64XX
 	tristate "Samsung S3C64XX series type SPI"
 	depends on (ARCH_S3C64XX || ARCH_S5P64X0)
drivers/spi/Makefile +0 -1
index b60b04b..61c3261 100644
@@ -44,7 +44,6 @@ obj-$(CONFIG_SPI_PL022)			+= spi-pl022.o
 obj-$(CONFIG_SPI_PPC4xx)		+= spi-ppc4xx.o
 obj-$(CONFIG_SPI_PXA2XX)		+= spi-pxa2xx.o
 obj-$(CONFIG_SPI_PXA2XX_PCI)		+= spi-pxa2xx-pci.o
-obj-$(CONFIG_SPI_S3C24XX_GPIO)		+= spi-s3c24xx-gpio.o
 obj-$(CONFIG_SPI_S3C24XX)		+= spi-s3c24xx-hw.o
 spi-s3c24xx-hw-y			:= spi-s3c24xx.o
 spi-s3c24xx-hw-$(CONFIG_SPI_S3C24XX_FIQ) += spi-s3c24xx-fiq.o
drivers/spi/spi-s3c24xx-gpio.c deleted +0 -200

200 lines not on this page · raw message

Signature · 1 line
1.7.5.4
#5 lore raw

PATCH 5/5 mach-s3c2410: remove unused spi-gpio.h file

In reply to Peter Korsgaard

Not used anymore as the spi_s3c24xx_gpio driver is gone (replaced by the generic spi-gpio).

---
 arch/arm/mach-s3c2410/include/mach/spi-gpio.h |   28 -------------------------
 1 files changed, 0 insertions(+), 28 deletions(-)
 delete mode 100644 arch/arm/mach-s3c2410/include/mach/spi-gpio.h
arch/arm/mach-s3c2410/include/mach/spi-gpio.h deleted +0 -28
deleted file mode 100644
index dcef228..0000000
@@ -1,28 +0,0 @@
-/* arch/arm/mach-s3c2410/include/mach/spi-gpio.h
- *
- * Copyright (c) 2006 Simtec Electronics
- *	Ben Dooks <[email protected]>
- *
- * S3C2410 - SPI Controller platform_device info
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-*/
-
-#ifndef __ASM_ARCH_SPIGPIO_H
-#define __ASM_ARCH_SPIGPIO_H __FILE__
-
-struct s3c2410_spigpio_info {
-	unsigned long		 pin_clk;
-	unsigned long		 pin_mosi;
-	unsigned long		 pin_miso;
-
-	int			 num_chipselect;
-	int			 bus_num;
-
-	void (*chip_select)(struct s3c2410_spigpio_info *spi, int cs);
-};
-
-
-#endif /* __ASM_ARCH_SPIGPIO_H */
Signature · 1 line
1.7.5.4
#6 lore raw

cover remove spi-s3c24xx-gpio driver

In reply to Peter Korsgaard
Quoted 8 lines · Peter Korsgaard

The spi-s3c24xx-gpio driver is functionally equivalent to the spi-gpio driver (but precedes it). The driver has seen very little development since it got added back in 2006, and there's only 2 in-tree users of it.

This patch series moves the remaining users to the spi-gpio driver and then finally removes the driver.

Compile tested only as I don't have access to the hardware.

I've not really got much in the way of access either, however the series looks sane to me.

Quoted 11 lines
 arch/arm/mach-s3c2410/include/mach/spi-gpio.h |   28 ----
 arch/arm/mach-s3c2410/mach-qt2410.c           |   34 +----
 arch/arm/mach-s3c2412/mach-jive.c             |   41 ++----
 arch/arm/mach-s3c2440/mach-gta02.c            |    1 -
 drivers/spi/Kconfig                           |   10 --
 drivers/spi/Makefile                          |    1 -
 drivers/spi/spi-s3c24xx-gpio.c                |  200 -------------------------
 7 files changed, 22 insertions(+), 293 deletions(-)

--
Bye, Peter Korsgaard

Signature · 3 lines
Ben Dooks, ben at fluff.org, http://www.fluff.org/ben/

Large Hadron Colada: A large Pina Colada that makes the universe disappear.
#7 lore raw

cover remove spi-s3c24xx-gpio driver

Quoted 10 lines
Quoted 10 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Ben" == Ben Dooks <[email protected]> writes:

The spi-s3c24xx-gpio driver is functionally equivalent to the spi-gpio driver (but precedes it). The driver has seen very little development since it got added back in 2006, and there's only 2 in-tree users of it.

This patch series moves the remaining users to the spi-gpio driver and then finally removes the driver.

Compile tested only as I don't have access to the hardware.

Ben> I've not really got much in the way of access either, however the Ben> series looks sane to me.

Ben> Acked-by: Ben Dooks <[email protected]>

Great, will you handle the series or should it go through the spi tree?

Signature · 1 line
Bye, Peter Korsgaard
#8 lore raw

cover remove spi-s3c24xx-gpio driver

Quoted 11 lines · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Ben" == Ben Dooks <[email protected]> writes:

?>> The spi-s3c24xx-gpio driver is functionally equivalent to the spi-gpio ?>> driver (but precedes it). The driver has seen very little development ?>> since it got added back in 2006, and there's only 2 in-tree users of it. ?>>
?>> This patch series moves the remaining users to the spi-gpio driver and ?>> then finally removes the driver.
?>>
?>> Compile tested only as I don't have access to the hardware.

Quoted 6 lines

?Ben> I've not really got much in the way of access either, however the ?Ben> series looks sane to me.

?Ben> Acked-by: Ben Dooks <[email protected]>

Great, will you handle the series or should it go through the spi tree?

With the big spi driver rename, it should probably either go via the spi tree, or be put into a topic branch that can be merged by both the spi and samsung trees.

g.

#9 lore raw

cover remove spi-s3c24xx-gpio driver

Quoted 3 lines
Quoted 3 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Grant" == Grant Likely <[email protected]> writes:

Great, will you handle the series or should it go through the spi tree?

Grant> With the big spi driver rename, it should probably either go via the Grant> spi tree, or be put into a topic branch that can be merged by both the Grant> spi and samsung trees.

Both is fine by me. Let me know if you want me to do something.

Signature · 1 line
Bye, Peter Korsgaard
#10 lore raw

cover remove spi-s3c24xx-gpio driver

Quoted 9 lines · Peter Korsgaard
Quoted 3 lines
Quoted 3 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Grant" == Grant Likely <[email protected]> writes:

Great, will you handle the series or should it go through the spi tree?

Grant> With the big spi driver rename, it should probably either go via the Grant> spi tree, or be put into a topic branch that can be merged by both the Grant> spi and samsung trees.

Both is fine by me. Let me know if you want me to do something.

It's pretty minimal arch/arm impact, and it depends on the big rename patch, so why don't I just merge it directly into spi/next without a topic branch.

g.

Quoted 3 lines
Signature · 2 lines
-- 
Bye, Peter Korsgaard
#11 lore raw

cover remove spi-s3c24xx-gpio driver

Quoted 5 lines · Grant Likely
Quoted 3 lines · Peter Korsgaard
Quoted 3 lines
Quoted 3 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Grant" == Grant Likely <[email protected]> writes:

Great, will you handle the series or should it go through the spi

tree?

Quoted 2 lines
Quoted 2 lines

Grant> With the big spi driver rename, it should probably either go via

the

Quoted 1 line
Quoted 1 line

Grant> spi tree, or be put into a topic branch that can be merged by

both the

Quoted 7 lines
Quoted 3 lines

Grant> spi and samsung trees.

Both is fine by me. Let me know if you want me to do something.

It's pretty minimal arch/arm impact, and it depends on the big rename patch, so why don't I just merge it directly into spi/next without a topic branch.

Hi Grant,

I agree with you, it is not expected this makes some conflicts between spi and samsung tree.

I think Ben's ack is enough on this, if required,

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.

#12 lore raw

cover remove spi-s3c24xx-gpio driver

In reply to Peter Korsgaard
Quoted 9 lines · Peter Korsgaard

The spi-s3c24xx-gpio driver is functionally equivalent to the spi-gpio driver (but precedes it). The driver has seen very little development since it got added back in 2006, and there's only 2 in-tree users of it.

This patch series moves the remaining users to the spi-gpio driver and then finally removes the driver.

Compile tested only as I don't have access to the hardware.

Quoted 7 lines
 arch/arm/mach-s3c2410/include/mach/spi-gpio.h |   28 ----
 arch/arm/mach-s3c2410/mach-qt2410.c           |   34 +----
 arch/arm/mach-s3c2412/mach-jive.c             |   41 ++----
 arch/arm/mach-s3c2440/mach-gta02.c            |    1 -
 drivers/spi/Kconfig                           |   10 --
 drivers/spi/Makefile                          |    1 -
 drivers/spi/spi-s3c24xx-gpio.c                |  200 -------------------------

I'm tempted to merge this, just because I like the diffstat. Kgene, what say you?

g.