diff mbox series

[v1,3/4] pinctrl: samsung: change PINCTRL_EXYNOS default config logic

Message ID 20210920190350.3860821-4-willmcvicker@google.com (mailing list archive)
State New, archived
Headers show
Series arm64: Kconfig: Update ARCH_EXYNOS select configs | expand

Commit Message

William McVicker Sept. 20, 2021, 7:03 p.m. UTC
Switching the default config logic of PINCTRL_EXYNOS to use "default
y if ARCH_EXYNOS" versus having ARCH_EXYNOS directly select the config.
This gives vendors the flexibility to disable the config or modularize
it in the presence of a generic kernel.

Verified this change doesn't effect the .config.

Signed-off-by: Will McVicker <willmcvicker@google.com>
---
 arch/arm64/Kconfig.platforms    | 1 -
 drivers/pinctrl/samsung/Kconfig | 1 +
 2 files changed, 1 insertion(+), 1 deletion(-)

Comments

Krzysztof Kozlowski Sept. 21, 2021, 7:27 a.m. UTC | #1
On 20/09/2021 21:03, Will McVicker wrote:
> Switching the default config logic of PINCTRL_EXYNOS to use "default
> y if ARCH_EXYNOS" versus having ARCH_EXYNOS directly select the config.
> This gives vendors the flexibility to disable the config or modularize
> it in the presence of a generic kernel.

Reasoning is incorrect. This is an essential driver which CANNOT be
disabled for any kernel having ARCH_EXYNOS or ARCH_S5PV210. You are
trying to prepare it for some out-of-tree code? Please, upstream your
code instead.

> 
> Verified this change doesn't effect the .config.
> 
> Signed-off-by: Will McVicker <willmcvicker@google.com>
> ---
>  arch/arm64/Kconfig.platforms    | 1 -
>  drivers/pinctrl/samsung/Kconfig | 1 +
>  2 files changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
> index 6a006490c9b9..a884e5da8b0f 100644
> --- a/arch/arm64/Kconfig.platforms
> +++ b/arch/arm64/Kconfig.platforms
> @@ -93,7 +93,6 @@ config ARCH_EXYNOS
>  	bool "ARMv8 based Samsung Exynos SoC family"
>  	select HAVE_S3C_RTC if RTC_CLASS
>  	select PINCTRL
> -	select PINCTRL_EXYNOS
>  	select PM_GENERIC_DOMAINS if PM
>  	help
>  	  This enables support for ARMv8 based Samsung Exynos SoC family.
> diff --git a/drivers/pinctrl/samsung/Kconfig b/drivers/pinctrl/samsung/Kconfig
> index dfd805e76862..483acb8ac1f6 100644
> --- a/drivers/pinctrl/samsung/Kconfig
> +++ b/drivers/pinctrl/samsung/Kconfig
> @@ -12,6 +12,7 @@ config PINCTRL_EXYNOS
>  	bool "Pinctrl common driver part for Samsung Exynos SoCs"
>  	depends on OF_GPIO
>  	depends on ARCH_EXYNOS || ARCH_S5PV210 || COMPILE_TEST
> +	default y if ARCH_EXYNOS

default ARCH_EXYNOS || ARCH_S5PV210
... and update all mach Kconfigs.

>  	select PINCTRL_SAMSUNG
>  	select PINCTRL_EXYNOS_ARM if ARM && (ARCH_EXYNOS || ARCH_S5PV210)
>  	select PINCTRL_EXYNOS_ARM64 if ARM64 && ARCH_EXYNOS
> 


Best regards,
Krzysztof
Lee Jones Sept. 21, 2021, 8:18 a.m. UTC | #2
On Tue, 21 Sep 2021, Krzysztof Kozlowski wrote:

> On 20/09/2021 21:03, Will McVicker wrote:
> > Switching the default config logic of PINCTRL_EXYNOS to use "default
> > y if ARCH_EXYNOS" versus having ARCH_EXYNOS directly select the config.
> > This gives vendors the flexibility to disable the config or modularize
> > it in the presence of a generic kernel.
> 
> Reasoning is incorrect. This is an essential driver which CANNOT be
> disabled for any kernel having ARCH_EXYNOS or ARCH_S5PV210. You are
> trying to prepare it for some out-of-tree code? Please, upstream your
> code instead.

No additional code is required to build a generic kernel.  The only
difference would be a vendor's defconfig/fragment.

