brintos

brintos / linux-shallow public Read only

0
0
Text · 17.2 KiB · 354536d Raw
622 lines · plain
1# SPDX-License-Identifier: GPL-2.0-only2#3# PINCTRL infrastructure and drivers4#5 6menuconfig PINCTRL7	bool "Pin controllers"8 9if PINCTRL10 11config GENERIC_PINCTRL_GROUPS12	bool13 14config PINMUX15	bool "Support pin multiplexing controllers" if COMPILE_TEST16 17config GENERIC_PINMUX_FUNCTIONS18	bool19	select PINMUX20 21config PINCONF22	bool "Support pin configuration controllers" if COMPILE_TEST23 24config GENERIC_PINCONF25	bool26	select PINCONF27 28config DEBUG_PINCTRL29	bool "Debug PINCTRL calls"30	depends on DEBUG_KERNEL31	help32	  Say Y here to add some extra checks and diagnostics to PINCTRL calls.33 34config PINCTRL_AMD35	bool "AMD GPIO pin control"36	depends on HAS_IOMEM37	depends on ACPI || COMPILE_TEST38	select GPIOLIB39	select GPIOLIB_IRQCHIP40	select PINMUX41	select PINCONF42	select GENERIC_PINCONF43	help44	  The driver for memory mapped GPIO functionality on AMD platforms45	  (x86 or arm). Most of the pins are usually muxed to some other46	  functionality by firmware, so only a small amount is available47	  for GPIO use.48 49	  Requires ACPI/FDT device enumeration code to set up a platform50	  device.51 52config PINCTRL_APPLE_GPIO53	tristate "Apple SoC GPIO pin controller driver"54	depends on ARCH_APPLE55	select PINMUX56	select GPIOLIB57	select GPIOLIB_IRQCHIP58	select GENERIC_PINCTRL_GROUPS59	select GENERIC_PINMUX_FUNCTIONS60	select OF_GPIO61	help62	  This is the driver for the GPIO controller found on Apple ARM SoCs,63	  including M1.64 65	  This driver can also be built as a module. If so, the module66	  will be called pinctrl-apple-gpio.67 68config PINCTRL_ARTPEC669	bool "Axis ARTPEC-6 pin controller driver"70	depends on MACH_ARTPEC671	select PINMUX72	select GENERIC_PINCONF73	help74	  This is the driver for the Axis ARTPEC-6 pin controller. This driver75	  supports pin function multiplexing as well as pin bias and drive76	  strength configuration. Device tree integration instructions can be77	  found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt78 79config PINCTRL_AS372280	tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"81	depends on MFD_AS3722 && GPIOLIB82	select PINMUX83	select GENERIC_PINCONF84	help85	  AS3722 device supports the configuration of GPIO pins for different86	  functionality. This driver supports the pinmux, push-pull and87	  open drain configuration for the GPIO pins of AS3722 devices. It also88	  supports the GPIO functionality through gpiolib.89 90config PINCTRL_AT9191	bool "AT91 pinctrl driver"92	depends on OF93	depends on ARCH_AT9194	select PINMUX95	select PINCONF96	select GPIOLIB97	select OF_GPIO98	select GPIOLIB_IRQCHIP99	help100	  Say Y here to enable the at91 pinctrl driver101 102config PINCTRL_AT91PIO4103	bool "AT91 PIO4 pinctrl driver"104	depends on OF105	depends on HAS_IOMEM106	depends on ARCH_AT91 || COMPILE_TEST107	select PINMUX108	select GENERIC_PINCONF109	select GPIOLIB110	select GPIOLIB_IRQCHIP111	select OF_GPIO112	help113	  Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4114	  controller available on sama5d2 SoC.115 116config PINCTRL_AXP209117	tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"118	depends on MFD_AXP20X119	depends on OF120	select PINMUX121	select GENERIC_PINCONF122	select GPIOLIB123	help124	  AXP PMICs provides multiple GPIOs that can be muxed for different125	  functions. This driver bundles a pinctrl driver to select the function126	  muxing and a GPIO driver to handle the GPIO when the GPIO function is127	  selected.128	  Say Y to enable pinctrl and GPIO support for the AXP209 PMIC.129 130config PINCTRL_AW9523131	tristate "Awinic AW9523/AW9523B I2C GPIO expander pinctrl driver"132	depends on OF && I2C133	select PINMUX134	select PINCONF135	select GENERIC_PINCONF136	select GPIOLIB137	select GPIOLIB_IRQCHIP138	select REGMAP139	select REGMAP_I2C140	help141	  The Awinic AW9523/AW9523B is a multi-function I2C GPIO142	  expander with PWM functionality. This driver bundles a143	  pinctrl driver to select the function muxing and a GPIO144	  driver to handle GPIO, when the GPIO function is selected.145 146	  Say yes to enable pinctrl and GPIO support for the AW9523(B).147 148config PINCTRL_BM1880149	bool "Bitmain BM1880 Pinctrl driver"150	depends on OF && (ARCH_BITMAIN || COMPILE_TEST)151	default ARCH_BITMAIN152	select PINMUX153	help154	  Pinctrl driver for Bitmain BM1880 SoC.155 156config PINCTRL_CY8C95X0157	tristate "Cypress CY8C95X0 I2C pinctrl and GPIO driver"158	depends on I2C159	select GPIOLIB160	select GPIOLIB_IRQCHIP161	select PINMUX162	select PINCONF163	select GENERIC_PINCONF164	select REGMAP_I2C165	help166	  Support for 20/40/60 pin Cypress Cy8C95x0 pinctrl/gpio I2C expander.167	  This driver can also be built as a module. If so, the module will be168	  called pinctrl-cy8c95x0.169 170config PINCTRL_DA850_PUPD171	tristate "TI DA850/OMAP-L138/AM18XX pull-up and pull-down groups"172	depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)173	select PINCONF174	select GENERIC_PINCONF175	help176	  Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control177	  pull-up and pull-down pin groups.178 179config PINCTRL_DA9062180	tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support"181	depends on MFD_DA9062182	select GPIOLIB183	help184	  The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for185	  different functions. This driver bundles a pinctrl driver to select the186	  function muxing and a GPIO driver to handle the GPIO when the GPIO187	  function is selected.188 189	  Say Y to enable pinctrl and GPIO support for the DA9062 PMIC.190 191config PINCTRL_DIGICOLOR192	bool193	depends on ARCH_DIGICOLOR || COMPILE_TEST194	select PINMUX195	select GENERIC_PINCONF196 197config PINCTRL_EP93XX198	bool199	depends on ARCH_EP93XX || COMPILE_TEST200	select PINMUX201	select GENERIC_PINCONF202	select MFD_SYSCON203 204config PINCTRL_EQUILIBRIUM205	tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC"206	depends on OF && HAS_IOMEM207	depends on X86 || COMPILE_TEST208	select PINMUX209	select PINCONF210	select GPIOLIB211	select GPIO_GENERIC212	select GPIOLIB_IRQCHIP213	select GENERIC_PINCONF214	select GENERIC_PINCTRL_GROUPS215	select GENERIC_PINMUX_FUNCTIONS216	help217	  Equilibrium driver is a pinctrl and GPIO driver for Intel Lightning218	  Mountain network processor SoC that supports both the GPIO and pin219	  control frameworks. It provides interfaces to setup pin muxing, assign220	  desired pin functions, configure GPIO attributes for LGM SoC pins.221	  Pin muxing and pin config settings are retrieved from device tree.222 223config PINCTRL_EYEQ5224	bool "Mobileye EyeQ5 pinctrl driver"225	depends on OF226	depends on MACH_EYEQ5 || COMPILE_TEST227	select PINMUX228	select GENERIC_PINCONF229	select AUXILIARY_BUS230	default MACH_EYEQ5231	help232	  Pin controller driver for the Mobileye EyeQ5 platform. It does both233	  pin config & pin muxing. It does not handle GPIO.234 235	  Pin muxing supports two functions for each pin: first is GPIO, second236	  is pin-dependent. Pin config is about bias & drive strength.237 238config PINCTRL_GEMINI239	bool240	depends on ARCH_GEMINI241	default ARCH_GEMINI242	select PINMUX243	select GENERIC_PINCONF244	select MFD_SYSCON245 246config PINCTRL_INGENIC247	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"248	default MACH_INGENIC249	depends on OF250	depends on MIPS || COMPILE_TEST251	select GENERIC_PINCONF252	select GENERIC_PINCTRL_GROUPS253	select GENERIC_PINMUX_FUNCTIONS254	select GPIOLIB255	select GPIOLIB_IRQCHIP256	select REGMAP_MMIO257 258config PINCTRL_K210259	bool "Pinctrl driver for the Canaan Kendryte K210 SoC"260	depends on RISCV && SOC_CANAAN_K210 && OF261	select GENERIC_PINMUX_FUNCTIONS262	select GENERIC_PINCONF263	select GPIOLIB264	select OF_GPIO265	select REGMAP_MMIO266	default SOC_CANAAN_K210267	help268	  Add support for the Canaan Kendryte K210 RISC-V SOC Field269	  Programmable IO Array (FPIOA) controller.270 271config PINCTRL_KEEMBAY272	tristate "Pinctrl driver for Intel Keem Bay SoC"273	depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST)274	depends on HAS_IOMEM275	select PINMUX276	select PINCONF277	select GENERIC_PINCONF278	select GENERIC_PINCTRL_GROUPS279	select GENERIC_PINMUX_FUNCTIONS280	select GPIOLIB281	select GPIOLIB_IRQCHIP282	select GPIO_GENERIC283	help284	  This selects pin control driver for the Intel Keem Bay SoC.285	  It provides pin config functions such as pull-up, pull-down,286	  interrupt, drive strength, sec lock, Schmitt trigger, slew287	  rate control and direction control. This module will be288	  called as pinctrl-keembay.289 290config PINCTRL_LANTIQ291	bool292	depends on LANTIQ293	select PINMUX294	select PINCONF295 296config PINCTRL_FALCON297	bool298	depends on SOC_FALCON299	depends on PINCTRL_LANTIQ300 301config PINCTRL_LOONGSON2302	tristate "Pinctrl driver for the Loongson-2 SoC"303	depends on OF && (LOONGARCH || COMPILE_TEST)304	select PINMUX305	select GENERIC_PINCONF306	help307	 This selects pin control driver for the Loongson-2 SoC. It308	 provides pin config functions multiplexing.  GPIO pin pull-up,309	 pull-down functions are not supported. Say yes to enable310	 pinctrl for Loongson-2 SoC.311 312config PINCTRL_XWAY313	bool314	depends on SOC_TYPE_XWAY315	depends on PINCTRL_LANTIQ316 317config PINCTRL_LPC18XX318	bool "NXP LPC18XX/43XX SCU pinctrl driver"319	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)320	default ARCH_LPC18XX321	select PINMUX322	select GENERIC_PINCONF323	help324	  Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).325 326config PINCTRL_MAX77620327	tristate "MAX77620/MAX20024 Pincontrol support"328	depends on MFD_MAX77620 && OF329	select PINMUX330	select GENERIC_PINCONF331	help332	  Say Y here to enable Pin control support for Maxim MAX77620 PMIC.333	  This PMIC has 8 GPIO pins that work as GPIO as well as special334	  function in alternate mode. This driver also configure push-pull,335	  open drain, FPS slots etc.336 337config PINCTRL_MCP23S08_I2C338	tristate339	select REGMAP_I2C340 341config PINCTRL_MCP23S08_SPI342	tristate343	select REGMAP_SPI344 345config PINCTRL_MCP23S08346	tristate "Microchip MCP23xxx I/O expander"347	depends on SPI_MASTER || I2C348	select GPIOLIB349	select GPIOLIB_IRQCHIP350	select GENERIC_PINCONF351	select PINCTRL_MCP23S08_I2C if I2C352	select PINCTRL_MCP23S08_SPI if SPI_MASTER353	help354	  SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /355	  MCP23008 / MCP23017 / MCP23018 I/O expanders.356	  This provides a GPIO interface supporting inputs and outputs and a357	  corresponding interrupt-controller.358 359config PINCTRL_MICROCHIP_SGPIO360	tristate "Pinctrl driver for Microsemi/Microchip Serial GPIO"361	depends on OF362	depends on HAS_IOMEM363	select GPIOLIB364	select GPIOLIB_IRQCHIP365	select GENERIC_PINCONF366	select GENERIC_PINCTRL_GROUPS367	select GENERIC_PINMUX_FUNCTIONS368	select OF_GPIO369	help370	  Support for the serial GPIO interface used on Microsemi and371	  Microchip SoCs. By using a serial interface, the SIO372	  controller significantly extends the number of available373	  GPIOs with a minimum number of additional pins on the374	  device. The primary purpose of the SIO controller is to375	  connect control signals from SFP modules and to act as an376	  LED controller.377 378	  If compiled as a module, the module name will be379	  pinctrl-microchip-sgpio.380 381config PINCTRL_OCELOT382	tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"383	depends on OF384	depends on HAS_IOMEM385	select GPIOLIB386	select GPIOLIB_IRQCHIP387	select GENERIC_PINCONF388	select GENERIC_PINCTRL_GROUPS389	select GENERIC_PINMUX_FUNCTIONS390	select OF_GPIO391	select REGMAP_MMIO392	help393	  Support for the internal GPIO interfaces on Microsemi Ocelot and394	  Jaguar2 SoCs.395 396	  If conpiled as a module, the module name will be pinctrl-ocelot.397 398config PINCTRL_PALMAS399	tristate "Pinctrl driver for the PALMAS Series MFD devices"400	depends on OF && MFD_PALMAS401	select PINMUX402	select GENERIC_PINCONF403	help404	  Palmas device supports the configuration of pins for different405	  functionality. This driver supports the pinmux, push-pull and406	  open drain configuration for the Palmas series devices like407	  TPS65913, TPS80036 etc.408 409config PINCTRL_PEF2256410	tristate "Lantiq PEF2256 (FALC56) pin controller driver"411	depends on OF && FRAMER_PEF2256412	select PINMUX413	select PINCONF414	select GENERIC_PINCONF415	help416	  This option enables the pin controller support for the Lantiq PEF2256417	  framer, also known as FALC56.418 419	  If unsure, say N.420 421	  To compile this driver as a module, choose M here: the422	  module will be called pinctrl-pef2256.423 424config PINCTRL_PIC32425	bool "Microchip PIC32 pin controller driver"426	depends on OF427	depends on MACH_PIC32428	select PINMUX429	select GENERIC_PINCONF430	select GPIOLIB_IRQCHIP431	select OF_GPIO432	help433	  This is the pin controller and gpio driver for Microchip PIC32434	  microcontrollers. This option is selected automatically when specific435	  machine and arch are selected to build.436 437config PINCTRL_PIC32MZDA438	def_bool y if PIC32MZDA439	select PINCTRL_PIC32440 441config PINCTRL_PISTACHIO442	bool "IMG Pistachio SoC pinctrl driver"443	depends on OF && (MIPS || COMPILE_TEST)444	depends on GPIOLIB445	select PINMUX446	select GENERIC_PINCONF447	select GPIOLIB_IRQCHIP448	select OF_GPIO449	help450	  This support pinctrl and GPIO driver for IMG Pistachio SoC.451 452config PINCTRL_RK805453	tristate "Pinctrl and GPIO driver for RK805 PMIC"454	depends on MFD_RK8XX455	select GPIOLIB456	select PINMUX457	select GENERIC_PINCONF458	help459	  This selects the pinctrl driver for RK805.460 461config PINCTRL_ROCKCHIP462	tristate "Rockchip gpio and pinctrl driver"463	depends on ARCH_ROCKCHIP || COMPILE_TEST464	depends on OF465	select GPIOLIB466	select PINMUX467	select GENERIC_PINCONF468	select GENERIC_IRQ_CHIP469	select MFD_SYSCON470	select OF_GPIO471	default ARCH_ROCKCHIP472	help473          This support pinctrl and GPIO driver for Rockchip SoCs.474 475config PINCTRL_SCMI476	tristate "Pinctrl driver using SCMI protocol interface"477	depends on ARM_SCMI_PROTOCOL || COMPILE_TEST478	select PINMUX479	select GENERIC_PINCONF480	help481	  This driver provides support for pinctrl which is controlled482	  by firmware that implements the SCMI interface.483	  It uses SCMI Message Protocol to interact with the484	  firmware providing all the pinctrl controls.485 486config PINCTRL_SINGLE487	tristate "One-register-per-pin type device tree based pinctrl driver"488	depends on OF489	depends on HAS_IOMEM490	select GENERIC_PINCTRL_GROUPS491	select GENERIC_PINMUX_FUNCTIONS492	select GENERIC_PINCONF493	help494	  This selects the device tree based generic pinctrl driver.495 496config PINCTRL_ST497	bool498	depends on OF499	select PINMUX500	select PINCONF501	select GPIOLIB_IRQCHIP502 503config PINCTRL_STMFX504	tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"505	depends on I2C506	depends on OF_GPIO507	select GENERIC_PINCONF508	select GPIOLIB_IRQCHIP509	select MFD_STMFX510	help511	  Driver for STMicroelectronics Multi-Function eXpander (STMFX)512	  GPIO expander.513	  This provides a GPIO interface supporting inputs and outputs,514	  and configuring push-pull, open-drain, and can also be used as515	  interrupt-controller.516 517config PINCTRL_SX150X518	bool "Semtech SX150x I2C GPIO expander pinctrl driver"519	depends on I2C=y520	select PINMUX521	select PINCONF522	select GENERIC_PINCONF523	select GPIOLIB524	select GPIOLIB_IRQCHIP525	select REGMAP526	help527	  Say Y here to provide support for Semtech SX150x-series I2C528	  GPIO expanders as pinctrl module.529	  Compatible models include:530	  - 8 bits:  sx1508q, sx1502q531	  - 16 bits: sx1509q, sx1506q532 533config PINCTRL_TB10X534	bool535	depends on OF && ARC_PLAT_TB10X536	select GPIOLIB537 538config PINCTRL_TPS6594539	tristate "Pinctrl and GPIO driver for TI TPS6594 PMIC"540	depends on OF && MFD_TPS6594541	default MFD_TPS6594542	select PINMUX543	select GPIOLIB544	select REGMAP545	select GPIO_REGMAP546	select GENERIC_PINCONF547	help548	  Say Y to select the pinmuxing and GPIOs driver for the TPS6594549	  PMICs chip family.550 551	  This driver can also be built as a module552	  called tps6594-pinctrl.553 554config PINCTRL_ZYNQ555	bool "Pinctrl driver for Xilinx Zynq"556	depends on ARCH_ZYNQ557	select PINMUX558	select GENERIC_PINCONF559	help560	  This selects the pinctrl driver for Xilinx Zynq.561 562config PINCTRL_ZYNQMP563	tristate "Pinctrl driver for Xilinx ZynqMP"564	depends on ZYNQMP_FIRMWARE565	select PINMUX566	select GENERIC_PINCONF567	default ZYNQMP_FIRMWARE568	help569	  This selects the pinctrl driver for Xilinx ZynqMP platform.570	  This driver will query the pin information from the firmware571	  and allow configuring the pins.572	  Configuration can include the mux function to select on those573	  pin(s)/group(s), and various pin configuration parameters574	  such as pull-up, slew rate, etc.575	  This driver can also be built as a module. If so, the module576	  will be called pinctrl-zynqmp.577 578config PINCTRL_MLXBF3579	tristate "NVIDIA BlueField-3 SoC Pinctrl driver"580	depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST581	select PINMUX582	select GPIOLIB583	select GPIOLIB_IRQCHIP584	help585	  Say Y to select the pinctrl driver for BlueField-3 SoCs.586	  This pin controller allows selecting the mux function for587	  each pin. This driver can also be built as a module called588	  pinctrl-mlxbf3.589 590source "drivers/pinctrl/actions/Kconfig"591source "drivers/pinctrl/aspeed/Kconfig"592source "drivers/pinctrl/bcm/Kconfig"593source "drivers/pinctrl/berlin/Kconfig"594source "drivers/pinctrl/cirrus/Kconfig"595source "drivers/pinctrl/freescale/Kconfig"596source "drivers/pinctrl/intel/Kconfig"597source "drivers/pinctrl/mediatek/Kconfig"598source "drivers/pinctrl/meson/Kconfig"599source "drivers/pinctrl/mvebu/Kconfig"600source "drivers/pinctrl/nomadik/Kconfig"601source "drivers/pinctrl/nuvoton/Kconfig"602source "drivers/pinctrl/nxp/Kconfig"603source "drivers/pinctrl/pxa/Kconfig"604source "drivers/pinctrl/qcom/Kconfig"605source "drivers/pinctrl/realtek/Kconfig"606source "drivers/pinctrl/renesas/Kconfig"607source "drivers/pinctrl/samsung/Kconfig"608source "drivers/pinctrl/sophgo/Kconfig"609source "drivers/pinctrl/spear/Kconfig"610source "drivers/pinctrl/sprd/Kconfig"611source "drivers/pinctrl/starfive/Kconfig"612source "drivers/pinctrl/stm32/Kconfig"613source "drivers/pinctrl/sunplus/Kconfig"614source "drivers/pinctrl/sunxi/Kconfig"615source "drivers/pinctrl/tegra/Kconfig"616source "drivers/pinctrl/ti/Kconfig"617source "drivers/pinctrl/uniphier/Kconfig"618source "drivers/pinctrl/visconti/Kconfig"619source "drivers/pinctrl/vt8500/Kconfig"620 621endif622