xref: /openbmc/u-boot/drivers/pinctrl/Kconfig (revision 9da3b6f065502fa6d990d48c0bc4c478c9ba7598)
1d90a5a30SMasahiro Yamada#
2d90a5a30SMasahiro Yamada# PINCTRL infrastructure and drivers
3d90a5a30SMasahiro Yamada#
4d90a5a30SMasahiro Yamada
5d90a5a30SMasahiro Yamadamenu "Pin controllers"
6d90a5a30SMasahiro Yamada
7d90a5a30SMasahiro Yamadaconfig PINCTRL
8d90a5a30SMasahiro Yamada	bool "Support pin controllers"
9d90a5a30SMasahiro Yamada	depends on DM
10d90a5a30SMasahiro Yamada	help
11d90a5a30SMasahiro Yamada	  This enables the basic support for pinctrl framework.  You may want
12d90a5a30SMasahiro Yamada	  to enable some more options depending on what you want to do.
13d90a5a30SMasahiro Yamada
14d90a5a30SMasahiro Yamadaconfig PINCTRL_FULL
15d90a5a30SMasahiro Yamada	bool "Support full pin controllers"
16d90a5a30SMasahiro Yamada	depends on PINCTRL && OF_CONTROL
17d90a5a30SMasahiro Yamada	default y
18d90a5a30SMasahiro Yamada	help
19d90a5a30SMasahiro Yamada	  This provides Linux-compatible device tree interface for the pinctrl
20d90a5a30SMasahiro Yamada	  subsystem.  This feature depends on device tree configuration because
21d90a5a30SMasahiro Yamada	  it parses a device tree to look for the pinctrl device which the
22d90a5a30SMasahiro Yamada	  peripheral device is associated with.
23d90a5a30SMasahiro Yamada
24d90a5a30SMasahiro Yamada	  If this option is disabled (it is the only possible choice for non-DT
25d90a5a30SMasahiro Yamada	  boards), the pinctrl core provides no systematic mechanism for
26d90a5a30SMasahiro Yamada	  identifying peripheral devices, applying needed pinctrl settings.
27d90a5a30SMasahiro Yamada	  It is totally up to the implementation of each low-level driver.
28d90a5a30SMasahiro Yamada	  You can save memory footprint in return for some limitations.
29d90a5a30SMasahiro Yamada
30d90a5a30SMasahiro Yamadaconfig PINCTRL_GENERIC
31d90a5a30SMasahiro Yamada	bool "Support generic pin controllers"
32d90a5a30SMasahiro Yamada	depends on PINCTRL_FULL
33d90a5a30SMasahiro Yamada	default y
34d90a5a30SMasahiro Yamada	help
35d90a5a30SMasahiro Yamada	  Say Y here if you want to use the pinctrl subsystem through the
36d90a5a30SMasahiro Yamada	  generic DT interface.  If enabled, some functions become available
37d90a5a30SMasahiro Yamada	  to parse common properties such as "pins", "groups", "functions" and
38d90a5a30SMasahiro Yamada	  some pin configuration parameters.  It would be easier if you only
39d90a5a30SMasahiro Yamada	  need the generic DT interface for pin muxing and pin configuration.
40d90a5a30SMasahiro Yamada	  If you need to handle vendor-specific DT properties, you can disable
41d90a5a30SMasahiro Yamada	  this option and implement your own set_state callback in the pinctrl
42d90a5a30SMasahiro Yamada	  operations.
43d90a5a30SMasahiro Yamada
44d90a5a30SMasahiro Yamadaconfig PINMUX
45d90a5a30SMasahiro Yamada	bool "Support pin multiplexing controllers"
46d90a5a30SMasahiro Yamada	depends on PINCTRL_GENERIC
47d90a5a30SMasahiro Yamada	default y
48d90a5a30SMasahiro Yamada	help
49d90a5a30SMasahiro Yamada	  This option enables pin multiplexing through the generic pinctrl
50de2069c7SMarek Behún	  framework. Most SoCs have their own multiplexing arrangement where
51de2069c7SMarek Behún	  a single pin can be used for several functions. An SoC pinctrl driver
52de2069c7SMarek Behún	  allows the required function to be selected for each pin.
53458a0700SSimon Glass	  The driver is typically controlled by the device tree.
54d90a5a30SMasahiro Yamada
55d90a5a30SMasahiro Yamadaconfig PINCONF
56d90a5a30SMasahiro Yamada	bool "Support pin configuration controllers"
57d90a5a30SMasahiro Yamada	depends on PINCTRL_GENERIC
58d90a5a30SMasahiro Yamada	help
59d90a5a30SMasahiro Yamada	  This option enables pin configuration through the generic pinctrl
60d90a5a30SMasahiro Yamada	  framework.
61d90a5a30SMasahiro Yamada
62d90a5a30SMasahiro Yamadaconfig SPL_PINCTRL
630fa0abecSPhilipp Tomsich	bool "Support pin controllers in SPL"
64d90a5a30SMasahiro Yamada	depends on SPL && SPL_DM
65d90a5a30SMasahiro Yamada	help
66d90a5a30SMasahiro Yamada	  This option is an SPL-variant of the PINCTRL option.
67d90a5a30SMasahiro Yamada	  See the help of PINCTRL for details.
68d90a5a30SMasahiro Yamada
69d90a5a30SMasahiro Yamadaconfig SPL_PINCTRL_FULL
70d90a5a30SMasahiro Yamada	bool "Support full pin controllers in SPL"
71d90a5a30SMasahiro Yamada	depends on SPL_PINCTRL && SPL_OF_CONTROL
72b9747696SVikas Manocha	default n if TARGET_STM32F746_DISCO
73d90a5a30SMasahiro Yamada	default y
74d90a5a30SMasahiro Yamada	help
75d90a5a30SMasahiro Yamada	  This option is an SPL-variant of the PINCTRL_FULL option.
76d90a5a30SMasahiro Yamada	  See the help of PINCTRL_FULL for details.
77d90a5a30SMasahiro Yamada
78d90a5a30SMasahiro Yamadaconfig SPL_PINCTRL_GENERIC
79d90a5a30SMasahiro Yamada	bool "Support generic pin controllers in SPL"
80d90a5a30SMasahiro Yamada	depends on SPL_PINCTRL_FULL
81d90a5a30SMasahiro Yamada	default y
82d90a5a30SMasahiro Yamada	help
83d90a5a30SMasahiro Yamada	  This option is an SPL-variant of the PINCTRL_GENERIC option.
84d90a5a30SMasahiro Yamada	  See the help of PINCTRL_GENERIC for details.
85d90a5a30SMasahiro Yamada
86d90a5a30SMasahiro Yamadaconfig SPL_PINMUX
87d90a5a30SMasahiro Yamada	bool "Support pin multiplexing controllers in SPL"
88d90a5a30SMasahiro Yamada	depends on SPL_PINCTRL_GENERIC
89d90a5a30SMasahiro Yamada	default y
90d90a5a30SMasahiro Yamada	help
91d90a5a30SMasahiro Yamada	  This option is an SPL-variant of the PINMUX option.
92d90a5a30SMasahiro Yamada	  See the help of PINMUX for details.
93458a0700SSimon Glass	  The pinctrl subsystem can add a substantial overhead to the SPL
94458a0700SSimon Glass	  image since it typically requires quite a few tables either in the
95458a0700SSimon Glass	  driver or in the device tree. If this is acceptable and you need
96458a0700SSimon Glass	  to adjust pin multiplexing in SPL in order to boot into U-Boot,
97458a0700SSimon Glass	  enable this option. You will need to enable device tree in SPL
98458a0700SSimon Glass	  for this to work.
99d90a5a30SMasahiro Yamada
100d90a5a30SMasahiro Yamadaconfig SPL_PINCONF
101d90a5a30SMasahiro Yamada	bool "Support pin configuration controllers in SPL"
102d90a5a30SMasahiro Yamada	depends on SPL_PINCTRL_GENERIC
103d90a5a30SMasahiro Yamada	help
104d90a5a30SMasahiro Yamada	  This option is an SPL-variant of the PINCONF option.
105d90a5a30SMasahiro Yamada	  See the help of PINCONF for details.
106d90a5a30SMasahiro Yamada
107d90a5a30SMasahiro Yamadaif PINCTRL || SPL_PINCTRL
108d90a5a30SMasahiro Yamada
10951c7f348SPhilipp Tomsichconfig PINCTRL_AR933X
110a79d0643SWills Wang	bool "QCA/Athores ar933x pin control driver"
111a79d0643SWills Wang	depends on DM && SOC_AR933X
112a79d0643SWills Wang	help
113a79d0643SWills Wang	  Support pin multiplexing control on QCA/Athores ar933x SoCs.
114a79d0643SWills Wang	  The driver is controlled by a device tree node which contains
115a79d0643SWills Wang	  both the GPIO definitions and pin control functions for each
116a79d0643SWills Wang	  available multiplex function.
117a79d0643SWills Wang
1189319a756SWenyou Yangconfig PINCTRL_AT91
1199319a756SWenyou Yang	bool "AT91 pinctrl driver"
1209319a756SWenyou Yang	depends on DM
1219319a756SWenyou Yang	help
1229319a756SWenyou Yang	  This option is to enable the AT91 pinctrl driver for AT91 PIO
12351c7f348SPhilipp Tomsich	  controller.
12451c7f348SPhilipp Tomsich
12551c7f348SPhilipp Tomsich	  AT91 PIO controller is a combined gpio-controller, pin-mux and
12651c7f348SPhilipp Tomsich	  pin-config module. Each I/O pin may be dedicated as a general-purpose
12751c7f348SPhilipp Tomsich	  I/O or be assigned to a function of an embedded peripheral. Each I/O
12851c7f348SPhilipp Tomsich	  pin has a glitch filter providing rejection of glitches lower than
12951c7f348SPhilipp Tomsich	  one-half of peripheral clock cycle and a debouncing filter providing
13051c7f348SPhilipp Tomsich	  rejection of unwanted pulses from key or push button operations. You
13151c7f348SPhilipp Tomsich	  can also control the multi-driver capability, pull-up and pull-down
13251c7f348SPhilipp Tomsich	  feature on each I/O pin.
1339319a756SWenyou Yang
134ac72e174SWenyou Yangconfig PINCTRL_AT91PIO4
135ac72e174SWenyou Yang	bool "AT91 PIO4 pinctrl driver"
136ac72e174SWenyou Yang	depends on DM
137ac72e174SWenyou Yang	help
138ac72e174SWenyou Yang	  This option is to enable the AT91 pinctrl driver for AT91 PIO4
139ac72e174SWenyou Yang	  controller which is available on SAMA5D2 SoC.
140ac72e174SWenyou Yang
14151c7f348SPhilipp Tomsichconfig PINCTRL_PIC32
14251c7f348SPhilipp Tomsich	bool "Microchip PIC32 pin-control and pin-mux driver"
14351c7f348SPhilipp Tomsich	depends on DM && MACH_PIC32
14451c7f348SPhilipp Tomsich	default y
14551c7f348SPhilipp Tomsich	help
14651c7f348SPhilipp Tomsich	  Supports individual pin selection and configuration for each
14751c7f348SPhilipp Tomsich	  remappable peripheral available on Microchip PIC32
14851c7f348SPhilipp Tomsich	  SoCs. This driver is controlled by a device tree node which
149cb4d1bbeSChris Packham	  contains both GPIO definition and pin control functions.
15051c7f348SPhilipp Tomsich
15151c7f348SPhilipp Tomsichconfig PINCTRL_QCA953X
15251c7f348SPhilipp Tomsich	bool "QCA/Athores qca953x pin control driver"
15351c7f348SPhilipp Tomsich	depends on DM && SOC_QCA953X
15451c7f348SPhilipp Tomsich	help
15551c7f348SPhilipp Tomsich	  Support pin multiplexing control on QCA/Athores qca953x SoCs.
15651c7f348SPhilipp Tomsich
15751c7f348SPhilipp Tomsich	  The driver is controlled by a device tree node which contains both
15851c7f348SPhilipp Tomsich	  the GPIO definitions and pin control functions for each available
15951c7f348SPhilipp Tomsich	  multiplex function.
16051c7f348SPhilipp Tomsich
16109aa7c46SAndy Yanconfig PINCTRL_ROCKCHIP_RV1108
16209aa7c46SAndy Yan	bool "Rockchip rv1108 pin control driver"
16309aa7c46SAndy Yan	depends on DM
16409aa7c46SAndy Yan	help
16509aa7c46SAndy Yan	  Support pin multiplexing control on Rockchip rv1108 SoC.
16609aa7c46SAndy Yan
16709aa7c46SAndy Yan	  The driver is controlled by a device tree node which contains
16809aa7c46SAndy Yan	  both the GPIO definitions and pin control functions for each
16909aa7c46SAndy Yan	  available multiplex function.
17009aa7c46SAndy Yan
1719c6a3c67SMasahiro Yamadaconfig PINCTRL_SANDBOX
1729c6a3c67SMasahiro Yamada	bool "Sandbox pinctrl driver"
1739c6a3c67SMasahiro Yamada	depends on SANDBOX
1749c6a3c67SMasahiro Yamada	help
17551c7f348SPhilipp Tomsich	  This enables pinctrl driver for sandbox.
1769c6a3c67SMasahiro Yamada
17751c7f348SPhilipp Tomsich	  Currently, this driver actually does nothing but print debug
17851c7f348SPhilipp Tomsich	  messages when pinctrl operations are invoked.
17994d53084SVikas Manocha
18044d5c371SFelix Brackconfig PINCTRL_SINGLE
18144d5c371SFelix Brack	bool "Single register pin-control and pin-multiplex driver"
18244d5c371SFelix Brack	depends on DM
18344d5c371SFelix Brack	help
18444d5c371SFelix Brack	  This enables pinctrl driver for systems using a single register for
18544d5c371SFelix Brack	  pin configuration and multiplexing. TI's AM335X SoCs are examples of
18644d5c371SFelix Brack	  such systems.
18751c7f348SPhilipp Tomsich
18844d5c371SFelix Brack	  Depending on the platform make sure to also enable OF_TRANSLATE and
18944d5c371SFelix Brack	  eventually SPL_OF_TRANSLATE to get correct address translations.
19044d5c371SFelix Brack
19151c7f348SPhilipp Tomsichconfig PINCTRL_STI
19251c7f348SPhilipp Tomsich	bool "STMicroelectronics STi pin-control and pin-mux driver"
19351c7f348SPhilipp Tomsich	depends on DM && ARCH_STI
19451c7f348SPhilipp Tomsich	default y
19551c7f348SPhilipp Tomsich	help
19651c7f348SPhilipp Tomsich	  Support pin multiplexing control on STMicrolectronics STi SoCs.
19751c7f348SPhilipp Tomsich
19851c7f348SPhilipp Tomsich	  The driver is controlled by a device tree node which contains both
19951c7f348SPhilipp Tomsich	  the GPIO definitions and pin control functions for each available
20051c7f348SPhilipp Tomsich	  multiplex function.
20151c7f348SPhilipp Tomsich
20251c7f348SPhilipp Tomsichconfig PINCTRL_STM32
20351c7f348SPhilipp Tomsich	bool "ST STM32 pin control driver"
20451c7f348SPhilipp Tomsich	depends on DM
20551c7f348SPhilipp Tomsich	help
20651c7f348SPhilipp Tomsich	  Supports pin multiplexing control on stm32 SoCs.
20751c7f348SPhilipp Tomsich
20851c7f348SPhilipp Tomsich	  The driver is controlled by a device tree node which contains both
20951c7f348SPhilipp Tomsich	  the GPIO definitions and pin control functions for each available
21051c7f348SPhilipp Tomsich	  multiplex function.
21151c7f348SPhilipp Tomsich
212d90a5a30SMasahiro Yamadaendif
213d90a5a30SMasahiro Yamada
214*c8ffe8c6Sryan_chensource "drivers/pinctrl/aspeed/Kconfig"
215efc46771SPhilipp Tomsichsource "drivers/pinctrl/broadcom/Kconfig"
216efc46771SPhilipp Tomsichsource "drivers/pinctrl/exynos/Kconfig"
21701aa9d1dSRyder Leesource "drivers/pinctrl/mediatek/Kconfig"
218efc46771SPhilipp Tomsichsource "drivers/pinctrl/meson/Kconfig"
219efc46771SPhilipp Tomsichsource "drivers/pinctrl/mscc/Kconfig"
220efc46771SPhilipp Tomsichsource "drivers/pinctrl/mvebu/Kconfig"
221745df68dSPeng Fansource "drivers/pinctrl/nxp/Kconfig"
222910df4d0SMarek Vasutsource "drivers/pinctrl/renesas/Kconfig"
2235a127325SPhilipp Tomsichsource "drivers/pinctrl/rockchip/Kconfig"
2245dc626f8SMasahiro Yamadasource "drivers/pinctrl/uniphier/Kconfig"
2255dc626f8SMasahiro Yamada
226d90a5a30SMasahiro Yamadaendmenu
227