The aim of this set is to provide more flexibility around how driver
symbols can be configured via Kconfig.  Currently if ARCH_EXYNOS
(which is required if we wish to provide SERIAL_SAMSUNG as an option)
is enabled it blindly enables lots of symbols without recourse.

> > Verified this change doesn't effect the .config.
> > 
> > Signed-off-by: Will McVicker <willmcvicker@google.com>
> > ---
> >  arch/arm64/Kconfig.platforms    | 1 -
> >  drivers/pinctrl/samsung/Kconfig | 1 +
> >  2 files changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
> > index 6a006490c9b9..a884e5da8b0f 100644
> > --- a/arch/arm64/Kconfig.platforms
> > +++ b/arch/arm64/Kconfig.platforms
> > @@ -93,7 +93,6 @@ config ARCH_EXYNOS
> >  	bool "ARMv8 based Samsung Exynos SoC family"
> >  	select HAVE_S3C_RTC if RTC_CLASS
> >  	select PINCTRL
> > -	select PINCTRL_EXYNOS
> >  	select PM_GENERIC_DOMAINS if PM
> >  	help
> >  	  This enables support for ARMv8 based Samsung Exynos SoC family.
> > diff --git a/drivers/pinctrl/samsung/Kconfig b/drivers/pinctrl/samsung/Kconfig
> > index dfd805e76862..483acb8ac1f6 100644
> > --- a/drivers/pinctrl/samsung/Kconfig
> > +++ b/drivers/pinctrl/samsung/Kconfig
> > @@ -12,6 +12,7 @@ config PINCTRL_EXYNOS
> >  	bool "Pinctrl common driver part for Samsung Exynos SoCs"
> >  	depends on OF_GPIO
> >  	depends on ARCH_EXYNOS || ARCH_S5PV210 || COMPILE_TEST
> > +	default y if ARCH_EXYNOS
> 
> default ARCH_EXYNOS || ARCH_S5PV210
> ... and update all mach Kconfigs.
> 
> >  	select PINCTRL_SAMSUNG
> >  	select PINCTRL_EXYNOS_ARM if ARM && (ARCH_EXYNOS || ARCH_S5PV210)
> >  	select PINCTRL_EXYNOS_ARM64 if ARM64 && ARCH_EXYNOS
> > 
> 
> 
> Best regards,
> Krzysztof
Linus Walleij Sept. 23, 2021, 9:52 p.m. UTC | #3
On Mon, Sep 20, 2021 at 9:04 PM Will McVicker <willmcvicker@google.com> wrote:

> Switching the default config logic of PINCTRL_EXYNOS to use "default
> y if ARCH_EXYNOS" versus having ARCH_EXYNOS directly select the config.
> This gives vendors the flexibility to disable the config or modularize
> it in the presence of a generic kernel.
>
> Verified this change doesn't effect the .config.
>
> Signed-off-by: Will McVicker <willmcvicker@google.com>

Krzysztof is collecting and sending pull requests for the Samsung
pinctrl portions so I expect him to merge this once you reach consensus.

Yours,
Linus Walleij
diff mbox series

Patch

diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms
index 6a006490c9b9..a884e5da8b0f 100644
--- a/arch/arm64/Kconfig.platforms
+++ b/arch/arm64/Kconfig.platforms
@@ -93,7 +93,6 @@  config ARCH_EXYNOS
 	bool "ARMv8 based Samsung Exynos SoC family"
 	select HAVE_S3C_RTC if RTC_CLASS
 	select PINCTRL
-	select PINCTRL_EXYNOS
 	select PM_GENERIC_DOMAINS if PM
 	help
 	  This enables support for ARMv8 based Samsung Exynos SoC family.
diff --git a/drivers/pinctrl/samsung/Kconfig b/drivers/pinctrl/samsung/Kconfig
index dfd805e76862..483acb8ac1f6 100644
--- a/drivers/pinctrl/samsung/Kconfig
+++ b/drivers/pinctrl/samsung/Kconfig
@@ -12,6 +12,7 @@  config PINCTRL_EXYNOS
 	bool "Pinctrl common driver part for Samsung Exynos SoCs"
 	depends on OF_GPIO
 	depends on ARCH_EXYNOS || ARCH_S5PV210 || COMPILE_TEST
+	default y if ARCH_EXYNOS
 	select PINCTRL_SAMSUNG
 	select PINCTRL_EXYNOS_ARM if ARM && (ARCH_EXYNOS || ARCH_S5PV210)
 	select PINCTRL_EXYNOS_ARM64 if ARM64 && ARCH_EXYNOS