diff options
-rw-r--r-- | arch/arm/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/mach-mvebu/Kconfig | 4 | ||||
-rw-r--r-- | arch/arm/mach-tegra/Kconfig | 3 | ||||
-rw-r--r-- | drivers/pinctrl/Kconfig | 24 | ||||
-rw-r--r-- | drivers/pinctrl/mvebu/Kconfig | 8 | ||||
-rw-r--r-- | drivers/pinctrl/pinctrl-rockchip.c | 3 | ||||
-rw-r--r-- | drivers/pinctrl/pinctrl.c | 6 |
7 files changed, 31 insertions, 19 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 13f0bd41be..3c9b81ab06 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -109,6 +109,7 @@ config ARCH_MVEBU select MVEBU_MBUS select OFTREE select OF_ADDRESS_PCI + select PINCTRL config ARCH_MXS bool "Freescale i.MX23/28 (mxs) based" @@ -208,6 +209,7 @@ config ARCH_TEGRA select OFTREE select RELOCATABLE select RESET_CONTROLLER + select PINCTRL config ARCH_UEMD bool "RC Module UEMD Platform" diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig index 3270f9265b..7f6e44e7fc 100644 --- a/arch/arm/mach-mvebu/Kconfig +++ b/arch/arm/mach-mvebu/Kconfig @@ -14,25 +14,21 @@ config ARCH_ARMADA_370 bool "Armada 370" select CPU_V7 select CLOCKSOURCE_MVEBU - select PINCTRL_ARMADA_370 config ARCH_ARMADA_XP bool "Armada XP" select CPU_V7 select CLOCKSOURCE_MVEBU - select PINCTRL_ARMADA_XP config ARCH_DOVE bool "Dove 88AP510" select CPU_V7 select CLOCKSOURCE_ORION - select PINCTRL_DOVE config ARCH_KIRKWOOD bool "Kirkwood" select CPU_FEROCEON select CLOCKSOURCE_ORION - select PINCTRL_KIRKWOOD endchoice diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig index 7214ecaf3a..2c69406dfc 100644 --- a/arch/arm/mach-tegra/Kconfig +++ b/arch/arm/mach-tegra/Kconfig @@ -44,15 +44,12 @@ endchoice config ARCH_TEGRA_2x_SOC bool - select PINCTRL_TEGRA20 config ARCH_TEGRA_3x_SOC bool - select PINCTRL_TEGRA30 config ARCH_TEGRA_124_SOC bool - select PINCTRL_TEGRA30 menu "select Tegra boards to be built" diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig index 398b931546..770fb2d414 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 be154ed437..af20cad439 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 56377ea276..5f04c048cb 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 8963ac75c0..d6479b9cd5 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); |