Kconfig 9.7 KB

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