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 50458a0700SSimon Glass framework. Most SoCs have their own own multiplexing arrangement 51458a0700SSimon Glass where a single pin can be used for several functions. An SoC pinctrl 52458a0700SSimon Glass driver 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 63d90a5a30SMasahiro Yamada bool "Support pin controlloers 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 72d90a5a30SMasahiro Yamada default y 73d90a5a30SMasahiro Yamada help 74d90a5a30SMasahiro Yamada This option is an SPL-variant of the PINCTRL_FULL option. 75d90a5a30SMasahiro Yamada See the help of PINCTRL_FULL for details. 76d90a5a30SMasahiro Yamada 77d90a5a30SMasahiro Yamadaconfig SPL_PINCTRL_GENERIC 78d90a5a30SMasahiro Yamada bool "Support generic pin controllers in SPL" 79d90a5a30SMasahiro Yamada depends on SPL_PINCTRL_FULL 80d90a5a30SMasahiro Yamada default y 81d90a5a30SMasahiro Yamada help 82d90a5a30SMasahiro Yamada This option is an SPL-variant of the PINCTRL_GENERIC option. 83d90a5a30SMasahiro Yamada See the help of PINCTRL_GENERIC for details. 84d90a5a30SMasahiro Yamada 85d90a5a30SMasahiro Yamadaconfig SPL_PINMUX 86d90a5a30SMasahiro Yamada bool "Support pin multiplexing controllers in SPL" 87d90a5a30SMasahiro Yamada depends on SPL_PINCTRL_GENERIC 88d90a5a30SMasahiro Yamada default y 89d90a5a30SMasahiro Yamada help 90d90a5a30SMasahiro Yamada This option is an SPL-variant of the PINMUX option. 91d90a5a30SMasahiro Yamada See the help of PINMUX for details. 92458a0700SSimon Glass The pinctrl subsystem can add a substantial overhead to the SPL 93458a0700SSimon Glass image since it typically requires quite a few tables either in the 94458a0700SSimon Glass driver or in the device tree. If this is acceptable and you need 95458a0700SSimon Glass to adjust pin multiplexing in SPL in order to boot into U-Boot, 96458a0700SSimon Glass enable this option. You will need to enable device tree in SPL 97458a0700SSimon Glass for this to work. 98d90a5a30SMasahiro Yamada 99d90a5a30SMasahiro Yamadaconfig SPL_PINCONF 100d90a5a30SMasahiro Yamada bool "Support pin configuration controllers in SPL" 101d90a5a30SMasahiro Yamada depends on SPL_PINCTRL_GENERIC 102d90a5a30SMasahiro Yamada help 103d90a5a30SMasahiro Yamada This option is an SPL-variant of the PINCONF option. 104d90a5a30SMasahiro Yamada See the help of PINCONF for details. 105d90a5a30SMasahiro Yamada 106d90a5a30SMasahiro Yamadaif PINCTRL || SPL_PINCTRL 107d90a5a30SMasahiro Yamada 108a79d0643SWills Wangconfig AR933X_PINCTRL 109a79d0643SWills Wang bool "QCA/Athores ar933x pin control driver" 110a79d0643SWills Wang depends on DM && SOC_AR933X 111a79d0643SWills Wang help 112a79d0643SWills Wang Support pin multiplexing control on QCA/Athores ar933x SoCs. 113a79d0643SWills Wang The driver is controlled by a device tree node which contains 114a79d0643SWills Wang both the GPIO definitions and pin control functions for each 115a79d0643SWills Wang available multiplex function. 116a79d0643SWills Wang 117c102453aSWills Wangconfig QCA953X_PINCTRL 118c102453aSWills Wang bool "QCA/Athores qca953x pin control driver" 119c102453aSWills Wang depends on DM && SOC_QCA953X 120c102453aSWills Wang help 121c102453aSWills Wang Support pin multiplexing control on QCA/Athores qca953x SoCs. 122c102453aSWills Wang The driver is controlled by a device tree node which contains 123c102453aSWills Wang both the GPIO definitions and pin control functions for each 124c102453aSWills Wang available multiplex function. 125c102453aSWills Wang 12623c3042bSHeiko Stübnerconfig ROCKCHIP_RK3036_PINCTRL 12749ecaa92Shuang lin bool "Rockchip rk3036 pin control driver" 12849ecaa92Shuang lin depends on DM 12949ecaa92Shuang lin help 13049ecaa92Shuang lin Support pin multiplexing control on Rockchip rk3036 SoCs. The driver is 13149ecaa92Shuang lin controlled by a device tree node which contains both the GPIO 13249ecaa92Shuang lin definitions and pin control functions for each available multiplex 13349ecaa92Shuang lin function. 13449ecaa92Shuang lin 135*041cdb5fSHeiko Stübnerconfig ROCKCHIP_RK3288_PINCTRL 136*041cdb5fSHeiko Stübner bool "Rockchip pin control driver" 137*041cdb5fSHeiko Stübner depends on DM 138*041cdb5fSHeiko Stübner help 139*041cdb5fSHeiko Stübner Support pin multiplexing control on Rockchip rk3288 SoCs. The driver 140*041cdb5fSHeiko Stübner is controlled by a device tree node which contains both the GPIO 141*041cdb5fSHeiko Stübner definitions and pin control functions for each available multiplex 142*041cdb5fSHeiko Stübner function. 143*041cdb5fSHeiko Stübner 1449c6a3c67SMasahiro Yamadaconfig PINCTRL_SANDBOX 1459c6a3c67SMasahiro Yamada bool "Sandbox pinctrl driver" 1469c6a3c67SMasahiro Yamada depends on SANDBOX 1479c6a3c67SMasahiro Yamada help 1489c6a3c67SMasahiro Yamada This enables pinctrl driver for sandbox. Currently, this driver 1499c6a3c67SMasahiro Yamada actually does nothing but print debug messages when pinctrl 1509c6a3c67SMasahiro Yamada operations are invoked. 1519c6a3c67SMasahiro Yamada 1525f266c60SPurna Chandra Mandalconfig PIC32_PINCTRL 1535f266c60SPurna Chandra Mandal bool "Microchip PIC32 pin-control and pin-mux driver" 1545f266c60SPurna Chandra Mandal depends on DM && MACH_PIC32 1555f266c60SPurna Chandra Mandal default y 1565f266c60SPurna Chandra Mandal help 1575f266c60SPurna Chandra Mandal Supports individual pin selection and configuration for each remappable 1585f266c60SPurna Chandra Mandal peripheral available on Microchip PIC32 SoCs. This driver is controlled 1595f266c60SPurna Chandra Mandal by a device tree node which contains both GPIO defintion and pin control 1605f266c60SPurna Chandra Mandal functions. 1615f266c60SPurna Chandra Mandal 162d90a5a30SMasahiro Yamadaendif 163d90a5a30SMasahiro Yamada 164745df68dSPeng Fansource "drivers/pinctrl/nxp/Kconfig" 1655dc626f8SMasahiro Yamadasource "drivers/pinctrl/uniphier/Kconfig" 16616ca80adSThomas Abrahamsource "drivers/pinctrl/exynos/Kconfig" 1675dc626f8SMasahiro Yamada 168d90a5a30SMasahiro Yamadaendmenu 169