| # | |
| # PINCTRL infrastructure and drivers | |
| # | |
| menu "Pin controllers" | |
| config PINCTRL | |
| bool "Support pin controllers" | |
| depends on DM | |
| help | |
| This enables the basic support for pinctrl framework. You may want | |
| to enable some more options depending on what you want to do. | |
| config PINCTRL_FULL | |
| bool "Support full pin controllers" | |
| depends on PINCTRL && OF_CONTROL | |
| default y | |
| help | |
| This provides Linux-compatible device tree interface for the pinctrl | |
| subsystem. This feature depends on device tree configuration because | |
| it parses a device tree to look for the pinctrl device which the | |
| peripheral device is associated with. | |
| If this option is disabled (it is the only possible choice for non-DT | |
| boards), the pinctrl core provides no systematic mechanism for | |
| identifying peripheral devices, applying needed pinctrl settings. | |
| It is totally up to the implementation of each low-level driver. | |
| You can save memory footprint in return for some limitations. | |
| config PINCTRL_GENERIC | |
| bool "Support generic pin controllers" | |
| depends on PINCTRL_FULL | |
| default y | |
| help | |
| Say Y here if you want to use the pinctrl subsystem through the | |
| generic DT interface. If enabled, some functions become available | |
| to parse common properties such as "pins", "groups", "functions" and | |
| some pin configuration parameters. It would be easier if you only | |
| need the generic DT interface for pin muxing and pin configuration. | |
| If you need to handle vendor-specific DT properties, you can disable | |
| this option and implement your own set_state callback in the pinctrl | |
| operations. | |
| config PINMUX | |
| bool "Support pin multiplexing controllers" | |
| depends on PINCTRL_GENERIC | |
| default y | |
| help | |
| This option enables pin multiplexing through the generic pinctrl | |
| framework. Most SoCs have their own multiplexing arrangement where | |
| a single pin can be used for several functions. An SoC pinctrl driver | |
| allows the required function to be selected for each pin. | |
| The driver is typically controlled by the device tree. | |
| config PINCONF | |
| bool "Support pin configuration controllers" | |
| depends on PINCTRL_GENERIC | |
| help | |
| This option enables pin configuration through the generic pinctrl | |
| framework. | |
| config PINCONF_RECURSIVE | |
| bool "Support recursive binding for pin configuration nodes" | |
| depends on PINCTRL_FULL | |
| default n if ARCH_STM32MP | |
| default y | |
| help | |
| In the Linux pinctrl binding, the pin configuration nodes need not be | |
| direct children of the pin controller device (may be grandchildren for | |
| example). It is define is each individual pin controller device. | |
| Say Y here if you want to keep this behavior with the pinconfig | |
| u-class: all sub are recursively bounded. | |
| If the option is disabled, this behavior is deactivated and only | |
| the direct children of pin controller will be assumed as pin | |
| configuration; you can save memory footprint when this feature is | |
| no needed. | |
| config SPL_PINCTRL | |
| bool "Support pin controllers in SPL" | |
| depends on SPL && SPL_DM | |
| help | |
| This option is an SPL-variant of the PINCTRL option. | |
| See the help of PINCTRL for details. | |
| config TPL_PINCTRL | |
| bool "Support pin controllers in TPL" | |
| depends on TPL && TPL_DM | |
| help | |
| This option is an TPL variant of the PINCTRL option. | |
| See the help of PINCTRL for details. | |
| config VPL_PINCTRL | |
| bool "Support pin controllers in VPL" | |
| depends on VPL && VPL_DM | |
| help | |
| This option is an VPL variant of the PINCTRL option. | |
| See the help of PINCTRL for details. | |
| config SPL_PINCTRL_FULL | |
| bool "Support full pin controllers in SPL" | |
| depends on SPL_PINCTRL && SPL_OF_CONTROL | |
| default n if TARGET_STM32F746_DISCO | |
| default y | |
| help | |
| This option is an SPL variant of the PINCTRL_FULL option. | |
| See the help of PINCTRL_FULL for details. | |
| config TPL_PINCTRL_FULL | |
| bool "Support full pin controllers in TPL" | |
| depends on TPL_PINCTRL && TPL_OF_CONTROL | |
| help | |
| This option is a TPL variant of the PINCTRL_FULL option. | |
| See the help of PINCTRL_FULL for details. | |
| config VPL_PINCTRL_FULL | |
| bool "Support full pin controllers in VPL" | |
| depends on VPL_PINCTRL && VPL_OF_CONTROL | |
| help | |
| This option is a VPL variant of the PINCTRL_FULL option. | |
| See the help of PINCTRL_FULL for details. | |
| config SPL_PINCTRL_GENERIC | |
| bool "Support generic pin controllers in SPL" | |
| depends on SPL_PINCTRL_FULL | |
| default y | |
| help | |
| This option is an SPL-variant of the PINCTRL_GENERIC option. | |
| See the help of PINCTRL_GENERIC for details. | |
| config TPL_PINCTRL_GENERIC | |
| bool "Support generic pin controllers in TPL" | |
| depends on TPL_PINCTRL_FULL | |
| default y | |
| help | |
| This option is a TPL-variant of the PINCTRL_GENERIC option. | |
| See the help of PINCTRL_GENERIC for details. | |
| config SPL_PINMUX | |
| bool "Support pin multiplexing controllers in SPL" | |
| depends on SPL_PINCTRL_GENERIC | |
| default y | |
| help | |
| This option is an SPL-variant of the PINMUX option. | |
| See the help of PINMUX for details. | |
| The pinctrl subsystem can add a substantial overhead to the SPL | |
| image since it typically requires quite a few tables either in the | |
| driver or in the device tree. If this is acceptable and you need | |
| to adjust pin multiplexing in SPL in order to boot into U-Boot, | |
| enable this option. You will need to enable device tree in SPL | |
| for this to work. | |
| config SPL_PINCONF | |
| bool "Support pin configuration controllers in SPL" | |
| depends on SPL_PINCTRL_GENERIC | |
| help | |
| This option is an SPL-variant of the PINCONF option. | |
| See the help of PINCONF for details. | |
| config SPL_PINCONF_RECURSIVE | |
| bool "Support recursive binding for pin configuration nodes in SPL" | |
| depends on SPL_PINCTRL_FULL | |
| default n if ARCH_STM32MP | |
| default y | |
| help | |
| This option is an SPL-variant of the PINCONF_RECURSIVE option. | |
| See the help of PINCONF_RECURSIVE for details. | |
| if PINCTRL || SPL_PINCTRL | |
| config PINCTRL_APPLE | |
| bool "Apple pinctrl driver" | |
| depends on DM && PINCTRL_GENERIC && ARCH_APPLE | |
| default y | |
| help | |
| Support pin multiplexing on Apple SoCs. | |
| The driver is controlled by a device tree node which contains | |
| both the GPIO definitions and pin control functions for each | |
| available multiplex function. | |
| config PINCTRL_AR933X | |
| bool "QCA/Athores ar933x pin control driver" | |
| depends on DM && SOC_AR933X | |
| help | |
| Support pin multiplexing control on QCA/Athores ar933x SoCs. | |
| The driver is controlled by a device tree node which contains | |
| both the GPIO definitions and pin control functions for each | |
| available multiplex function. | |
| config PINCTRL_AT91 | |
| bool "AT91 pinctrl driver" | |
| depends on DM | |
| help | |
| This option is to enable the AT91 pinctrl driver for AT91 PIO | |
| controller. | |
| AT91 PIO controller is a combined gpio-controller, pin-mux and | |
| pin-config module. Each I/O pin may be dedicated as a general-purpose | |
| I/O or be assigned to a function of an embedded peripheral. Each I/O | |
| pin has a glitch filter providing rejection of glitches lower than | |
| one-half of peripheral clock cycle and a debouncing filter providing | |
| rejection of unwanted pulses from key or push button operations. You | |
| can also control the multi-driver capability, pull-up and pull-down | |
| feature on each I/O pin. | |
| config PINCTRL_AT91PIO4 | |
| bool "AT91 PIO4 pinctrl driver" | |
| depends on DM | |
| help | |
| This option is to enable the AT91 pinctrl driver for AT91 PIO4 | |
| controller which is available on SAMA5D2 SoC. | |
| config PINCTRL_INTEL | |
| bool "Standard Intel pin-control and pin-mux driver" | |
| help | |
| Recent Intel chips such as Apollo Lake (APL) use a common pin control | |
| and GPIO scheme. The settings for this come from an SoC-specific | |
| driver which must be separately enabled. The driver supports setting | |
| pins on start-up and changing the GPIO attributes. | |
| config PINCTRL_PIC32 | |
| bool "Microchip PIC32 pin-control and pin-mux driver" | |
| depends on DM && MACH_PIC32 | |
| default y | |
| help | |
| Supports individual pin selection and configuration for each | |
| remappable peripheral available on Microchip PIC32 | |
| SoCs. This driver is controlled by a device tree node which | |
| contains both GPIO definition and pin control functions. | |
| config PINCTRL_QCA953X | |
| bool "QCA/Athores qca953x pin control driver" | |
| depends on DM && SOC_QCA953X | |
| help | |
| Support pin multiplexing control on QCA/Athores qca953x SoCs. | |
| The driver is controlled by a device tree node which contains both | |
| the GPIO definitions and pin control functions for each available | |
| multiplex function. | |
| config PINCTRL_QE | |
| bool "QE based pinctrl driver, like on mpc83xx" | |
| depends on DM | |
| help | |
| This option is to enable the QE pinctrl driver for QE based io | |
| controller. | |
| config PINCTRL_ROCKCHIP_RV1108 | |
| bool "Rockchip rv1108 pin control driver" | |
| depends on DM | |
| help | |
| Support pin multiplexing control on Rockchip rv1108 SoC. | |
| The driver is controlled by a device tree node which contains | |
| both the GPIO definitions and pin control functions for each | |
| available multiplex function. | |
| config PINCTRL_SANDBOX | |
| bool "Sandbox pinctrl driver" | |
| depends on SANDBOX | |
| help | |
| This enables pinctrl driver for sandbox. | |
| Currently, this driver actually does nothing but print debug | |
| messages when pinctrl operations are invoked. | |
| config PINCTRL_SINGLE | |
| bool "Single register pin-control and pin-multiplex driver" | |
| depends on DM | |
| help | |
| This enables pinctrl driver for systems using a single register for | |
| pin configuration and multiplexing. TI's AM335X SoCs are examples of | |
| such systems. | |
| Depending on the platform make sure to also enable OF_TRANSLATE and | |
| eventually SPL_OF_TRANSLATE to get correct address translations. | |
| config PINCTRL_STI | |
| bool "STMicroelectronics STi pin-control and pin-mux driver" | |
| depends on DM && ARCH_STI | |
| default y | |
| help | |
| Support pin multiplexing control on STMicroelectronics STi SoCs. | |
| The driver is controlled by a device tree node which contains both | |
| the GPIO definitions and pin control functions for each available | |
| multiplex function. | |
| config PINCTRL_STM32 | |
| bool "ST STM32 pin control driver" | |
| depends on DM | |
| help | |
| Supports pin multiplexing control on stm32 SoCs. | |
| The driver is controlled by a device tree node which contains both | |
| the GPIO definitions and pin control functions for each available | |
| multiplex function. | |
| config PINCTRL_STMFX | |
| bool "STMicroelectronics STMFX I2C GPIO expander pinctrl driver" | |
| depends on DM && PINCTRL_FULL | |
| help | |
| I2C driver for STMicroelectronics Multi-Function eXpander (STMFX) | |
| GPIO expander. | |
| Supports pin multiplexing control on stm32 SoCs. | |
| The driver is controlled by a device tree node which contains both | |
| the GPIO definitions and pin control functions for each available | |
| multiplex function. | |
| config SPL_PINCTRL_STMFX | |
| bool "STMicroelectronics STMFX I2C GPIO expander pinctrl driver in SPL" | |
| depends on SPL_PINCTRL_FULL | |
| help | |
| This option is an SPL-variant of the SPL_PINCTRL_STMFX option. | |
| See the help of PINCTRL_STMFX for details. | |
| config ASPEED_AST2500_PINCTRL | |
| bool "Aspeed AST2500 pin control driver" | |
| depends on DM && PINCTRL_GENERIC && ASPEED_AST2500 | |
| default y | |
| help | |
| Support pin multiplexing control on Aspeed ast2500 SoC. The driver | |
| uses Generic Pinctrl framework and is compatible with the Linux | |
| driver, i.e. it uses the same device tree configuration. | |
| config ASPEED_AST2600_PINCTRL | |
| bool "Aspeed AST2600 pin control driver" | |
| depends on DM && PINCTRL_GENERIC && ASPEED_AST2600 | |
| default y | |
| help | |
| Support pin multiplexing control on Aspeed ast2600 SoC. The driver | |
| uses Generic Pinctrl framework and is compatible with the Linux | |
| driver, i.e. it uses the same device tree configuration. | |
| config PINCTRL_K210 | |
| bool "Kendryte K210 Fully-Programmable Input/Output Array driver" | |
| depends on DM && PINCTRL_GENERIC | |
| help | |
| Support pin multiplexing on the K210. The "FPIOA" can remap any | |
| supported function to any multifunctional IO pin. It can also perform | |
| basic GPIO functions, such as reading the current value of a pin. | |
| config PINCTRL_ZYNQMP | |
| bool "Xilinx ZynqMP pin control driver" | |
| depends on DM && PINCTRL_GENERIC && ARCH_ZYNQMP | |
| default y | |
| help | |
| Support pin multiplexing control on Xilinx ZynqMP. The driver uses | |
| Generic Pinctrl framework and is compatible with the Linux driver, | |
| i.e. it uses the same device tree configuration. | |
| endif | |
| source "drivers/pinctrl/broadcom/Kconfig" | |
| source "drivers/pinctrl/exynos/Kconfig" | |
| source "drivers/pinctrl/intel/Kconfig" | |
| source "drivers/pinctrl/mediatek/Kconfig" | |
| source "drivers/pinctrl/meson/Kconfig" | |
| source "drivers/pinctrl/mscc/Kconfig" | |
| source "drivers/pinctrl/mtmips/Kconfig" | |
| source "drivers/pinctrl/mvebu/Kconfig" | |
| source "drivers/pinctrl/nexell/Kconfig" | |
| source "drivers/pinctrl/nuvoton/Kconfig" | |
| source "drivers/pinctrl/nxp/Kconfig" | |
| source "drivers/pinctrl/qcom/Kconfig" | |
| source "drivers/pinctrl/renesas/Kconfig" | |
| source "drivers/pinctrl/rockchip/Kconfig" | |
| source "drivers/pinctrl/sunxi/Kconfig" | |
| source "drivers/pinctrl/tegra/Kconfig" | |
| source "drivers/pinctrl/uniphier/Kconfig" | |
| source "drivers/pinctrl/starfive/Kconfig" | |
| endmenu |