mirror of
https://github.com/torvalds/linux.git
synced 2024-12-29 14:21:47 +00:00
4d3d0e4272
The Aspeed SoCs typically provide more than 200 pins for GPIO and other functions. The signal enabled on a pin is determined on a priority basis, where a given pin can provide a number of different signal types. In addition to the priority levels, the Aspeed pin controllers describe the signal active on a pin by compound logical expressions involving multiple operators, registers and bits. Some difficulty arises as a pin's function bit masks for each priority level are frequently not the same (i.e. we cannot just flip a bit to change from a high to low priority signal), or even in the same register(s). Some configuration bits affect multiple pins, while in other cases the signals for a bus must each be enabled individually. Together, these features give rise to some complexity in the implementation. A more complete description of the complexities is provided in the associated header file. The patch doesn't implement pinctrl/pinmux/pinconf for any particular Aspeed SoC, rather it adds the framework for defining pinmux configurations. Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Reviewed-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
287 lines
6.7 KiB
Plaintext
287 lines
6.7 KiB
Plaintext
#
|
|
# PINCTRL infrastructure and drivers
|
|
#
|
|
|
|
config PINCTRL
|
|
bool
|
|
|
|
menu "Pin controllers"
|
|
depends on PINCTRL
|
|
|
|
config PINMUX
|
|
bool "Support pin multiplexing controllers" if COMPILE_TEST
|
|
|
|
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_ADI2
|
|
bool "ADI pin controller driver"
|
|
depends on BLACKFIN
|
|
select PINMUX
|
|
select IRQ_DOMAIN
|
|
help
|
|
This is the pin controller and gpio driver for ADI BF54x, BF60x and
|
|
future processors. This option is selected automatically when specific
|
|
machine and arch are selected to build.
|
|
|
|
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_BF54x
|
|
def_bool y if BF54x
|
|
select PINCTRL_ADI2
|
|
|
|
config PINCTRL_BF60x
|
|
def_bool y if BF60x
|
|
select PINCTRL_ADI2
|
|
|
|
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 GPIOLIB
|
|
select GPIOLIB_IRQCHIP
|
|
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_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_MESON
|
|
bool
|
|
depends on OF
|
|
select PINMUX
|
|
select PINCONF
|
|
select GENERIC_PINCONF
|
|
select GPIOLIB
|
|
select OF_GPIO
|
|
select REGMAP_MMIO
|
|
|
|
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_SINGLE
|
|
tristate "One-register-per-pin type device tree based pinctrl driver"
|
|
depends on OF
|
|
select PINMUX
|
|
select PINCONF
|
|
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_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_TZ1090
|
|
bool "Toumaz Xenif TZ1090 pin control driver"
|
|
depends on SOC_TZ1090
|
|
select PINMUX
|
|
select GENERIC_PINCONF
|
|
|
|
config PINCTRL_TZ1090_PDC
|
|
bool "Toumaz Xenif TZ1090 PDC pin control driver"
|
|
depends on SOC_TZ1090
|
|
select PINMUX
|
|
select PINCONF
|
|
|
|
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
|
|
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.
|
|
|
|
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 PINCTRL_XWAY
|
|
bool
|
|
depends on SOC_TYPE_XWAY
|
|
depends on PINCTRL_LANTIQ
|
|
|
|
config PINCTRL_TB10X
|
|
bool
|
|
depends on OF && ARC_PLAT_TB10X
|
|
select GPIOLIB
|
|
|
|
endmenu
|