mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
To: Sascha Hauer <s.hauer@pengutronix.de>, barebox@lists.infradead.org
Subject: Re: [PATCH] pinctrl: fix Kconfig dependencies
Date: Fri, 12 Sep 2014 17:18:18 +0200	[thread overview]
Message-ID: <54130EBA.3080402@gmail.com> (raw)
In-Reply-To: <1410516439-25951-1-git-send-email-s.hauer@pengutronix.de>

On 09/12/2014 12:07 PM, Sascha Hauer wrote:
> - Remove OFDEVICE dependency from PINCTRL. It won't do
>    much then, so add a comment to Kconfig when PINCTRL is
>    selected without OFDEVICE
> - Let Architectures only select PINCTRL instead of the
>    particular driver. Change the drivers to 'default y if $SOC'
>    to make sure the drivers are still compiled if the corresponding
>    SoC is selected
>
> This fixes Kconfig warnings like:
>
> warning: (PINCTRL_ARMADA_370 && PINCTRL_ARMADA_XP && PINCTRL_DOVE && PINCTRL_KIRKWOOD) selects PINCTRL which has unmet direct dependencies (OFDEVICE)
>
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
>   arch/arm/mach-mvebu/Kconfig        |  8 ++++----
>   arch/arm/mach-tegra/Kconfig        |  6 +++---
>   drivers/pinctrl/Kconfig            | 24 ++++++++++++++++--------
>   drivers/pinctrl/mvebu/Kconfig      |  8 ++++----
>   drivers/pinctrl/pinctrl-rockchip.c |  3 +++
>   drivers/pinctrl/pinctrl.c          |  6 ++++++
>   6 files changed, 36 insertions(+), 19 deletions(-)

For mvebu, you could also move 'select PINCTRL' to config MACH_MVEBU.
I guess the same is also true for Tegra?

But that is just a nit, so

Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>

Thanks!

> diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
> index 3270f92..111816a 100644
> --- a/arch/arm/mach-mvebu/Kconfig
> +++ b/arch/arm/mach-mvebu/Kconfig
> @@ -14,25 +14,25 @@ config ARCH_ARMADA_370
>   	bool "Armada 370"
>   	select CPU_V7
>   	select CLOCKSOURCE_MVEBU
> -	select PINCTRL_ARMADA_370
> +	select PINCTRL
>
>   config ARCH_ARMADA_XP
>   	bool "Armada XP"
>   	select CPU_V7
>   	select CLOCKSOURCE_MVEBU
> -	select PINCTRL_ARMADA_XP
> +	select PINCTRL
>
>   config ARCH_DOVE
>   	bool "Dove 88AP510"
>   	select CPU_V7
>   	select CLOCKSOURCE_ORION
> -	select PINCTRL_DOVE
> +	select PINCTRL
>
>   config ARCH_KIRKWOOD
>   	bool "Kirkwood"
>   	select CPU_FEROCEON
>   	select CLOCKSOURCE_ORION
> -	select PINCTRL_KIRKWOOD
> +	select PINCTRL
>
>   endchoice
>
> diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
> index 7214eca..ced2e6d 100644
> --- a/arch/arm/mach-tegra/Kconfig
> +++ b/arch/arm/mach-tegra/Kconfig
> @@ -44,15 +44,15 @@ endchoice
>
>   config ARCH_TEGRA_2x_SOC
>   	bool
> -	select PINCTRL_TEGRA20
> +	select PINCTRL
>
>   config ARCH_TEGRA_3x_SOC
>   	bool
> -	select PINCTRL_TEGRA30
> +	select PINCTRL
>
>   config ARCH_TEGRA_124_SOC
>   	bool
> -	select PINCTRL_TEGRA30
> +	select PINCTRL
>
>   menu "select Tegra boards to be built"
>
> diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
> index 398b931..770fb2d 100644
> --- a/drivers/pinctrl/Kconfig
> +++ b/drivers/pinctrl/Kconfig
> @@ -1,20 +1,21 @@
>   config PINCTRL
>   	bool "Pin controller core support"
> -	depends on OFDEVICE
> +	default y if OFDEVICE
>   	help
>   	  Pincontrollers allow to setup the iomux unit of SoCs. The pin
>   	  controller core is needed when pin muxing shall be configured
>   	  from the devicetree. Legacy drivers here may not need this core
>   	  support but instead provide their own SoC specific APIs
>
> +# The following drivers are needed even without PINCTRL because
> +# the either have a legacy iomux interface or also register a gpio
> +# chip.
>   config PINCTRL_AT91
> -	select PINCTRL if OFDEVICE
>   	bool
>   	help
>   	    The pinmux controller found on AT91 SoCs.
>
>   config PINCTRL_IMX_IOMUX_V1
> -	select PINCTRL if OFDEVICE
>   	bool
>   	help
>   	  This iomux controller is found on i.MX1,21,27.
> @@ -25,13 +26,18 @@ config PINCTRL_IMX_IOMUX_V2
>   	  This iomux controller is found on i.MX31.
>
>   config PINCTRL_IMX_IOMUX_V3
> -	select PINCTRL if OFDEVICE
>   	bool
>   	help
>   	  This iomux controller is found on i.MX25,35,51,53,6.
>
> +if PINCTRL
> +
> +if !OFDEVICE
> +comment "OFDEVICE is not enabled."
> +comment "Without device tree support PINCTRL won't do anything"
> +endif
> +
>   config PINCTRL_ROCKCHIP
> -	select PINCTRL
>   	select GPIO_GENERIC
>   	select MFD_SYSCON
>   	bool
> @@ -39,19 +45,21 @@ config PINCTRL_ROCKCHIP
>   	  The pinmux controller found on Rockchip SoCs.
>
>   config PINCTRL_SINGLE
> -	select PINCTRL
>   	bool "pinctrl single"
>
>   config PINCTRL_TEGRA20
> -	select PINCTRL
>   	bool
> +	default y if ARCH_TEGRA_2x_SOC
>   	help
>   	  The pinmux controller found on the Tegra 20 line of SoCs.
>
>   config PINCTRL_TEGRA30
> -	select PINCTRL
>   	bool
> +	default y if ARCH_TEGRA_3x_SOC
> +	default y if ARCH_TEGRA_124_SOC
>   	help
>   	  The pinmux controller found on the Tegra 30+ line of SoCs.
>
>   source drivers/pinctrl/mvebu/Kconfig
> +
> +endif
> diff --git a/drivers/pinctrl/mvebu/Kconfig b/drivers/pinctrl/mvebu/Kconfig
> index be154ed..af20cad 100644
> --- a/drivers/pinctrl/mvebu/Kconfig
> +++ b/drivers/pinctrl/mvebu/Kconfig
> @@ -1,15 +1,15 @@
>   config PINCTRL_ARMADA_370
> +	default y if ARCH_ARMADA_370
>   	bool
> -	select PINCTRL
>
>   config PINCTRL_ARMADA_XP
>   	bool
> -	select PINCTRL
> +	default y if ARCH_ARMADA_XP
>
>   config PINCTRL_DOVE
>   	bool
> -	select PINCTRL
> +	default y if ARCH_DOVE
>
>   config PINCTRL_KIRKWOOD
>   	bool
> -	select PINCTRL
> +	default y if ARCH_KIRKWOOD
> diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
> index 56377ea..5f04c04 100644
> --- a/drivers/pinctrl/pinctrl-rockchip.c
> +++ b/drivers/pinctrl/pinctrl-rockchip.c
> @@ -443,6 +443,9 @@ static int rockchip_pinctrl_probe(struct device_d *dev)
>   	if (ret)
>   		return ret;
>
> +	if (!IS_ENABLED(CONFIG_PINCTRL))
> +		return 0;
> +
>   	ret = pinctrl_register(&info->pctl_dev);
>   	if (ret)
>   		return ret;
> diff --git a/drivers/pinctrl/pinctrl.c b/drivers/pinctrl/pinctrl.c
> index 8963ac7..d6479b9 100644
> --- a/drivers/pinctrl/pinctrl.c
> +++ b/drivers/pinctrl/pinctrl.c
> @@ -62,6 +62,9 @@ int of_pinctrl_select_state(struct device_node *np, const char *name)
>   	struct device_node *np_config;
>   	const char *statename;
>
> +	if (!IS_ENABLED(CONFIG_PINCTRL))
> +		return -ENOSYS;
> +
>   	if (!of_find_property(np, "pinctrl-0", NULL))
>   		return 0;
>
> @@ -146,6 +149,9 @@ int pinctrl_select_state_default(struct device_d *dev)
>
>   int pinctrl_register(struct pinctrl_device *pdev)
>   {
> +	if (!IS_ENABLED(CONFIG_PINCTRL))
> +		return -ENOSYS;
> +
>   	BUG_ON(!pdev->dev->device_node);
>
>   	list_add_tail(&pdev->list, &pinctrl_list);
>


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  reply	other threads:[~2014-09-12 15:18 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-12 10:07 Sascha Hauer
2014-09-12 15:18 ` Sebastian Hesselbarth [this message]
2014-09-15  5:18   ` Sascha Hauer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54130EBA.3080402@gmail.com \
    --to=sebastian.hesselbarth@gmail.com \
    --cc=barebox@lists.infradead.org \
    --cc=s.hauer@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox