Kconfig 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. #
  3. # PINCTRL infrastructure and drivers
  4. #
  5. menuconfig PINCTRL
  6. bool "Pin controllers"
  7. if PINCTRL
  8. config GENERIC_PINCTRL_GROUPS
  9. bool
  10. config PINMUX
  11. bool "Support pin multiplexing controllers" if COMPILE_TEST
  12. config GENERIC_PINMUX_FUNCTIONS
  13. bool
  14. select PINMUX
  15. config PINCONF
  16. bool "Support pin configuration controllers" if COMPILE_TEST
  17. config GENERIC_PINCONF
  18. bool
  19. select PINCONF
  20. config DEBUG_PINCTRL
  21. bool "Debug PINCTRL calls"
  22. depends on DEBUG_KERNEL
  23. help
  24. Say Y here to add some extra checks and diagnostics to PINCTRL calls.
  25. config PINCTRL_ARTPEC6
  26. bool "Axis ARTPEC-6 pin controller driver"
  27. depends on MACH_ARTPEC6
  28. select PINMUX
  29. select GENERIC_PINCONF
  30. help
  31. This is the driver for the Axis ARTPEC-6 pin controller. This driver
  32. supports pin function multiplexing as well as pin bias and drive
  33. strength configuration. Device tree integration instructions can be
  34. found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt
  35. config PINCTRL_AS3722
  36. tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
  37. depends on MFD_AS3722 && GPIOLIB
  38. select PINMUX
  39. select GENERIC_PINCONF
  40. help
  41. AS3722 device supports the configuration of GPIO pins for different
  42. functionality. This driver supports the pinmux, push-pull and
  43. open drain configuration for the GPIO pins of AS3722 devices. It also
  44. supports the GPIO functionality through gpiolib.
  45. config PINCTRL_AXP209
  46. tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"
  47. depends on MFD_AXP20X
  48. depends on OF
  49. select PINMUX
  50. select GENERIC_PINCONF
  51. select GPIOLIB
  52. help
  53. AXP PMICs provides multiple GPIOs that can be muxed for different
  54. functions. This driver bundles a pinctrl driver to select the function
  55. muxing and a GPIO driver to handle the GPIO when the GPIO function is
  56. selected.
  57. Say yes to enable pinctrl and GPIO support for the AXP209 PMIC
  58. config PINCTRL_AT91
  59. bool "AT91 pinctrl driver"
  60. depends on OF
  61. depends on ARCH_AT91
  62. select PINMUX
  63. select PINCONF
  64. select GPIOLIB
  65. select OF_GPIO
  66. select GPIOLIB_IRQCHIP
  67. help
  68. Say Y here to enable the at91 pinctrl driver
  69. config PINCTRL_AT91PIO4
  70. bool "AT91 PIO4 pinctrl driver"
  71. depends on OF
  72. depends on ARCH_AT91 || COMPILE_TEST
  73. select PINMUX
  74. select GENERIC_PINCONF
  75. select GPIOLIB
  76. select GPIOLIB_IRQCHIP
  77. select OF_GPIO
  78. help
  79. Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
  80. controller available on sama5d2 SoC.
  81. config PINCTRL_AMD
  82. tristate "AMD GPIO pin control"
  83. depends on HAS_IOMEM
  84. depends on ACPI || COMPILE_TEST
  85. select GPIOLIB
  86. select GPIOLIB_IRQCHIP
  87. select PINMUX
  88. select PINCONF
  89. select GENERIC_PINCONF
  90. help
  91. driver for memory mapped GPIO functionality on AMD platforms
  92. (x86 or arm).Most pins are usually muxed to some other
  93. functionality by firmware,so only a small amount is available
  94. for gpio use.
  95. Requires ACPI/FDT device enumeration code to set up a platform
  96. device.
  97. config PINCTRL_BM1880
  98. bool "Bitmain BM1880 Pinctrl driver"
  99. depends on OF && (ARCH_BITMAIN || COMPILE_TEST)
  100. default ARCH_BITMAIN
  101. select PINMUX
  102. help
  103. Pinctrl driver for Bitmain BM1880 SoC.
  104. config PINCTRL_DA850_PUPD
  105. tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups"
  106. depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
  107. select PINCONF
  108. select GENERIC_PINCONF
  109. help
  110. Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
  111. pullup/pulldown pin groups.
  112. config PINCTRL_DA9062
  113. tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support"
  114. depends on MFD_DA9062
  115. select GPIOLIB
  116. help
  117. The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for
  118. different functions. This driver bundles a pinctrl driver to select the
  119. function muxing and a GPIO driver to handle the GPIO when the GPIO
  120. function is selected.
  121. Say yes to enable pinctrl and GPIO support for the DA9062 PMIC.
  122. config PINCTRL_DIGICOLOR
  123. bool
  124. depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
  125. select PINMUX
  126. select GENERIC_PINCONF
  127. config PINCTRL_LANTIQ
  128. bool
  129. depends on LANTIQ
  130. select PINMUX
  131. select PINCONF
  132. config PINCTRL_LPC18XX
  133. bool "NXP LPC18XX/43XX SCU pinctrl driver"
  134. depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
  135. default ARCH_LPC18XX
  136. select PINMUX
  137. select GENERIC_PINCONF
  138. help
  139. Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
  140. config PINCTRL_FALCON
  141. bool
  142. depends on SOC_FALCON
  143. depends on PINCTRL_LANTIQ
  144. config PINCTRL_GEMINI
  145. bool
  146. depends on ARCH_GEMINI
  147. default ARCH_GEMINI
  148. select PINMUX
  149. select GENERIC_PINCONF
  150. select MFD_SYSCON
  151. config PINCTRL_MCP23S08_I2C
  152. tristate
  153. select REGMAP_I2C
  154. config PINCTRL_MCP23S08_SPI
  155. tristate
  156. select REGMAP_SPI
  157. config PINCTRL_MCP23S08
  158. tristate "Microchip MCP23xxx I/O expander"
  159. depends on SPI_MASTER || I2C
  160. select GPIOLIB
  161. select GPIOLIB_IRQCHIP
  162. select GENERIC_PINCONF
  163. select PINCTRL_MCP23S08_I2C if I2C
  164. select PINCTRL_MCP23S08_SPI if SPI_MASTER
  165. help
  166. SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /
  167. MCP23008 / MCP23017 / MCP23018 I/O expanders.
  168. This provides a GPIO interface supporting inputs and outputs and a
  169. corresponding interrupt-controller.
  170. config PINCTRL_OXNAS
  171. bool
  172. depends on OF
  173. select PINMUX
  174. select PINCONF
  175. select GENERIC_PINCONF
  176. select GPIOLIB
  177. select OF_GPIO
  178. select GPIOLIB_IRQCHIP
  179. select MFD_SYSCON
  180. config PINCTRL_ROCKCHIP
  181. bool
  182. depends on OF
  183. select PINMUX
  184. select GENERIC_PINCONF
  185. select GENERIC_IRQ_CHIP
  186. select MFD_SYSCON
  187. select OF_GPIO
  188. config PINCTRL_SINGLE
  189. tristate "One-register-per-pin type device tree based pinctrl driver"
  190. depends on OF
  191. depends on HAS_IOMEM
  192. select GENERIC_PINCTRL_GROUPS
  193. select GENERIC_PINMUX_FUNCTIONS
  194. select GENERIC_PINCONF
  195. help
  196. This selects the device tree based generic pinctrl driver.
  197. config PINCTRL_SIRF
  198. bool "CSR SiRFprimaII pin controller driver"
  199. depends on ARCH_SIRF
  200. select PINMUX
  201. select PINCONF
  202. select GENERIC_PINCONF
  203. select GPIOLIB_IRQCHIP
  204. config PINCTRL_SX150X
  205. bool "Semtech SX150x I2C GPIO expander pinctrl driver"
  206. depends on I2C=y
  207. select PINMUX
  208. select PINCONF
  209. select GENERIC_PINCONF
  210. select GPIOLIB
  211. select GPIOLIB_IRQCHIP
  212. select REGMAP
  213. help
  214. Say yes here to provide support for Semtech SX150x-series I2C
  215. GPIO expanders as pinctrl module.
  216. Compatible models include:
  217. - 8 bits: sx1508q, sx1502q
  218. - 16 bits: sx1509q, sx1506q
  219. config PINCTRL_PISTACHIO
  220. def_bool y if MACH_PISTACHIO
  221. depends on GPIOLIB
  222. select PINMUX
  223. select GENERIC_PINCONF
  224. select GPIOLIB_IRQCHIP
  225. select OF_GPIO
  226. config PINCTRL_ST
  227. bool
  228. depends on OF
  229. select PINMUX
  230. select PINCONF
  231. select GPIOLIB_IRQCHIP
  232. config PINCTRL_STMFX
  233. tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
  234. depends on I2C
  235. depends on OF_GPIO
  236. select GENERIC_PINCONF
  237. select GPIOLIB_IRQCHIP
  238. select MFD_STMFX
  239. help
  240. Driver for STMicroelectronics Multi-Function eXpander (STMFX)
  241. GPIO expander.
  242. This provides a GPIO interface supporting inputs and outputs,
  243. and configuring push-pull, open-drain, and can also be used as
  244. interrupt-controller.
  245. config PINCTRL_U300
  246. bool "U300 pin controller driver"
  247. depends on ARCH_U300
  248. select PINMUX
  249. select GENERIC_PINCONF
  250. config PINCTRL_COH901
  251. bool "ST-Ericsson U300 COH 901 335/571 GPIO"
  252. depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
  253. select GPIOLIB_IRQCHIP
  254. help
  255. Say yes here to support GPIO interface on ST-Ericsson U300.
  256. The names of the two IP block variants supported are
  257. COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
  258. ports of 8 GPIO pins each.
  259. config PINCTRL_MAX77620
  260. tristate "MAX77620/MAX20024 Pincontrol support"
  261. depends on MFD_MAX77620 && OF
  262. select PINMUX
  263. select GENERIC_PINCONF
  264. help
  265. Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
  266. This PMIC has 8 GPIO pins that work as GPIO as well as special
  267. function in alternate mode. This driver also configure push-pull,
  268. open drain, FPS slots etc.
  269. config PINCTRL_PALMAS
  270. tristate "Pinctrl driver for the PALMAS Series MFD devices"
  271. depends on OF && MFD_PALMAS
  272. select PINMUX
  273. select GENERIC_PINCONF
  274. help
  275. Palmas device supports the configuration of pins for different
  276. functionality. This driver supports the pinmux, push-pull and
  277. open drain configuration for the Palmas series devices like
  278. TPS65913, TPS80036 etc.
  279. config PINCTRL_PIC32
  280. bool "Microchip PIC32 pin controller driver"
  281. depends on OF
  282. depends on MACH_PIC32
  283. select PINMUX
  284. select GENERIC_PINCONF
  285. select GPIOLIB_IRQCHIP
  286. select OF_GPIO
  287. help
  288. This is the pin controller and gpio driver for Microchip PIC32
  289. microcontrollers. This option is selected automatically when specific
  290. machine and arch are selected to build.
  291. config PINCTRL_PIC32MZDA
  292. def_bool y if PIC32MZDA
  293. select PINCTRL_PIC32
  294. config PINCTRL_ZYNQ
  295. bool "Pinctrl driver for Xilinx Zynq"
  296. depends on ARCH_ZYNQ
  297. select PINMUX
  298. select GENERIC_PINCONF
  299. help
  300. This selects the pinctrl driver for Xilinx Zynq.
  301. config PINCTRL_INGENIC
  302. bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
  303. default MACH_INGENIC
  304. depends on OF
  305. depends on MIPS || COMPILE_TEST
  306. select GENERIC_PINCONF
  307. select GENERIC_PINCTRL_GROUPS
  308. select GENERIC_PINMUX_FUNCTIONS
  309. select GPIOLIB
  310. select GPIOLIB_IRQCHIP
  311. select REGMAP_MMIO
  312. config PINCTRL_RK805
  313. tristate "Pinctrl and GPIO driver for RK805 PMIC"
  314. depends on MFD_RK808
  315. select GPIOLIB
  316. select PINMUX
  317. select GENERIC_PINCONF
  318. help
  319. This selects the pinctrl driver for RK805.
  320. config PINCTRL_OCELOT
  321. bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
  322. depends on OF
  323. depends on HAS_IOMEM
  324. select GPIOLIB
  325. select GPIOLIB_IRQCHIP
  326. select GENERIC_PINCONF
  327. select GENERIC_PINCTRL_GROUPS
  328. select GENERIC_PINMUX_FUNCTIONS
  329. select OF_GPIO
  330. select REGMAP_MMIO
  331. source "drivers/pinctrl/actions/Kconfig"
  332. source "drivers/pinctrl/aspeed/Kconfig"
  333. source "drivers/pinctrl/bcm/Kconfig"
  334. source "drivers/pinctrl/berlin/Kconfig"
  335. source "drivers/pinctrl/freescale/Kconfig"
  336. source "drivers/pinctrl/intel/Kconfig"
  337. source "drivers/pinctrl/mvebu/Kconfig"
  338. source "drivers/pinctrl/nomadik/Kconfig"
  339. source "drivers/pinctrl/nuvoton/Kconfig"
  340. source "drivers/pinctrl/pxa/Kconfig"
  341. source "drivers/pinctrl/qcom/Kconfig"
  342. source "drivers/pinctrl/renesas/Kconfig"
  343. source "drivers/pinctrl/samsung/Kconfig"
  344. source "drivers/pinctrl/spear/Kconfig"
  345. source "drivers/pinctrl/sprd/Kconfig"
  346. source "drivers/pinctrl/stm32/Kconfig"
  347. source "drivers/pinctrl/sunxi/Kconfig"
  348. source "drivers/pinctrl/tegra/Kconfig"
  349. source "drivers/pinctrl/ti/Kconfig"
  350. source "drivers/pinctrl/uniphier/Kconfig"
  351. source "drivers/pinctrl/vt8500/Kconfig"
  352. source "drivers/pinctrl/mediatek/Kconfig"
  353. source "drivers/pinctrl/zte/Kconfig"
  354. source "drivers/pinctrl/meson/Kconfig"
  355. source "drivers/pinctrl/cirrus/Kconfig"
  356. source "drivers/pinctrl/visconti/Kconfig"
  357. source "drivers/pinctrl/thead/Kconfig"
  358. config PINCTRL_XWAY
  359. bool
  360. depends on SOC_TYPE_XWAY
  361. depends on PINCTRL_LANTIQ
  362. config PINCTRL_TB10X
  363. bool
  364. depends on OF && ARC_PLAT_TB10X
  365. select GPIOLIB
  366. config PINCTRL_EQUILIBRIUM
  367. tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC"
  368. depends on OF && HAS_IOMEM
  369. depends on X86 || COMPILE_TEST
  370. select PINMUX
  371. select PINCONF
  372. select GPIOLIB
  373. select GPIO_GENERIC
  374. select GPIOLIB_IRQCHIP
  375. select GENERIC_PINCONF
  376. select GENERIC_PINCTRL_GROUPS
  377. select GENERIC_PINMUX_FUNCTIONS
  378. help
  379. Equilibrium pinctrl driver is a pinctrl & GPIO driver for Intel Lightning
  380. Mountain network processor SoC that supports both the linux GPIO and pin
  381. control frameworks. It provides interfaces to setup pinmux, assign desired
  382. pin functions, configure GPIO attributes for LGM SoC pins. Pinmux and
  383. pinconf settings are retrieved from device tree.
  384. endif