xref: /linux/drivers/pinctrl/Kconfig (revision eafd95ea74846eda3e3eac6b2bb7f34619d8a6f8)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
22744e8afSLinus Walleij#
32744e8afSLinus Walleij# PINCTRL infrastructure and drivers
42744e8afSLinus Walleij#
52744e8afSLinus Walleij
6d219b924SPhil Reidmenuconfig PINCTRL
7d219b924SPhil Reid	bool "Pin controllers"
82744e8afSLinus Walleij
9d219b924SPhil Reidif PINCTRL
1045f034efSLinus Walleij
11c033a718SLinus Walleijconfig GENERIC_PINCTRL_GROUPS
12c7059c5aSTony Lindgren	bool
13c7059c5aSTony Lindgren
142744e8afSLinus Walleijconfig PINMUX
15244e95a7SUwe Kleine-König	bool "Support pin multiplexing controllers" if COMPILE_TEST
16ae6b4d85SLinus Walleij
17a76edc89STony Lindgrenconfig GENERIC_PINMUX_FUNCTIONS
18a76edc89STony Lindgren	bool
19a76edc89STony Lindgren	select PINMUX
20a76edc89STony Lindgren
21ae6b4d85SLinus Walleijconfig PINCONF
22244e95a7SUwe Kleine-König	bool "Support pin configuration controllers" if COMPILE_TEST
232744e8afSLinus Walleij
24394349f7SLinus Walleijconfig GENERIC_PINCONF
25394349f7SLinus Walleij	bool
26394349f7SLinus Walleij	select PINCONF
27394349f7SLinus Walleij
282744e8afSLinus Walleijconfig DEBUG_PINCTRL
292744e8afSLinus Walleij	bool "Debug PINCTRL calls"
302744e8afSLinus Walleij	depends on DEBUG_KERNEL
312744e8afSLinus Walleij	help
322744e8afSLinus Walleij	  Say Y here to add some extra checks and diagnostics to PINCTRL calls.
332744e8afSLinus Walleij
34b124c8bdSAndy Shevchenkoconfig PINCTRL_AMD
3541ef3c1aSMario Limonciello	bool "AMD GPIO pin control"
36b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
37b124c8bdSAndy Shevchenko	depends on ACPI || COMPILE_TEST
38b124c8bdSAndy Shevchenko	select GPIOLIB
39b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
40b124c8bdSAndy Shevchenko	select PINMUX
41b124c8bdSAndy Shevchenko	select PINCONF
42b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
43b124c8bdSAndy Shevchenko	help
44b124c8bdSAndy Shevchenko	  The driver for memory mapped GPIO functionality on AMD platforms
45b124c8bdSAndy Shevchenko	  (x86 or arm). Most of the pins are usually muxed to some other
46b124c8bdSAndy Shevchenko	  functionality by firmware, so only a small amount is available
47b124c8bdSAndy Shevchenko	  for GPIO use.
48b124c8bdSAndy Shevchenko
49b124c8bdSAndy Shevchenko	  Requires ACPI/FDT device enumeration code to set up a platform
50b124c8bdSAndy Shevchenko	  device.
51b124c8bdSAndy Shevchenko
52e97435abSPratap Nirujogiconfig PINCTRL_AMDISP
53e97435abSPratap Nirujogi	tristate "AMDISP GPIO pin control"
54813b1a1aSGeert Uytterhoeven	depends on DRM_AMD_ISP || COMPILE_TEST
55e97435abSPratap Nirujogi	depends on HAS_IOMEM
56e97435abSPratap Nirujogi	select GPIOLIB
57e97435abSPratap Nirujogi	select PINCONF
58e97435abSPratap Nirujogi	select GENERIC_PINCONF
59e97435abSPratap Nirujogi	help
60e97435abSPratap Nirujogi	  The driver for memory mapped GPIO functionality on AMD platforms
61e97435abSPratap Nirujogi	  with ISP support. All the pins are output controlled only
62e97435abSPratap Nirujogi
63e97435abSPratap Nirujogi	  Requires AMDGPU to MFD add device for enumeration to set up as
64e97435abSPratap Nirujogi	  platform device.
65e97435abSPratap Nirujogi
66a0f160ffSJoey Goulyconfig PINCTRL_APPLE_GPIO
67a0f160ffSJoey Gouly	tristate "Apple SoC GPIO pin controller driver"
68a0f160ffSJoey Gouly	depends on ARCH_APPLE
69a0f160ffSJoey Gouly	select PINMUX
70a0f160ffSJoey Gouly	select GPIOLIB
71a0f160ffSJoey Gouly	select GPIOLIB_IRQCHIP
72a0f160ffSJoey Gouly	select GENERIC_PINCTRL_GROUPS
73a0f160ffSJoey Gouly	select GENERIC_PINMUX_FUNCTIONS
74a0f160ffSJoey Gouly	select OF_GPIO
75a0f160ffSJoey Gouly	help
76a0f160ffSJoey Gouly	  This is the driver for the GPIO controller found on Apple ARM SoCs,
77a0f160ffSJoey Gouly	  including M1.
78a0f160ffSJoey Gouly
79a0f160ffSJoey Gouly	  This driver can also be built as a module. If so, the module
80a0f160ffSJoey Gouly	  will be called pinctrl-apple-gpio.
81a0f160ffSJoey Gouly
8200df0582SJesper Nilssonconfig PINCTRL_ARTPEC6
8300df0582SJesper Nilsson	bool "Axis ARTPEC-6 pin controller driver"
8400df0582SJesper Nilsson	depends on MACH_ARTPEC6
8500df0582SJesper Nilsson	select PINMUX
8600df0582SJesper Nilsson	select GENERIC_PINCONF
8700df0582SJesper Nilsson	help
8800df0582SJesper Nilsson	  This is the driver for the Axis ARTPEC-6 pin controller. This driver
8900df0582SJesper Nilsson	  supports pin function multiplexing as well as pin bias and drive
9000df0582SJesper Nilsson	  strength configuration. Device tree integration instructions can be
9100df0582SJesper Nilsson	  found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt
9200df0582SJesper Nilsson
93c8ce8782SLaxman Dewanganconfig PINCTRL_AS3722
949385f35dSPaul Gortmaker	tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
95c8ce8782SLaxman Dewangan	depends on MFD_AS3722 && GPIOLIB
96c8ce8782SLaxman Dewangan	select PINMUX
97c8ce8782SLaxman Dewangan	select GENERIC_PINCONF
98c8ce8782SLaxman Dewangan	help
99c8ce8782SLaxman Dewangan	  AS3722 device supports the configuration of GPIO pins for different
100c8ce8782SLaxman Dewangan	  functionality. This driver supports the pinmux, push-pull and
101c8ce8782SLaxman Dewangan	  open drain configuration for the GPIO pins of AS3722 devices. It also
102c8ce8782SLaxman Dewangan	  supports the GPIO functionality through gpiolib.
103c8ce8782SLaxman Dewangan
1046732ae5cSJean-Christophe PLAGNIOL-VILLARDconfig PINCTRL_AT91
1056732ae5cSJean-Christophe PLAGNIOL-VILLARD	bool "AT91 pinctrl driver"
106*8e86af65SBartosz Golaszewski	depends on (OF && ARCH_AT91) || COMPILE_TEST
1076732ae5cSJean-Christophe PLAGNIOL-VILLARD	select PINMUX
1086732ae5cSJean-Christophe PLAGNIOL-VILLARD	select PINCONF
10980cc3732SAlexander Stein	select GPIOLIB
11080cc3732SAlexander Stein	select GPIOLIB_IRQCHIP
1116732ae5cSJean-Christophe PLAGNIOL-VILLARD	help
1126732ae5cSJean-Christophe PLAGNIOL-VILLARD	  Say Y here to enable the at91 pinctrl driver
1136732ae5cSJean-Christophe PLAGNIOL-VILLARD
11477618084SLudovic Desrochesconfig PINCTRL_AT91PIO4
11577618084SLudovic Desroches	bool "AT91 PIO4 pinctrl driver"
11677618084SLudovic Desroches	depends on OF
1170a03658dSTiezhu Yang	depends on HAS_IOMEM
118e682fcc7STiezhu Yang	depends on ARCH_AT91 || COMPILE_TEST
11977618084SLudovic Desroches	select PINMUX
12077618084SLudovic Desroches	select GENERIC_PINCONF
12177618084SLudovic Desroches	select GPIOLIB
12277618084SLudovic Desroches	select GPIOLIB_IRQCHIP
12377618084SLudovic Desroches	select OF_GPIO
12477618084SLudovic Desroches	help
12577618084SLudovic Desroches	  Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
12677618084SLudovic Desroches	  controller available on sama5d2 SoC.
12777618084SLudovic Desroches
128b124c8bdSAndy Shevchenkoconfig PINCTRL_AXP209
129b124c8bdSAndy Shevchenko	tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"
130b124c8bdSAndy Shevchenko	depends on MFD_AXP20X
131b124c8bdSAndy Shevchenko	depends on OF
13283b31c2aSPetr Mladek	select PINMUX
133dbad75ddSKen Xue	select GENERIC_PINCONF
134b124c8bdSAndy Shevchenko	select GPIOLIB
135dbad75ddSKen Xue	help
136b124c8bdSAndy Shevchenko	  AXP PMICs provides multiple GPIOs that can be muxed for different
137b124c8bdSAndy Shevchenko	  functions. This driver bundles a pinctrl driver to select the function
138b124c8bdSAndy Shevchenko	  muxing and a GPIO driver to handle the GPIO when the GPIO function is
139b124c8bdSAndy Shevchenko	  selected.
140b124c8bdSAndy Shevchenko	  Say Y to enable pinctrl and GPIO support for the AXP209 PMIC.
141dbad75ddSKen Xue
142576623d7SAngeloGioacchino Del Regnoconfig PINCTRL_AW9523
143d295ad7eSLinus Walleij	tristate "Awinic AW9523/AW9523B I2C GPIO expander pinctrl driver"
144576623d7SAngeloGioacchino Del Regno	depends on OF && I2C
145576623d7SAngeloGioacchino Del Regno	select PINMUX
146576623d7SAngeloGioacchino Del Regno	select PINCONF
147576623d7SAngeloGioacchino Del Regno	select GENERIC_PINCONF
148576623d7SAngeloGioacchino Del Regno	select GPIOLIB
149576623d7SAngeloGioacchino Del Regno	select GPIOLIB_IRQCHIP
150576623d7SAngeloGioacchino Del Regno	select REGMAP
151576623d7SAngeloGioacchino Del Regno	select REGMAP_I2C
152576623d7SAngeloGioacchino Del Regno	help
153576623d7SAngeloGioacchino Del Regno	  The Awinic AW9523/AW9523B is a multi-function I2C GPIO
154576623d7SAngeloGioacchino Del Regno	  expander with PWM functionality. This driver bundles a
155576623d7SAngeloGioacchino Del Regno	  pinctrl driver to select the function muxing and a GPIO
156576623d7SAngeloGioacchino Del Regno	  driver to handle GPIO, when the GPIO function is selected.
157576623d7SAngeloGioacchino Del Regno
158576623d7SAngeloGioacchino Del Regno	  Say yes to enable pinctrl and GPIO support for the AW9523(B).
159576623d7SAngeloGioacchino Del Regno
1608f3f0246SManivannan Sadhasivamconfig PINCTRL_BM1880
1618f3f0246SManivannan Sadhasivam	bool "Bitmain BM1880 Pinctrl driver"
1628293b3c6SManivannan Sadhasivam	depends on OF && (ARCH_BITMAIN || COMPILE_TEST)
1638293b3c6SManivannan Sadhasivam	default ARCH_BITMAIN
1648f3f0246SManivannan Sadhasivam	select PINMUX
1658f3f0246SManivannan Sadhasivam	help
1668f3f0246SManivannan Sadhasivam	  Pinctrl driver for Bitmain BM1880 SoC.
1678f3f0246SManivannan Sadhasivam
168e6cbbe42SPatrick Rudolphconfig PINCTRL_CY8C95X0
169e6cbbe42SPatrick Rudolph	tristate "Cypress CY8C95X0 I2C pinctrl and GPIO driver"
1708586466eSAndy Shevchenko	depends on I2C
171e6cbbe42SPatrick Rudolph	select GPIOLIB
172e6cbbe42SPatrick Rudolph	select GPIOLIB_IRQCHIP
173e6cbbe42SPatrick Rudolph	select PINMUX
174e6cbbe42SPatrick Rudolph	select PINCONF
175e6cbbe42SPatrick Rudolph	select GENERIC_PINCONF
176e6cbbe42SPatrick Rudolph	select REGMAP_I2C
177e6cbbe42SPatrick Rudolph	help
178e6cbbe42SPatrick Rudolph	  Support for 20/40/60 pin Cypress Cy8C95x0 pinctrl/gpio I2C expander.
179e6cbbe42SPatrick Rudolph	  This driver can also be built as a module. If so, the module will be
180e6cbbe42SPatrick Rudolph	  called pinctrl-cy8c95x0.
181e6cbbe42SPatrick Rudolph
1821ff91f0aSDavid Lechnerconfig PINCTRL_DA850_PUPD
183b124c8bdSAndy Shevchenko	tristate "TI DA850/OMAP-L138/AM18XX pull-up and pull-down groups"
1841ff91f0aSDavid Lechner	depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
1851ff91f0aSDavid Lechner	select PINCONF
1861ff91f0aSDavid Lechner	select GENERIC_PINCONF
1871ff91f0aSDavid Lechner	help
1881ff91f0aSDavid Lechner	  Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
189b124c8bdSAndy Shevchenko	  pull-up and pull-down pin groups.
1901ff91f0aSDavid Lechner
19156cc3af4SMarco Felschconfig PINCTRL_DA9062
19256cc3af4SMarco Felsch	tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support"
19356cc3af4SMarco Felsch	depends on MFD_DA9062
19456cc3af4SMarco Felsch	select GPIOLIB
19556cc3af4SMarco Felsch	help
19656cc3af4SMarco Felsch	  The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for
19756cc3af4SMarco Felsch	  different functions. This driver bundles a pinctrl driver to select the
19856cc3af4SMarco Felsch	  function muxing and a GPIO driver to handle the GPIO when the GPIO
19956cc3af4SMarco Felsch	  function is selected.
20056cc3af4SMarco Felsch
201b124c8bdSAndy Shevchenko	  Say Y to enable pinctrl and GPIO support for the DA9062 PMIC.
20256cc3af4SMarco Felsch
20338b0e507SBaruch Siachconfig PINCTRL_DIGICOLOR
20438b0e507SBaruch Siach	bool
205083b0230SAndy Shevchenko	depends on ARCH_DIGICOLOR || COMPILE_TEST
20638b0e507SBaruch Siach	select PINMUX
20738b0e507SBaruch Siach	select GENERIC_PINCONF
20838b0e507SBaruch Siach
209035f9007SNikita Shubinconfig PINCTRL_EP93XX
210035f9007SNikita Shubin	bool
211035f9007SNikita Shubin	depends on ARCH_EP93XX || COMPILE_TEST
212035f9007SNikita Shubin	select PINMUX
213035f9007SNikita Shubin	select GENERIC_PINCONF
214035f9007SNikita Shubin	select MFD_SYSCON
215035f9007SNikita Shubin
216b124c8bdSAndy Shevchenkoconfig PINCTRL_EQUILIBRIUM
217b124c8bdSAndy Shevchenko	tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC"
218b124c8bdSAndy Shevchenko	depends on OF && HAS_IOMEM
219b124c8bdSAndy Shevchenko	depends on X86 || COMPILE_TEST
220b124c8bdSAndy Shevchenko	select PINMUX
221b124c8bdSAndy Shevchenko	select PINCONF
222b124c8bdSAndy Shevchenko	select GPIOLIB
223b124c8bdSAndy Shevchenko	select GPIO_GENERIC
224b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
225b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
226b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
227b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
228b124c8bdSAndy Shevchenko	help
229b124c8bdSAndy Shevchenko	  Equilibrium driver is a pinctrl and GPIO driver for Intel Lightning
230b124c8bdSAndy Shevchenko	  Mountain network processor SoC that supports both the GPIO and pin
231b124c8bdSAndy Shevchenko	  control frameworks. It provides interfaces to setup pin muxing, assign
232b124c8bdSAndy Shevchenko	  desired pin functions, configure GPIO attributes for LGM SoC pins.
233b124c8bdSAndy Shevchenko	  Pin muxing and pin config settings are retrieved from device tree.
234b124c8bdSAndy Shevchenko
23541795aa1SThéo Lebrunconfig PINCTRL_EYEQ5
23641795aa1SThéo Lebrun	bool "Mobileye EyeQ5 pinctrl driver"
23741795aa1SThéo Lebrun	depends on OF
23841795aa1SThéo Lebrun	depends on MACH_EYEQ5 || COMPILE_TEST
23941795aa1SThéo Lebrun	select PINMUX
24041795aa1SThéo Lebrun	select GENERIC_PINCONF
24141795aa1SThéo Lebrun	select AUXILIARY_BUS
24241795aa1SThéo Lebrun	default MACH_EYEQ5
24341795aa1SThéo Lebrun	help
24441795aa1SThéo Lebrun	  Pin controller driver for the Mobileye EyeQ5 platform. It does both
24541795aa1SThéo Lebrun	  pin config & pin muxing. It does not handle GPIO.
24641795aa1SThéo Lebrun
24741795aa1SThéo Lebrun	  Pin muxing supports two functions for each pin: first is GPIO, second
24841795aa1SThéo Lebrun	  is pin-dependent. Pin config is about bias & drive strength.
24941795aa1SThéo Lebrun
250b124c8bdSAndy Shevchenkoconfig PINCTRL_GEMINI
251b124c8bdSAndy Shevchenko	bool
252b124c8bdSAndy Shevchenko	depends on ARCH_GEMINI
253b124c8bdSAndy Shevchenko	default ARCH_GEMINI
254b124c8bdSAndy Shevchenko	select PINMUX
255b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
256b124c8bdSAndy Shevchenko	select MFD_SYSCON
257b124c8bdSAndy Shevchenko
258b124c8bdSAndy Shevchenkoconfig PINCTRL_INGENIC
259b124c8bdSAndy Shevchenko	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
260b124c8bdSAndy Shevchenko	default MACH_INGENIC
261b124c8bdSAndy Shevchenko	depends on OF
262b124c8bdSAndy Shevchenko	depends on MIPS || COMPILE_TEST
263b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
264b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
265b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
266b124c8bdSAndy Shevchenko	select GPIOLIB
267b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
268b124c8bdSAndy Shevchenko	select REGMAP_MMIO
269b124c8bdSAndy Shevchenko
270b124c8bdSAndy Shevchenkoconfig PINCTRL_K210
271b124c8bdSAndy Shevchenko	bool "Pinctrl driver for the Canaan Kendryte K210 SoC"
272c1556a9bSYangyu Chen	depends on RISCV && SOC_CANAAN_K210 && OF
273b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
274b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
275b124c8bdSAndy Shevchenko	select GPIOLIB
276b124c8bdSAndy Shevchenko	select OF_GPIO
277b124c8bdSAndy Shevchenko	select REGMAP_MMIO
278c1556a9bSYangyu Chen	default SOC_CANAAN_K210
279b124c8bdSAndy Shevchenko	help
280b124c8bdSAndy Shevchenko	  Add support for the Canaan Kendryte K210 RISC-V SOC Field
281b124c8bdSAndy Shevchenko	  Programmable IO Array (FPIOA) controller.
282b124c8bdSAndy Shevchenko
283545887eaSZe Huangconfig PINCTRL_K230
284545887eaSZe Huang	bool "Pinctrl driver for the Canaan Kendryte K230 SoC"
285545887eaSZe Huang	depends on OF
286642490b5SGeert Uytterhoeven	depends on ARCH_CANAAN || COMPILE_TEST
287545887eaSZe Huang	select GENERIC_PINCTRL_GROUPS
288545887eaSZe Huang	select GENERIC_PINMUX_FUNCTIONS
289545887eaSZe Huang	select GENERIC_PINCONF
290545887eaSZe Huang	select REGMAP_MMIO
291545887eaSZe Huang	help
292545887eaSZe Huang	  Add support for the Canaan Kendryte K230 RISC-V SOC pin controller.
293545887eaSZe Huang
294b124c8bdSAndy Shevchenkoconfig PINCTRL_KEEMBAY
295b124c8bdSAndy Shevchenko	tristate "Pinctrl driver for Intel Keem Bay SoC"
296b124c8bdSAndy Shevchenko	depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST)
297b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
298b124c8bdSAndy Shevchenko	select PINMUX
299b124c8bdSAndy Shevchenko	select PINCONF
300b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
301b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
302b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
303b124c8bdSAndy Shevchenko	select GPIOLIB
304b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
305b124c8bdSAndy Shevchenko	select GPIO_GENERIC
306b124c8bdSAndy Shevchenko	help
307b124c8bdSAndy Shevchenko	  This selects pin control driver for the Intel Keem Bay SoC.
308b124c8bdSAndy Shevchenko	  It provides pin config functions such as pull-up, pull-down,
309b124c8bdSAndy Shevchenko	  interrupt, drive strength, sec lock, Schmitt trigger, slew
310b124c8bdSAndy Shevchenko	  rate control and direction control. This module will be
311b124c8bdSAndy Shevchenko	  called as pinctrl-keembay.
312b124c8bdSAndy Shevchenko
3133f8c50c9SJohn Crispinconfig PINCTRL_LANTIQ
3143f8c50c9SJohn Crispin	bool
3153f8c50c9SJohn Crispin	depends on LANTIQ
3163f8c50c9SJohn Crispin	select PINMUX
3173f8c50c9SJohn Crispin	select PINCONF
3183f8c50c9SJohn Crispin
319b124c8bdSAndy Shevchenkoconfig PINCTRL_FALCON
320b124c8bdSAndy Shevchenko	bool
321b124c8bdSAndy Shevchenko	depends on SOC_FALCON
322b124c8bdSAndy Shevchenko	depends on PINCTRL_LANTIQ
323b124c8bdSAndy Shevchenko
324f73f88acSzhanghongchenconfig PINCTRL_LOONGSON2
325f73f88acSzhanghongchen	tristate "Pinctrl driver for the Loongson-2 SoC"
326c0f358fdSRen Zhijie	depends on OF && (LOONGARCH || COMPILE_TEST)
327f73f88acSzhanghongchen	select PINMUX
328f73f88acSzhanghongchen	select GENERIC_PINCONF
329f73f88acSzhanghongchen	help
330f73f88acSzhanghongchen	 This selects pin control driver for the Loongson-2 SoC. It
331f73f88acSzhanghongchen	 provides pin config functions multiplexing.  GPIO pin pull-up,
332f73f88acSzhanghongchen	 pull-down functions are not supported. Say yes to enable
333f73f88acSzhanghongchen	 pinctrl for Loongson-2 SoC.
334f73f88acSzhanghongchen
335b124c8bdSAndy Shevchenkoconfig PINCTRL_XWAY
336b124c8bdSAndy Shevchenko	bool
337b124c8bdSAndy Shevchenko	depends on SOC_TYPE_XWAY
338b124c8bdSAndy Shevchenko	depends on PINCTRL_LANTIQ
339b124c8bdSAndy Shevchenko
3402f77ac93SJoachim Eastwoodconfig PINCTRL_LPC18XX
3412f77ac93SJoachim Eastwood	bool "NXP LPC18XX/43XX SCU pinctrl driver"
3422f77ac93SJoachim Eastwood	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
3432f77ac93SJoachim Eastwood	default ARCH_LPC18XX
3442f77ac93SJoachim Eastwood	select PINMUX
3452f77ac93SJoachim Eastwood	select GENERIC_PINCONF
3462f77ac93SJoachim Eastwood	help
3472f77ac93SJoachim Eastwood	  Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
3482f77ac93SJoachim Eastwood
349b124c8bdSAndy Shevchenkoconfig PINCTRL_MAX77620
350b124c8bdSAndy Shevchenko	tristate "MAX77620/MAX20024 Pincontrol support"
351b124c8bdSAndy Shevchenko	depends on MFD_MAX77620 && OF
35206351d13SLinus Walleij	select PINMUX
3531c5b7f3cSLinus Walleij	select GENERIC_PINCONF
354b124c8bdSAndy Shevchenko	help
355b124c8bdSAndy Shevchenko	  Say Y here to enable Pin control support for Maxim MAX77620 PMIC.
356b124c8bdSAndy Shevchenko	  This PMIC has 8 GPIO pins that work as GPIO as well as special
357b124c8bdSAndy Shevchenko	  function in alternate mode. This driver also configure push-pull,
358b124c8bdSAndy Shevchenko	  open drain, FPS slots etc.
35906351d13SLinus Walleij
3600f04a817SAndy Shevchenkoconfig PINCTRL_MCP23S08_I2C
3610f04a817SAndy Shevchenko	tristate
3620f04a817SAndy Shevchenko	select REGMAP_I2C
3630f04a817SAndy Shevchenko
3640f04a817SAndy Shevchenkoconfig PINCTRL_MCP23S08_SPI
3650f04a817SAndy Shevchenko	tristate
3660f04a817SAndy Shevchenko	select REGMAP_SPI
3670f04a817SAndy Shevchenko
36864ac43e6SSebastian Reichelconfig PINCTRL_MCP23S08
36964ac43e6SSebastian Reichel	tristate "Microchip MCP23xxx I/O expander"
37064ac43e6SSebastian Reichel	depends on SPI_MASTER || I2C
371e2a021d4SLinus Walleij	select GPIOLIB
37264ac43e6SSebastian Reichel	select GPIOLIB_IRQCHIP
37382039d24SSebastian Reichel	select GENERIC_PINCONF
3740f04a817SAndy Shevchenko	select PINCTRL_MCP23S08_I2C if I2C
3750f04a817SAndy Shevchenko	select PINCTRL_MCP23S08_SPI if SPI_MASTER
37664ac43e6SSebastian Reichel	help
3776ff45566SJan Kundrát	  SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /
3786ff45566SJan Kundrát	  MCP23008 / MCP23017 / MCP23018 I/O expanders.
3796ff45566SJan Kundrát	  This provides a GPIO interface supporting inputs and outputs and a
3806ff45566SJan Kundrát	  corresponding interrupt-controller.
38164ac43e6SSebastian Reichel
382b124c8bdSAndy Shevchenkoconfig PINCTRL_MICROCHIP_SGPIO
3832f65923cSColin Foster	tristate "Pinctrl driver for Microsemi/Microchip Serial GPIO"
384b124c8bdSAndy Shevchenko	depends on OF
385b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
386b124c8bdSAndy Shevchenko	select GPIOLIB
387b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
388b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
389b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
390b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
391b124c8bdSAndy Shevchenko	select OF_GPIO
392b124c8bdSAndy Shevchenko	help
393b124c8bdSAndy Shevchenko	  Support for the serial GPIO interface used on Microsemi and
394b124c8bdSAndy Shevchenko	  Microchip SoCs. By using a serial interface, the SIO
395b124c8bdSAndy Shevchenko	  controller significantly extends the number of available
396b124c8bdSAndy Shevchenko	  GPIOs with a minimum number of additional pins on the
397b124c8bdSAndy Shevchenko	  device. The primary purpose of the SIO controller is to
398b124c8bdSAndy Shevchenko	  connect control signals from SFP modules and to act as an
399b124c8bdSAndy Shevchenko	  LED controller.
400b124c8bdSAndy Shevchenko
4012f65923cSColin Foster	  If compiled as a module, the module name will be
4022f65923cSColin Foster	  pinctrl-microchip-sgpio.
4032f65923cSColin Foster
404b124c8bdSAndy Shevchenkoconfig PINCTRL_OCELOT
4054425205eSClément Léger	tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
406b124c8bdSAndy Shevchenko	depends on OF
407b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
408b124c8bdSAndy Shevchenko	select GPIOLIB
409b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
410b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
411b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
412b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
413b124c8bdSAndy Shevchenko	select OF_GPIO
414b124c8bdSAndy Shevchenko	select REGMAP_MMIO
4153f668365SColin Foster	help
4163f668365SColin Foster	  Support for the internal GPIO interfaces on Microsemi Ocelot and
4173f668365SColin Foster	  Jaguar2 SoCs.
4183f668365SColin Foster
4193f668365SColin Foster	  If conpiled as a module, the module name will be pinctrl-ocelot.
420b124c8bdSAndy Shevchenko
4210a8d3e24SLaxman Dewanganconfig PINCTRL_PALMAS
422767b8ce3SPaul Gortmaker	tristate "Pinctrl driver for the PALMAS Series MFD devices"
4230a8d3e24SLaxman Dewangan	depends on OF && MFD_PALMAS
42463ca8db7SAxel Lin	select PINMUX
4250a8d3e24SLaxman Dewangan	select GENERIC_PINCONF
4260a8d3e24SLaxman Dewangan	help
4270a8d3e24SLaxman Dewangan	  Palmas device supports the configuration of pins for different
4280a8d3e24SLaxman Dewangan	  functionality. This driver supports the pinmux, push-pull and
4290a8d3e24SLaxman Dewangan	  open drain configuration for the Palmas series devices like
4300a8d3e24SLaxman Dewangan	  TPS65913, TPS80036 etc.
4310a8d3e24SLaxman Dewangan
43237c646dcSHerve Codinaconfig PINCTRL_PEF2256
43337c646dcSHerve Codina	tristate "Lantiq PEF2256 (FALC56) pin controller driver"
43437c646dcSHerve Codina	depends on OF && FRAMER_PEF2256
43537c646dcSHerve Codina	select PINMUX
43637c646dcSHerve Codina	select PINCONF
43737c646dcSHerve Codina	select GENERIC_PINCONF
43837c646dcSHerve Codina	help
43937c646dcSHerve Codina	  This option enables the pin controller support for the Lantiq PEF2256
44037c646dcSHerve Codina	  framer, also known as FALC56.
44137c646dcSHerve Codina
44237c646dcSHerve Codina	  If unsure, say N.
44337c646dcSHerve Codina
44437c646dcSHerve Codina	  To compile this driver as a module, choose M here: the
44537c646dcSHerve Codina	  module will be called pinctrl-pef2256.
44637c646dcSHerve Codina
4472ba384e6SJoshua Hendersonconfig PINCTRL_PIC32
4482ba384e6SJoshua Henderson	bool "Microchip PIC32 pin controller driver"
4492ba384e6SJoshua Henderson	depends on OF
4502ba384e6SJoshua Henderson	depends on MACH_PIC32
4512ba384e6SJoshua Henderson	select PINMUX
4522ba384e6SJoshua Henderson	select GENERIC_PINCONF
4532ba384e6SJoshua Henderson	select GPIOLIB_IRQCHIP
4542ba384e6SJoshua Henderson	select OF_GPIO
4552ba384e6SJoshua Henderson	help
4562ba384e6SJoshua Henderson	  This is the pin controller and gpio driver for Microchip PIC32
4572ba384e6SJoshua Henderson	  microcontrollers. This option is selected automatically when specific
4582ba384e6SJoshua Henderson	  machine and arch are selected to build.
4592ba384e6SJoshua Henderson
4602ba384e6SJoshua Hendersonconfig PINCTRL_PIC32MZDA
4612ba384e6SJoshua Henderson	def_bool y if PIC32MZDA
4622ba384e6SJoshua Henderson	select PINCTRL_PIC32
4632ba384e6SJoshua Henderson
464b124c8bdSAndy Shevchenkoconfig PINCTRL_PISTACHIO
465b124c8bdSAndy Shevchenko	bool "IMG Pistachio SoC pinctrl driver"
466b124c8bdSAndy Shevchenko	depends on OF && (MIPS || COMPILE_TEST)
467b124c8bdSAndy Shevchenko	depends on GPIOLIB
468b124c8bdSAndy Shevchenko	select PINMUX
469b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
470b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
471b124c8bdSAndy Shevchenko	select OF_GPIO
472b124c8bdSAndy Shevchenko	help
473b124c8bdSAndy Shevchenko	  This support pinctrl and GPIO driver for IMG Pistachio SoC.
474b124c8bdSAndy Shevchenko
475b124c8bdSAndy Shevchenkoconfig PINCTRL_RK805
476b124c8bdSAndy Shevchenko	tristate "Pinctrl and GPIO driver for RK805 PMIC"
477c20e8c5bSSebastian Reichel	depends on MFD_RK8XX
478b124c8bdSAndy Shevchenko	select GPIOLIB
479b124c8bdSAndy Shevchenko	select PINMUX
480b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
481b124c8bdSAndy Shevchenko	help
482b124c8bdSAndy Shevchenko	  This selects the pinctrl driver for RK805.
483b124c8bdSAndy Shevchenko
484b58f0273SJames Hoganconfig PINCTRL_ROCKCHIP
485b58f0273SJames Hogan	tristate "Rockchip gpio and pinctrl driver"
486b58f0273SJames Hogan	depends on ARCH_ROCKCHIP || COMPILE_TEST
487b58f0273SJames Hogan	depends on OF
488b58f0273SJames Hogan	select GPIOLIB
4893bece55aSLinus Walleij	select PINMUX
4903bece55aSLinus Walleij	select GENERIC_PINCONF
49198da3529SLinus Walleij	select GENERIC_IRQ_CHIP
49298da3529SLinus Walleij	select MFD_SYSCON
493dc0b1aa3SLinus Walleij	select OF_GPIO
49445f034efSLinus Walleij	default ARCH_ROCKCHIP
495ca402d37SLinus Walleij	help
496b124c8bdSAndy Shevchenko          This support pinctrl and GPIO driver for Rockchip SoCs.
497f0b9a7e5SThomas Abraham
498eb524cb6SPeng Fanconfig PINCTRL_SCMI
499eb524cb6SPeng Fan	tristate "Pinctrl driver using SCMI protocol interface"
500eb524cb6SPeng Fan	depends on ARM_SCMI_PROTOCOL || COMPILE_TEST
501eb524cb6SPeng Fan	select PINMUX
502eb524cb6SPeng Fan	select GENERIC_PINCONF
503eb524cb6SPeng Fan	help
504eb524cb6SPeng Fan	  This driver provides support for pinctrl which is controlled
505eb524cb6SPeng Fan	  by firmware that implements the SCMI interface.
506eb524cb6SPeng Fan	  It uses SCMI Message Protocol to interact with the
507eb524cb6SPeng Fan	  firmware providing all the pinctrl controls.
508eb524cb6SPeng Fan
509af99a750SHeiko Stuebnerconfig PINCTRL_SINGLE
510af99a750SHeiko Stuebner	tristate "One-register-per-pin type device tree based pinctrl driver"
511af99a750SHeiko Stuebner	depends on OF
512af99a750SHeiko Stuebner	depends on HAS_IOMEM
51361dd7261STomasz Figa	select GENERIC_PINCTRL_GROUPS
51461dd7261STomasz Figa	select GENERIC_PINMUX_FUNCTIONS
51561dd7261STomasz Figa	select GENERIC_PINCONF
51661dd7261STomasz Figa	help
51761dd7261STomasz Figa	  This selects the device tree based generic pinctrl driver.
51806763c74SThomas Petazzoni
519ca402d37SLinus Walleijconfig PINCTRL_ST
520ca402d37SLinus Walleij	bool
521ca402d37SLinus Walleij	depends on OF
52230574f0dSThomas Abraham	select PINMUX
523cbc351abSArnd Bergmann	select PINCONF
524924da314SAxel Lin	select GPIOLIB_IRQCHIP
52530574f0dSThomas Abraham
52630574f0dSThomas Abrahamconfig PINCTRL_STMFX
52730574f0dSThomas Abraham	tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
52843b169dbSThomas Abraham	depends on I2C
52943b169dbSThomas Abraham	depends on OF_GPIO
530924da314SAxel Lin	select GENERIC_PINCONF
53143b169dbSThomas Abraham	select GPIOLIB_IRQCHIP
53243b169dbSThomas Abraham	select MFD_STMFX
5337e8d9415SSebastian Hesselbarth	help
5347e8d9415SSebastian Hesselbarth	  Driver for STMicroelectronics Multi-Function eXpander (STMFX)
5357e8d9415SSebastian Hesselbarth	  GPIO expander.
5367e8d9415SSebastian Hesselbarth	  This provides a GPIO interface supporting inputs and outputs,
5377e8d9415SSebastian Hesselbarth	  and configuring push-pull, open-drain, and can also be used as
5387e8d9415SSebastian Hesselbarth	  interrupt-controller.
539c9f95cedSSebastian Hesselbarth
540b124c8bdSAndy Shevchenkoconfig PINCTRL_SX150X
541b124c8bdSAndy Shevchenko	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
542b124c8bdSAndy Shevchenko	depends on I2C=y
543deda8287SViresh Kumar	select PINMUX
544b124c8bdSAndy Shevchenko	select PINCONF
5452744e8afSLinus Walleij	select GENERIC_PINCONF
546b124c8bdSAndy Shevchenko	select GPIOLIB
547485dba27SMasahiro Yamada	select GPIOLIB_IRQCHIP
548b124c8bdSAndy Shevchenko	select REGMAP
549b17f2f9bSRay Jui	help
550b124c8bdSAndy Shevchenko	  Say Y here to provide support for Semtech SX150x-series I2C
551b124c8bdSAndy Shevchenko	  GPIO expanders as pinctrl module.
552b124c8bdSAndy Shevchenko	  Compatible models include:
553b124c8bdSAndy Shevchenko	  - 8 bits:  sx1508q, sx1502q
554b124c8bdSAndy Shevchenko	  - 16 bits: sx1509q, sx1506q
5552744e8afSLinus Walleij
556b124c8bdSAndy Shevchenkoconfig PINCTRL_TB10X
557b124c8bdSAndy Shevchenko	bool
558b124c8bdSAndy Shevchenko	depends on OF && ARC_PLAT_TB10X
559b124c8bdSAndy Shevchenko	select GPIOLIB
560b124c8bdSAndy Shevchenko
561901b277eSEsteban Blancconfig PINCTRL_TPS6594
562901b277eSEsteban Blanc	tristate "Pinctrl and GPIO driver for TI TPS6594 PMIC"
563901b277eSEsteban Blanc	depends on OF && MFD_TPS6594
564901b277eSEsteban Blanc	default MFD_TPS6594
565901b277eSEsteban Blanc	select PINMUX
566901b277eSEsteban Blanc	select GPIOLIB
567901b277eSEsteban Blanc	select REGMAP
568901b277eSEsteban Blanc	select GPIO_REGMAP
569901b277eSEsteban Blanc	select GENERIC_PINCONF
570901b277eSEsteban Blanc	help
571901b277eSEsteban Blanc	  Say Y to select the pinmuxing and GPIOs driver for the TPS6594
572901b277eSEsteban Blanc	  PMICs chip family.
573901b277eSEsteban Blanc
574901b277eSEsteban Blanc	  This driver can also be built as a module
575901b277eSEsteban Blanc	  called tps6594-pinctrl.
576901b277eSEsteban Blanc
577bed5cd6fSEmil Renner Berthingconfig PINCTRL_TH1520
578bed5cd6fSEmil Renner Berthing	tristate "Pinctrl driver for the T-Head TH1520 SoC"
579bed5cd6fSEmil Renner Berthing	depends on ARCH_THEAD || COMPILE_TEST
58060ba5da2SArnd Bergmann	depends on OF
581bed5cd6fSEmil Renner Berthing	select GENERIC_PINMUX_FUNCTIONS
582bed5cd6fSEmil Renner Berthing	select GENERIC_PINCONF
583bed5cd6fSEmil Renner Berthing	select PINMUX
584bed5cd6fSEmil Renner Berthing	help
585bed5cd6fSEmil Renner Berthing	  This is the driver for the pin controller blocks on the
586bed5cd6fSEmil Renner Berthing	  T-Head TH1520 SoC.
587bed5cd6fSEmil Renner Berthing
588bed5cd6fSEmil Renner Berthing	  This driver is needed for RISC-V development boards like
589bed5cd6fSEmil Renner Berthing	  the BeagleV Ahead and the LicheePi 4A.
590bed5cd6fSEmil Renner Berthing
5912744e8afSLinus Walleijconfig PINCTRL_ZYNQ
5922744e8afSLinus Walleij	bool "Pinctrl driver for Xilinx Zynq"
5932744e8afSLinus Walleij	depends on ARCH_ZYNQ
5942744e8afSLinus Walleij	select PINMUX
5952744e8afSLinus Walleij	select GENERIC_PINCONF
5962744e8afSLinus Walleij	help
5972744e8afSLinus Walleij	  This selects the pinctrl driver for Xilinx Zynq.
5982744e8afSLinus Walleij
5998b242ca7SSai Krishna Potthuriconfig PINCTRL_ZYNQMP
6008b242ca7SSai Krishna Potthuri	tristate "Pinctrl driver for Xilinx ZynqMP"
6018b242ca7SSai Krishna Potthuri	depends on ZYNQMP_FIRMWARE
6028b242ca7SSai Krishna Potthuri	select PINMUX
6038b242ca7SSai Krishna Potthuri	select GENERIC_PINCONF
6048b242ca7SSai Krishna Potthuri	default ZYNQMP_FIRMWARE
6058b242ca7SSai Krishna Potthuri	help
6068b242ca7SSai Krishna Potthuri	  This selects the pinctrl driver for Xilinx ZynqMP platform.
6078b242ca7SSai Krishna Potthuri	  This driver will query the pin information from the firmware
6088b242ca7SSai Krishna Potthuri	  and allow configuring the pins.
6098b242ca7SSai Krishna Potthuri	  Configuration can include the mux function to select on those
6108b242ca7SSai Krishna Potthuri	  pin(s)/group(s), and various pin configuration parameters
6118b242ca7SSai Krishna Potthuri	  such as pull-up, slew rate, etc.
612fa99e701SSai Krishna Potthuri	  This driver can also be built as a module. If so, the module
613fa99e701SSai Krishna Potthuri	  will be called pinctrl-zynqmp.
6148b242ca7SSai Krishna Potthuri
615d11f9328SAsmaa Mnebhiconfig PINCTRL_MLXBF3
616d11f9328SAsmaa Mnebhi	tristate "NVIDIA BlueField-3 SoC Pinctrl driver"
617d11f9328SAsmaa Mnebhi	depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST
618d11f9328SAsmaa Mnebhi	select PINMUX
619d11f9328SAsmaa Mnebhi	select GPIOLIB
620d11f9328SAsmaa Mnebhi	select GPIOLIB_IRQCHIP
621d11f9328SAsmaa Mnebhi	help
622d11f9328SAsmaa Mnebhi	  Say Y to select the pinctrl driver for BlueField-3 SoCs.
623d11f9328SAsmaa Mnebhi	  This pin controller allows selecting the mux function for
624d11f9328SAsmaa Mnebhi	  each pin. This driver can also be built as a module called
625d11f9328SAsmaa Mnebhi	  pinctrl-mlxbf3.
626d11f9328SAsmaa Mnebhi
6272242ddfbSManivannan Sadhasivamsource "drivers/pinctrl/actions/Kconfig"
6284d3d0e42SAndrew Jefferysource "drivers/pinctrl/aspeed/Kconfig"
6292744e8afSLinus Walleijsource "drivers/pinctrl/bcm/Kconfig"
6302744e8afSLinus Walleijsource "drivers/pinctrl/berlin/Kconfig"
631b124c8bdSAndy Shevchenkosource "drivers/pinctrl/cirrus/Kconfig"
6322744e8afSLinus Walleijsource "drivers/pinctrl/freescale/Kconfig"
6332744e8afSLinus Walleijsource "drivers/pinctrl/intel/Kconfig"
634b124c8bdSAndy Shevchenkosource "drivers/pinctrl/mediatek/Kconfig"
635b124c8bdSAndy Shevchenkosource "drivers/pinctrl/meson/Kconfig"
6362744e8afSLinus Walleijsource "drivers/pinctrl/mvebu/Kconfig"
6373a198059SLinus Walleijsource "drivers/pinctrl/nomadik/Kconfig"
6383b588e43STomer Maimonsource "drivers/pinctrl/nuvoton/Kconfig"
639fd84aaa8SChester Linsource "drivers/pinctrl/nxp/Kconfig"
6404b15ec9dSRobert Jarzmiksource "drivers/pinctrl/pxa/Kconfig"
64169b78b8dSLinus Walleijsource "drivers/pinctrl/qcom/Kconfig"
642e99ce780STzuyi Changsource "drivers/pinctrl/realtek/Kconfig"
643077365a9SGeert Uytterhoevensource "drivers/pinctrl/renesas/Kconfig"
644ebe629a3SSachin Kamatsource "drivers/pinctrl/samsung/Kconfig"
645a29d8e93SInochi Amaotosource "drivers/pinctrl/sophgo/Kconfig"
646a83c29e1SYixun Lansource "drivers/pinctrl/spacemit/Kconfig"
6472744e8afSLinus Walleijsource "drivers/pinctrl/spear/Kconfig"
64841d32cfcSBaolin Wangsource "drivers/pinctrl/sprd/Kconfig"
649ba7fdf88SJianlong Huangsource "drivers/pinctrl/starfive/Kconfig"
650aceb16dcSMaxime Coquelinsource "drivers/pinctrl/stm32/Kconfig"
651aa74c44bSWells Lusource "drivers/pinctrl/sunplus/Kconfig"
6525f910777SMaxime Ripardsource "drivers/pinctrl/sunxi/Kconfig"
65325cbac77SMasahiro Yamadasource "drivers/pinctrl/tegra/Kconfig"
654003910ebSNishanth Menonsource "drivers/pinctrl/ti/Kconfig"
6556e908892SMasahiro Yamadasource "drivers/pinctrl/uniphier/Kconfig"
656a68a7844SNobuhiro Iwamatsusource "drivers/pinctrl/visconti/Kconfig"
657b124c8bdSAndy Shevchenkosource "drivers/pinctrl/vt8500/Kconfig"
6581948d5c5SRahul Tanwar
659d219b924SPhil Reidendif
660