| # |
| # 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 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 SPL_PINCTRL |
| bool "Support pin controlloers 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 SPL_PINCTRL_FULL |
| bool "Support full pin controllers in SPL" |
| depends on SPL_PINCTRL && SPL_OF_CONTROL |
| default y |
| help |
| This option is an SPL-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 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. |
| |
| if PINCTRL || SPL_PINCTRL |
| |
| config AR933X_PINCTRL |
| 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 QCA953X_PINCTRL |
| 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 ROCKCHIP_RK3036_PINCTRL |
| bool "Rockchip rk3036 pin control driver" |
| depends on DM |
| help |
| Support pin multiplexing control on Rockchip rk3036 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 ROCKCHIP_RK3188_PINCTRL |
| bool "Rockchip pin control driver" |
| depends on DM |
| help |
| Support pin multiplexing control on Rockchip rk3188 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 ROCKCHIP_RK3288_PINCTRL |
| bool "Rockchip pin control driver" |
| depends on DM |
| help |
| Support pin multiplexing control on Rockchip rk3288 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_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 ROCKCHIP_RK3328_PINCTRL |
| bool "Rockchip pin control driver" |
| depends on DM |
| help |
| Support pin multiplexing control on Rockchip rk3328 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 ROCKCHIP_RK3399_PINCTRL |
| bool "Rockchip pin control driver" |
| depends on DM |
| help |
| Support pin multiplexing control on Rockchip rk3399 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_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 PIC32_PINCTRL |
| 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 defintion and pin control |
| functions. |
| |
| 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 STMicrolectronics 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_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. |
| |
| endif |
| |
| source "drivers/pinctrl/meson/Kconfig" |
| source "drivers/pinctrl/nxp/Kconfig" |
| source "drivers/pinctrl/uniphier/Kconfig" |
| source "drivers/pinctrl/exynos/Kconfig" |
| source "drivers/pinctrl/mvebu/Kconfig" |
| |
| endmenu |