diff mbox

[03/10] gpio: samsung: move gpio-samsung driver back to platform code

Message ID 1448467615-447097-4-git-send-email-arnd@arndb.de (mailing list archive)
State New, archived
Headers show

Commit Message

Arnd Bergmann Nov. 25, 2015, 4:06 p.m. UTC
The gpio-samsung driver is special in the sense that it
interacts directly in multiple ways with the legacy platform
code for the s3c24xx and s3c64xx platforms. In contrast,
all devicetree based machines for Samsung, including the
ones on those two SoC families use a different driver.

The header files that define the interface between the platform
code and the gpio driver are not visible when building a
kernel for ARCH_MULTIPLATFORM, which prevents us from
turning on this option for s3c64xx.

To work around this, we now move the driver back into platform
code, from where it was originally moved to as part of commit
1b39d5f2cc5c28 ("gpio/samsung: gpio-samsung.c to support
Samsung GPIOs").

The long-term plan for this driver would be to remove it
entirely, after all Samsung machines have been converted
over to boot from DT, but there is currently no timeline
for when that might happen.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 arch/arm/plat-samsung/Kconfig                          | 3 +++
 arch/arm/plat-samsung/Makefile                         | 2 ++
 {drivers/gpio => arch/arm/plat-samsung}/gpio-samsung.c | 0
 drivers/gpio/Kconfig                                   | 7 -------
 drivers/gpio/Makefile                                  | 1 -
 5 files changed, 5 insertions(+), 8 deletions(-)
 rename {drivers/gpio => arch/arm/plat-samsung}/gpio-samsung.c (100%)

Comments

Krzysztof Kozlowski Dec. 1, 2015, 12:34 a.m. UTC | #1
On 26.11.2015 01:06, Arnd Bergmann wrote:
> The gpio-samsung driver is special in the sense that it
> interacts directly in multiple ways with the legacy platform
> code for the s3c24xx and s3c64xx platforms. In contrast,
> all devicetree based machines for Samsung, including the
> ones on those two SoC families use a different driver.
> 
> The header files that define the interface between the platform
> code and the gpio driver are not visible when building a
> kernel for ARCH_MULTIPLATFORM, which prevents us from
> turning on this option for s3c64xx.
> 
> To work around this, we now move the driver back into platform
> code, from where it was originally moved to as part of commit
> 1b39d5f2cc5c28 ("gpio/samsung: gpio-samsung.c to support
> Samsung GPIOs").
> 
> The long-term plan for this driver would be to remove it
> entirely, after all Samsung machines have been converted
> over to boot from DT, but there is currently no timeline
> for when that might happen.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  arch/arm/plat-samsung/Kconfig                          | 3 +++
>  arch/arm/plat-samsung/Makefile                         | 2 ++
>  {drivers/gpio => arch/arm/plat-samsung}/gpio-samsung.c | 0
>  drivers/gpio/Kconfig                                   | 7 -------
>  drivers/gpio/Makefile                                  | 1 -
>  5 files changed, 5 insertions(+), 8 deletions(-)
>  rename {drivers/gpio => arch/arm/plat-samsung}/gpio-samsung.c (100%)
> 
> diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
> index 57729b915003..83697414bfa0 100644
> --- a/arch/arm/plat-samsung/Kconfig
> +++ b/arch/arm/plat-samsung/Kconfig
> @@ -294,6 +294,9 @@ config SAMSUNG_WDT_RESET
>  	  Compile support for system restart by triggering watchdog reset.
>  	  Used on SoCs that do not provide dedicated reset control.
>  
> +config GPIO_SAMSUNG
> +	def_bool SAMSUNG_ATAGS
> +

I think this should be put inside "if SAMSUNG_ATAGS" section, just
before SAMSUNG_PM_GPIO (with default=y?). It makes more consistent with
rest of the options depending on ATAGS.

Rest seems fine:
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Best regards,
Krzysztof

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Arnd Bergmann Dec. 1, 2015, 3:33 p.m. UTC | #2
On Tuesday 01 December 2015 09:34:18 Krzysztof Kozlowski wrote:
> On 26.11.2015 01:06, Arnd Bergmann wrote:
> > diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
> > index 57729b915003..83697414bfa0 100644
> > --- a/arch/arm/plat-samsung/Kconfig
> > +++ b/arch/arm/plat-samsung/Kconfig
> > @@ -294,6 +294,9 @@ config SAMSUNG_WDT_RESET
> >         Compile support for system restart by triggering watchdog reset.
> >         Used on SoCs that do not provide dedicated reset control.
> >  
> > +config GPIO_SAMSUNG
> > +     def_bool SAMSUNG_ATAGS
> > +
> 
> I think this should be put inside "if SAMSUNG_ATAGS" section, just
> before SAMSUNG_PM_GPIO (with default=y?). It makes more consistent with
> rest of the options depending on ATAGS.

Good idea, changed that now.

> Rest seems fine:
> Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Thanks,

	Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
index 57729b915003..83697414bfa0 100644
--- a/arch/arm/plat-samsung/Kconfig
+++ b/arch/arm/plat-samsung/Kconfig
@@ -294,6 +294,9 @@  config SAMSUNG_WDT_RESET
 	  Compile support for system restart by triggering watchdog reset.
 	  Used on SoCs that do not provide dedicated reset control.
 
+config GPIO_SAMSUNG
+	def_bool SAMSUNG_ATAGS
+
 config DEBUG_S3C_UART
 	depends on PLAT_SAMSUNG
 	int
diff --git a/arch/arm/plat-samsung/Makefile b/arch/arm/plat-samsung/Makefile
index 8c911760f55f..aeb19e3288b9 100644
--- a/arch/arm/plat-samsung/Makefile
+++ b/arch/arm/plat-samsung/Makefile
@@ -21,6 +21,8 @@  obj-$(CONFIG_SAMSUNG_ATAGS)	+= platformdata.o
 obj-$(CONFIG_SAMSUNG_ATAGS)	+= devs.o
 obj-$(CONFIG_SAMSUNG_ATAGS)	+= dev-uart.o
 
+obj-$(CONFIG_GPIO_SAMSUNG)     += gpio-samsung.o
+
 # PM support
 
 obj-$(CONFIG_PM_SLEEP)		+= pm-common.o
diff --git a/drivers/gpio/gpio-samsung.c b/arch/arm/plat-samsung/gpio-samsung.c
similarity index 100%
rename from drivers/gpio/gpio-samsung.c
rename to arch/arm/plat-samsung/gpio-samsung.c
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index b18bea08ff25..5e4e9f5c8a64 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -344,13 +344,6 @@  config GPIO_RCAR
 	help
 	  Say yes here to support GPIO on Renesas R-Car SoCs.
 
-config GPIO_SAMSUNG
-	bool
-	depends on PLAT_SAMSUNG
-	help
-	  Legacy GPIO support. Use only for platforms without support for
-	  pinctrl.
-
 config GPIO_SPEAR_SPICS
 	bool "ST SPEAr13xx SPI Chip Select as GPIO support"
 	depends on PLAT_SPEAR
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
index 986dbd838cea..8555e947372e 100644
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -79,7 +79,6 @@  obj-$(CONFIG_GPIO_PXA)		+= gpio-pxa.o
 obj-$(CONFIG_GPIO_RC5T583)	+= gpio-rc5t583.o
 obj-$(CONFIG_GPIO_RDC321X)	+= gpio-rdc321x.o
 obj-$(CONFIG_GPIO_RCAR)		+= gpio-rcar.o
-obj-$(CONFIG_GPIO_SAMSUNG)	+= gpio-samsung.o
 obj-$(CONFIG_ARCH_SA1100)	+= gpio-sa1100.o
 obj-$(CONFIG_GPIO_SCH)		+= gpio-sch.o
 obj-$(CONFIG_GPIO_SCH311X)	+= gpio-sch311x.o