Directory Files
.. 2
actions 6
aspeed 6
bcm 10
berlin 9
cirrus 10
freescale 32
intel 26
mediatek 35
meson 14
mvebu 15
nomadik 10
nuvoton 3
pxa 9
qcom 25
samsung 10
sh-pfc 38
sirf 6
spear 12
sprd 5
stm32 10
sunxi 24
tegra 10
ti 4
uniphier 13
vt8500 9
zte 5
File Size
Kconfig 11 kB
Makefile 2.8 kB
core.c 58 kB
core.h 8.3 kB
devicetree.c 11 kB
devicetree.h 1.2 kB
pinconf-generic.c 12 kB
pinconf.c 9.6 kB
pinconf.h 3.4 kB
pinctrl-amd.c 26 kB
pinctrl-amd.h 6.7 kB
pinctrl-amd.mod.c 0 B
pinctrl-artpec6.c 26 kB
pinctrl-as3722.c 18 kB
pinctrl-as3722.mod.c 0 B
pinctrl-at91-pio4.c 32 kB
pinctrl-at91.c 53 kB
pinctrl-at91.h 3.5 kB
pinctrl-axp209.c 13 kB
pinctrl-axp209.mod.c 0 B
pinctrl-bm1880.c 39 kB
pinctrl-coh901.c 21 kB
pinctrl-coh901.h 237 B
pinctrl-da850-pupd.c 5.0 kB
pinctrl-da850-pupd.mod.c 0 B
pinctrl-digicolor.c 8.7 kB
pinctrl-falcon.c 15 kB
pinctrl-gemini.c 79 kB
pinctrl-ingenic.c 53 kB
pinctrl-lantiq.c 8.8 kB
pinctrl-lantiq.h 3.5 kB
pinctrl-lpc18xx.c 43 kB
pinctrl-max77620.c 18 kB
pinctrl-max77620.mod.c 0 B
pinctrl-mcp23s08.c 28 kB
pinctrl-mcp23s08.mod.c 0 B
pinctrl-ocelot.c 21 kB
pinctrl-oxnas.c 37 kB
pinctrl-palmas.c 33 kB
pinctrl-palmas.mod.c 0 B
pinctrl-pic32.c 83 kB
pinctrl-pic32.h 2.7 kB
pinctrl-pistachio.c 42 kB
pinctrl-rk805.c 12 kB
pinctrl-rk805.mod.c 0 B
pinctrl-rockchip.c 97 kB
pinctrl-rza1.c 38 kB
pinctrl-rza2.c 14 kB
pinctrl-rzn1.c 26 kB
pinctrl-single.c 49 kB
pinctrl-single.mod.c 0 B
pinctrl-st.c 48 kB
pinctrl-stmfx.c 22 kB
pinctrl-stmfx.mod.c 0 B
pinctrl-sx150x.c 30 kB
pinctrl-tb10x.c 27 kB
pinctrl-u300.c 37 kB
pinctrl-utils.c 3.8 kB
pinctrl-utils.h 1.7 kB
pinctrl-xway.c 67 kB
pinctrl-zynq.c 43 kB
pinmux.c 21 kB
pinmux.h 4.1 kB

Linux v5.2.1 - pinctrl

# SPDX-License-Identifier: GPL-2.0-only
#
# PINCTRL infrastructure and drivers
#

menuconfig PINCTRL
	bool "Pin controllers"

if PINCTRL

config GENERIC_PINCTRL_GROUPS
	bool

config PINMUX
	bool "Support pin multiplexing controllers" if COMPILE_TEST

config GENERIC_PINMUX_FUNCTIONS
	bool
	select PINMUX

config PINCONF
	bool "Support pin configuration controllers" if COMPILE_TEST

config GENERIC_PINCONF
	bool
	select PINCONF

config DEBUG_PINCTRL
	bool "Debug PINCTRL calls"
	depends on DEBUG_KERNEL
	help
	  Say Y here to add some extra checks and diagnostics to PINCTRL calls.

