Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#
# CONFIG_PINCTRL infrastructure and drivers
#

config CONFIG_PINCTRL
	bool

menu "Pin controllers"
	depends on CONFIG_PINCTRL

config CONFIG_PINMUX
	bool "Support pin multiplexing controllers" if CONFIG_COMPILE_TEST

config CONFIG_PINCONF
	bool "Support pin configuration controllers" if CONFIG_COMPILE_TEST

config CONFIG_GENERIC_PINCONF
	bool
	select CONFIG_PINCONF

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

config CONFIG_PINCTRL_ADI2
	bool "ADI pin controller driver"
	depends on CONFIG_BLACKFIN
	select CONFIG_PINMUX
	select CONFIG_IRQ_DOMAIN
	help
	  This is the pin controller and gpio driver for CONFIG_ADI CONFIG_BF54x, CONFIG_BF60x and
	  future processors. This option is selected automatically when specific
	  machine and arch are selected to build.

config CONFIG_PINCTRL_AS3722
	tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
	depends on CONFIG_MFD_AS3722 && CONFIG_GPIOLIB
	select CONFIG_PINMUX
	select CONFIG_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 CONFIG_PINCTRL_BF54x
	def_bool y if CONFIG_BF54x
	select CONFIG_PINCTRL_ADI2

config CONFIG_PINCTRL_BF60x
	def_bool y if CONFIG_BF60x
	select CONFIG_PINCTRL_ADI2

config CONFIG_PINCTRL_AT91
	bool "AT91 pinctrl driver"
	depends on CONFIG_OF
	depends on CONFIG_ARCH_AT91
	select CONFIG_PINMUX
	select CONFIG_PINCONF
	select CONFIG_GPIOLIB
	select CONFIG_OF_GPIO
	select CONFIG_GPIOLIB_IRQCHIP
	help
	  Say Y here to enable the at91 pinctrl driver

config CONFIG_PINCTRL_AT91PIO4
	bool "AT91 PIO4 pinctrl driver"
	depends on CONFIG_OF
	depends on CONFIG_ARCH_AT91
	select CONFIG_PINMUX
	select CONFIG_GENERIC_PINCONF
	select CONFIG_GPIOLIB
	select CONFIG_GPIOLIB_IRQCHIP
	select CONFIG_OF_GPIO
	help
	  Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
	  controller available on sama5d2 SoC.

config CONFIG_PINCTRL_AMD
	tristate "AMD GPIO pin control"
	depends on CONFIG_GPIOLIB
	select CONFIG_GPIOLIB_IRQCHIP
	select CONFIG_PINCONF
	select CONFIG_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 CONFIG_ACPI/FDT device enumeration code to set up a platform
	  device.

config CONFIG_PINCTRL_DA850_PUPD
	tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups"
	depends on CONFIG_OF && (CONFIG_ARCH_DAVINCI_DA850 || CONFIG_COMPILE_TEST)
	select CONFIG_PINCONF
	select CONFIG_GENERIC_PINCONF
	help
	  Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
	  pullup/pulldown pin groups.

config CONFIG_PINCTRL_DIGICOLOR
	bool
	depends on CONFIG_OF && (CONFIG_ARCH_DIGICOLOR || CONFIG_COMPILE_TEST)
	select CONFIG_PINMUX
	select CONFIG_GENERIC_PINCONF

config CONFIG_PINCTRL_LANTIQ
	bool
	depends on CONFIG_LANTIQ
	select CONFIG_PINMUX
	select CONFIG_PINCONF

config CONFIG_PINCTRL_LPC18XX
	bool "NXP LPC18XX/43XX SCU pinctrl driver"
	depends on CONFIG_OF && (CONFIG_ARCH_LPC18XX || CONFIG_COMPILE_TEST)
	default CONFIG_ARCH_LPC18XX
	select CONFIG_PINMUX
	select CONFIG_GENERIC_PINCONF
	help
	  Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).

config CONFIG_PINCTRL_FALCON
	bool
	depends on CONFIG_SOC_FALCON
	depends on CONFIG_PINCTRL_LANTIQ

config CONFIG_PINCTRL_MESON
	bool
	depends on CONFIG_OF
	select CONFIG_PINMUX
	select CONFIG_PINCONF
	select CONFIG_GENERIC_PINCONF
	select CONFIG_GPIOLIB
	select CONFIG_OF_GPIO
	select CONFIG_REGMAP_MMIO

config CONFIG_PINCTRL_OXNAS
	bool
	depends on CONFIG_OF
	select CONFIG_PINMUX
	select CONFIG_PINCONF
	select CONFIG_GENERIC_PINCONF
	select CONFIG_GPIOLIB
	select CONFIG_OF_GPIO
	select CONFIG_GPIOLIB_IRQCHIP
	select CONFIG_MFD_SYSCON

config CONFIG_PINCTRL_ROCKCHIP
	bool
	select CONFIG_PINMUX
	select CONFIG_GENERIC_PINCONF
	select CONFIG_GENERIC_IRQ_CHIP
	select CONFIG_MFD_SYSCON

