mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
311 lines
10 KiB
311 lines
10 KiB
# |
|
# 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 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 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 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 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_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 defintion 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_ROCKCHIP_RK3036 |
|
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 PINCTRL_ROCKCHIP_RK3128 |
|
bool "Rockchip rk3128 pin control driver" |
|
depends on DM |
|
help |
|
Support pin multiplexing control on Rockchip rk3128 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_ROCKCHIP_RK3188 |
|
bool "Rockchip rk3188 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 PINCTRL_ROCKCHIP_RK322X |
|
bool "Rockchip rk322x pin control driver" |
|
depends on DM |
|
help |
|
Support pin multiplexing control on Rockchip rk322x 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_ROCKCHIP_RK3288 |
|
bool "Rockchip rk3288 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_ROCKCHIP_RK3328 |
|
bool "Rockchip rk3328 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 PINCTRL_ROCKCHIP_RK3368 |
|
bool "Rockchip RK3368 pin control driver" |
|
depends on DM |
|
help |
|
Support pin multiplexing control on Rockchip rk3368 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_ROCKCHIP_RK3399 |
|
bool "Rockchip rk3399 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_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 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 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. |
|
|
|
endif |
|
|
|
source "drivers/pinctrl/meson/Kconfig" |
|
source "drivers/pinctrl/nxp/Kconfig" |
|
source "drivers/pinctrl/renesas/Kconfig" |
|
source "drivers/pinctrl/uniphier/Kconfig" |
|
source "drivers/pinctrl/exynos/Kconfig" |
|
source "drivers/pinctrl/mvebu/Kconfig" |
|
source "drivers/pinctrl/broadcom/Kconfig" |
|
|
|
endmenu
|
|
|