config PINCTRL_ARTPEC6
        bool "Axis ARTPEC-6 pin controller driver"
        depends on MACH_ARTPEC6
        select PINMUX
        select GENERIC_PINCONF
        help
          This is the driver for the Axis ARTPEC-6 pin controller. This driver
          supports pin function multiplexing as well as pin bias and drive
          strength configuration. Device tree integration instructions can be
          found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt

config PINCTRL_AS3722
	tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
	depends on MFD_AS3722 && GPIOLIB
	select PINMUX
	select GENERIC_PINCONF
	help
	  AS3722 device supports the configuration of GPIO pins for different
	  functionality. This driver supports the pinmux, push-pull and
	  open drain configuration for the GPIO pins of AS3722 devices. It also
	  supports the GPIO functionality through gpiolib.

config PINCTRL_AXP209
	tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"
	depends on MFD_AXP20X
	depends on OF
	select PINMUX
	select GENERIC_PINCONF
	select GPIOLIB
	help
	  AXP PMICs provides multiple GPIOs that can be muxed for different
	  functions. This driver bundles a pinctrl driver to select the function
	  muxing and a GPIO driver to handle the GPIO when the GPIO function is
	  selected.
	  Say yes to enable pinctrl and GPIO support for the AXP209 PMIC

config PINCTRL_AT91
	bool "AT91 pinctrl driver"
	depends on OF
	depends on ARCH_AT91
	select PINMUX
	select PINCONF
	select GPIOLIB
	select OF_GPIO
	select GPIOLIB_IRQCHIP
	help
	  Say Y here to enable the at91 pinctrl driver

config PINCTRL_AT91PIO4
	bool "AT91 PIO4 pinctrl driver"
	depends on OF
	depends on ARCH_AT91
	select PINMUX
	select GENERIC_PINCONF
	select GPIOLIB
	select GPIOLIB_IRQCHIP
	select OF_GPIO
	help
	  Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
	  controller available on sama5d2 SoC.

config PINCTRL_AMD
	tristate "AMD GPIO pin control"
	depends on HAS_IOMEM
	select GPIOLIB
	select GPIOLIB_IRQCHIP
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
	help
	  driver for memory mapped GPIO functionality on AMD platforms
	  (x86 or arm).Most pins are usually muxed to some other
	  functionality by firmware,so only a small amount is available
	  for gpio use.

	  Requires ACPI/FDT device enumeration code to set up a platform
	  device.

config PINCTRL_BM1880
	bool "Bitmain BM1880 Pinctrl driver"
	depends on OF && (ARCH_BITMAIN || COMPILE_TEST)
	default ARCH_BITMAIN
	select PINMUX
	help
	  Pinctrl driver for Bitmain BM1880 SoC.

config PINCTRL_DA850_PUPD
	tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups"
	depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
	select PINCONF
	select GENERIC_PINCONF
	help
	  Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
	  pullup/pulldown pin groups.

config PINCTRL_DIGICOLOR
	bool
	depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
	select PINMUX
	select GENERIC_PINCONF

config PINCTRL_LANTIQ
	bool
	depends on LANTIQ
	select PINMUX
	select PINCONF

config PINCTRL_LPC18XX
	bool "NXP LPC18XX/43XX SCU pinctrl driver"
	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
	default ARCH_LPC18XX
	select PINMUX
	select GENERIC_PINCONF
	help
	  Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).

config PINCTRL_FALCON
	bool
	depends on SOC_FALCON
	depends on PINCTRL_LANTIQ

config PINCTRL_GEMINI
	bool
	depends on ARCH_GEMINI
	default ARCH_GEMINI
	select PINMUX
	select GENERIC_PINCONF
	select MFD_SYSCON

config PINCTRL_MCP23S08
	tristate "Microchip MCP23xxx I/O expander"
	depends on SPI_MASTER || I2C
	depends on I2C || I2C=n
	select GPIOLIB
	select GPIOLIB_IRQCHIP
	select REGMAP_I2C if I2C
	select REGMAP_SPI if SPI_MASTER
	select GENERIC_PINCONF
	help
	  SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /
	  MCP23008 / MCP23017 / MCP23018 I/O expanders.
	  This provides a GPIO interface supporting inputs and outputs and a
	  corresponding interrupt-controller.