config CONFIG_PINCTRL_SINGLE
	tristate "One-register-per-pin type device tree based pinctrl driver"
	depends on CONFIG_OF
	select CONFIG_PINMUX
	select CONFIG_PINCONF
	select CONFIG_GENERIC_PINCONF
	help
	  This selects the device tree based generic pinctrl driver.

config CONFIG_PINCTRL_SIRF
	bool "CSR SiRFprimaII pin controller driver"
	depends on CONFIG_ARCH_SIRF
	select CONFIG_PINMUX
	select CONFIG_PINCONF
	select CONFIG_GENERIC_PINCONF
	select CONFIG_GPIOLIB_IRQCHIP

config CONFIG_PINCTRL_SX150X
	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
	depends on CONFIG_GPIOLIB && CONFIG_I2C=y
	select CONFIG_PINMUX
	select CONFIG_PINCONF
	select CONFIG_GENERIC_PINCONF
	select CONFIG_GPIOLIB_IRQCHIP
	select CONFIG_REGMAP
	help
	  Say yes here to provide support for Semtech SX150x-series CONFIG_I2C
	  GPIO expanders as pinctrl module.
	  Compatible models include:
	  - 8 bits:  sx1508q, sx1502q
	  - 16 bits: sx1509q, sx1506q

config CONFIG_PINCTRL_PISTACHIO
	def_bool y if CONFIG_MACH_PISTACHIO
	depends on CONFIG_GPIOLIB
	select CONFIG_PINMUX
	select CONFIG_GENERIC_PINCONF
	select CONFIG_GPIOLIB_IRQCHIP
	select CONFIG_OF_GPIO

config CONFIG_PINCTRL_ST
	bool
	depends on CONFIG_OF
	select CONFIG_PINMUX
	select CONFIG_PINCONF
	select CONFIG_GPIOLIB_IRQCHIP

config CONFIG_PINCTRL_TZ1090
	bool "Toumaz Xenif TZ1090 pin control driver"
	depends on CONFIG_SOC_TZ1090
	select CONFIG_PINMUX
	select CONFIG_GENERIC_PINCONF

config CONFIG_PINCTRL_TZ1090_PDC
	bool "Toumaz Xenif TZ1090 PDC pin control driver"
	depends on CONFIG_SOC_TZ1090
	select CONFIG_PINMUX
	select CONFIG_PINCONF

config CONFIG_PINCTRL_U300
	bool "U300 pin controller driver"
	depends on CONFIG_ARCH_U300
	select CONFIG_PINMUX
	select CONFIG_GENERIC_PINCONF

config CONFIG_PINCTRL_COH901
	bool "ST-Ericsson U300 COH 901 335/571 GPIO"
	depends on CONFIG_GPIOLIB && CONFIG_ARCH_U300 && CONFIG_PINCTRL_U300
	select CONFIG_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 CONFIG_PINCTRL_MAX77620
	tristate "MAX77620/MAX20024 Pincontrol support"
	depends on CONFIG_MFD_MAX77620 && CONFIG_OF
	select CONFIG_PINMUX
	select CONFIG_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 CONFIG_PINCTRL_PALMAS
	tristate "Pinctrl driver for the PALMAS Series MFD devices"
	depends on CONFIG_OF && CONFIG_MFD_PALMAS
	select CONFIG_PINMUX
	select CONFIG_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 CONFIG_PINCTRL_PIC32
	bool "Microchip PIC32 pin controller driver"
	depends on CONFIG_OF
	depends on CONFIG_MACH_PIC32
	select CONFIG_PINMUX
	select CONFIG_GENERIC_PINCONF
	select CONFIG_GPIOLIB_IRQCHIP
	select CONFIG_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 CONFIG_PINCTRL_PIC32MZDA
	def_bool y if CONFIG_PIC32MZDA
	select CONFIG_PINCTRL_PIC32

config CONFIG_PINCTRL_ZYNQ
	bool "Pinctrl driver for Xilinx Zynq"
	depends on CONFIG_ARCH_ZYNQ
	select CONFIG_PINMUX
	select CONFIG_GENERIC_PINCONF
	help
	  This selects the pinctrl driver for Xilinx Zynq.

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/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/stm32/Kconfig"
source "drivers/pinctrl/sunxi/Kconfig"
source "drivers/pinctrl/tegra/Kconfig"
source "drivers/pinctrl/uniphier/Kconfig"
source "drivers/pinctrl/vt8500/Kconfig"
source "drivers/pinctrl/mediatek/Kconfig"

config CONFIG_PINCTRL_XWAY
	bool
	depends on CONFIG_SOC_TYPE_XWAY
	depends on CONFIG_PINCTRL_LANTIQ

config CONFIG_PINCTRL_TB10X
	bool
	depends on CONFIG_OF && CONFIG_ARC_PLAT_TB10X
	select CONFIG_GPIOLIB

endmenu