config PINCTRL_OXNAS
	bool
	depends on OF
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
	select GPIOLIB
	select OF_GPIO
	select GPIOLIB_IRQCHIP
	select MFD_SYSCON

config PINCTRL_ROCKCHIP
	bool
	select PINMUX
	select GENERIC_PINCONF
	select GENERIC_IRQ_CHIP
	select MFD_SYSCON

config PINCTRL_RZA1
	bool "Renesas RZ/A1 gpio and pinctrl driver"
	depends on OF
	depends on ARCH_R7S72100 || COMPILE_TEST
	select GPIOLIB
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select GENERIC_PINCONF
	help
	  This selects pinctrl driver for Renesas RZ/A1 platforms.

config PINCTRL_RZA2
	bool "Renesas RZ/A2 gpio and pinctrl driver"
	depends on OF
	depends on ARCH_R7S9210 || COMPILE_TEST
	select GPIOLIB
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select GENERIC_PINCONF
	help
	  This selects GPIO and pinctrl driver for Renesas RZ/A2 platforms.

config PINCTRL_RZN1
	bool "Renesas RZ/N1 pinctrl driver"
	depends on OF
	depends on ARCH_RZN1 || COMPILE_TEST
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select GENERIC_PINCONF
	help
	  This selects pinctrl driver for Renesas RZ/N1 devices.

config PINCTRL_SINGLE
	tristate "One-register-per-pin type device tree based pinctrl driver"
	depends on OF
	depends on HAS_IOMEM
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select GENERIC_PINCONF
	help
	  This selects the device tree based generic pinctrl driver.

config PINCTRL_SIRF
	bool "CSR SiRFprimaII pin controller driver"
	depends on ARCH_SIRF
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
	select GPIOLIB_IRQCHIP

config PINCTRL_SX150X
	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
	depends on I2C=y
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
	select GPIOLIB
	select GPIOLIB_IRQCHIP
	select REGMAP
	help
	  Say yes here to provide support for Semtech SX150x-series I2C
	  GPIO expanders as pinctrl module.
	  Compatible models include:
	  - 8 bits:  sx1508q, sx1502q
	  - 16 bits: sx1509q, sx1506q

config PINCTRL_PISTACHIO
	def_bool y if MACH_PISTACHIO
	depends on GPIOLIB
	select PINMUX
	select GENERIC_PINCONF
	select GPIOLIB_IRQCHIP
	select OF_GPIO

config PINCTRL_ST
	bool
	depends on OF
	select PINMUX
	select PINCONF
	select GPIOLIB_IRQCHIP

config PINCTRL_STMFX
	tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
	depends on I2C
	depends on OF_GPIO
	select GENERIC_PINCONF
	select GPIOLIB_IRQCHIP
	select MFD_STMFX
	help
	  Driver for STMicroelectronics Multi-Function eXpander (STMFX)
	  GPIO expander.
	  This provides a GPIO interface supporting inputs and outputs,
	  and configuring push-pull, open-drain, and can also be used as
	  interrupt-controller.

config PINCTRL_U300
	bool "U300 pin controller driver"
	depends on ARCH_U300
	select PINMUX
	select GENERIC_PINCONF

config PINCTRL_COH901
	bool "ST-Ericsson U300 COH 901 335/571 GPIO"
	depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
	select GPIOLIB_IRQCHIP
	help
	  Say yes here to support GPIO interface on ST-Ericsson U300.
	  The names of the two IP block variants supported are
	  COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
	  ports of 8 GPIO pins each.

config PINCTRL_MAX77620
	tristate "MAX77620/MAX20024 Pincontrol support"
	depends on MFD_MAX77620 && OF
	select PINMUX
	select GENERIC_PINCONF
	help
	  Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
	  This PMIC has 8 GPIO pins that work as GPIO as well as special
	  function in alternate mode. This driver also configure push-pull,
	  open drain, FPS slots etc.

config PINCTRL_PALMAS
	tristate "Pinctrl driver for the PALMAS Series MFD devices"
	depends on OF && MFD_PALMAS
	select PINMUX
	select GENERIC_PINCONF
	help
	  Palmas device supports the configuration of pins for different
	  functionality. This driver supports the pinmux, push-pull and
	  open drain configuration for the Palmas series devices like
	  TPS65913, TPS80036 etc.

config PINCTRL_PIC32
	bool "Microchip PIC32 pin controller driver"
	depends on OF
	depends on MACH_PIC32
	select PINMUX
	select GENERIC_PINCONF
	select GPIOLIB_IRQCHIP
	select OF_GPIO
	help
	  This is the pin controller and gpio driver for Microchip PIC32
	  microcontrollers. This option is selected automatically when specific
	  machine and arch are selected to build.

config PINCTRL_PIC32MZDA
	def_bool y if PIC32MZDA
	select PINCTRL_PIC32

config PINCTRL_ZYNQ
	bool "Pinctrl driver for Xilinx Zynq"
	depends on ARCH_ZYNQ
	select PINMUX
	select GENERIC_PINCONF
	help
	  This selects the pinctrl driver for Xilinx Zynq.

config PINCTRL_INGENIC
	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
	default MACH_INGENIC
	depends on OF
	depends on MIPS || COMPILE_TEST
	select GENERIC_PINCONF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select GPIOLIB
	select GPIOLIB_IRQCHIP
	select REGMAP_MMIO

config PINCTRL_RK805
	tristate "Pinctrl and GPIO driver for RK805 PMIC"
	depends on MFD_RK808
	select GPIOLIB
	select PINMUX
	select GENERIC_PINCONF
	help
	  This selects the pinctrl driver for RK805.

config PINCTRL_OCELOT
	bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
	depends on OF
	depends on HAS_IOMEM
	select GPIOLIB
	select GPIOLIB_IRQCHIP
	select GENERIC_PINCONF
	select GENERIC_PINCTRL_GROUPS
	select GENERIC_PINMUX_FUNCTIONS
	select OF_GPIO
	select REGMAP_MMIO

source "drivers/pinctrl/actions/Kconfig"
source "drivers/pinctrl/aspeed/Kconfig"
source "drivers/pinctrl/bcm/Kconfig"
source "drivers/pinctrl/berlin/Kconfig"
source "drivers/pinctrl/freescale/Kconfig"
source "drivers/pinctrl/intel/Kconfig"
source "drivers/pinctrl/mvebu/Kconfig"
source "drivers/pinctrl/nomadik/Kconfig"
source "drivers/pinctrl/nuvoton/Kconfig"
source "drivers/pinctrl/pxa/Kconfig"
source "drivers/pinctrl/qcom/Kconfig"
source "drivers/pinctrl/samsung/Kconfig"
source "drivers/pinctrl/sh-pfc/Kconfig"
source "drivers/pinctrl/spear/Kconfig"
source "drivers/pinctrl/sprd/Kconfig"
source "drivers/pinctrl/stm32/Kconfig"
source "drivers/pinctrl/sunxi/Kconfig"
source "drivers/pinctrl/tegra/Kconfig"
source "drivers/pinctrl/ti/Kconfig"
source "drivers/pinctrl/uniphier/Kconfig"
source "drivers/pinctrl/vt8500/Kconfig"
source "drivers/pinctrl/mediatek/Kconfig"
source "drivers/pinctrl/zte/Kconfig"
source "drivers/pinctrl/meson/Kconfig"
source "drivers/pinctrl/cirrus/Kconfig"

config PINCTRL_XWAY
	bool
	depends on SOC_TYPE_XWAY
	depends on PINCTRL_LANTIQ

config PINCTRL_TB10X
	bool
	depends on OF && ARC_PLAT_TB10X
	select GPIOLIB

endif