| .. | .. |
|---|
| 1 | +# SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | # |
|---|
| 2 | 3 | # GPIO infrastructure and drivers |
|---|
| 3 | 4 | # |
|---|
| .. | .. |
|---|
| 26 | 27 | range 32 512 |
|---|
| 27 | 28 | default 512 |
|---|
| 28 | 29 | help |
|---|
| 29 | | - This adjusts the point at which certain APIs will switch from |
|---|
| 30 | | - using a stack allocated buffer to a dynamically allocated buffer. |
|---|
| 30 | + This adjusts the point at which certain APIs will switch from |
|---|
| 31 | + using a stack allocated buffer to a dynamically allocated buffer. |
|---|
| 31 | 32 | |
|---|
| 32 | | - You shouldn't need to change this unless you really need to |
|---|
| 33 | | - optimize either stack space or performance. Change this carefully |
|---|
| 34 | | - since setting an incorrect value could cause stack corruption. |
|---|
| 33 | + You shouldn't need to change this unless you really need to |
|---|
| 34 | + optimize either stack space or performance. Change this carefully |
|---|
| 35 | + since setting an incorrect value could cause stack corruption. |
|---|
| 35 | 36 | |
|---|
| 36 | 37 | config OF_GPIO |
|---|
| 37 | 38 | def_bool y |
|---|
| .. | .. |
|---|
| 61 | 62 | bool "/sys/class/gpio/... (sysfs interface)" |
|---|
| 62 | 63 | depends on SYSFS |
|---|
| 63 | 64 | help |
|---|
| 64 | | - Say Y here to add a sysfs interface for GPIOs. |
|---|
| 65 | + Say Y here to add the legacy sysfs interface for GPIOs. |
|---|
| 65 | 66 | |
|---|
| 66 | | - This is mostly useful to work around omissions in a system's |
|---|
| 67 | | - kernel support. Those are common in custom and semicustom |
|---|
| 68 | | - hardware assembled using standard kernels with a minimum of |
|---|
| 69 | | - custom patches. In those cases, userspace code may import |
|---|
| 70 | | - a given GPIO from the kernel, if no kernel driver requested it. |
|---|
| 67 | + This ABI is deprecated. If you want to use GPIO from userspace, |
|---|
| 68 | + use the character device /dev/gpiochipN with the appropriate |
|---|
| 69 | + ioctl() operations instead. |
|---|
| 71 | 70 | |
|---|
| 72 | | - Kernel drivers may also request that a particular GPIO be |
|---|
| 73 | | - exported to userspace; this can be useful when debugging. |
|---|
| 71 | +config GPIO_CDEV |
|---|
| 72 | + bool |
|---|
| 73 | + prompt "Character device (/dev/gpiochipN) support" if EXPERT |
|---|
| 74 | + default y |
|---|
| 75 | + help |
|---|
| 76 | + Say Y here to add the character device /dev/gpiochipN interface |
|---|
| 77 | + for GPIOs. The character device allows userspace to control GPIOs |
|---|
| 78 | + using ioctl() operations. |
|---|
| 79 | + |
|---|
| 80 | + Only say N if you are sure that the GPIO character device is not |
|---|
| 81 | + required. |
|---|
| 82 | + |
|---|
| 83 | + If unsure, say Y. |
|---|
| 84 | + |
|---|
| 85 | +config GPIO_CDEV_V1 |
|---|
| 86 | + bool "Support GPIO ABI Version 1" |
|---|
| 87 | + default y |
|---|
| 88 | + depends on GPIO_CDEV |
|---|
| 89 | + help |
|---|
| 90 | + Say Y here to support version 1 of the GPIO CDEV ABI. |
|---|
| 91 | + |
|---|
| 92 | + This ABI version is deprecated. |
|---|
| 93 | + Please use the latest ABI for new developments. |
|---|
| 94 | + |
|---|
| 95 | + If unsure, say Y. |
|---|
| 74 | 96 | |
|---|
| 75 | 97 | config GPIO_GENERIC |
|---|
| 76 | 98 | depends on HAS_IOMEM # Only for IOMEM drivers |
|---|
| 99 | + tristate |
|---|
| 100 | + |
|---|
| 101 | +config GPIO_REGMAP |
|---|
| 102 | + depends on REGMAP |
|---|
| 77 | 103 | tristate |
|---|
| 78 | 104 | |
|---|
| 79 | 105 | # put drivers in the right section, in alphabetical order |
|---|
| .. | .. |
|---|
| 123 | 149 | help |
|---|
| 124 | 150 | Say Y here to support Aspeed AST2400 and AST2500 GPIO controllers. |
|---|
| 125 | 151 | |
|---|
| 152 | +config GPIO_ASPEED_SGPIO |
|---|
| 153 | + bool "Aspeed SGPIO support" |
|---|
| 154 | + depends on (ARCH_ASPEED || COMPILE_TEST) && OF_GPIO |
|---|
| 155 | + select GPIO_GENERIC |
|---|
| 156 | + select GPIOLIB_IRQCHIP |
|---|
| 157 | + help |
|---|
| 158 | + Say Y here to support Aspeed AST2500 SGPIO functionality. |
|---|
| 159 | + |
|---|
| 126 | 160 | config GPIO_ATH79 |
|---|
| 127 | 161 | tristate "Atheros AR71XX/AR724X/AR913X GPIO support" |
|---|
| 128 | 162 | default y if ATH79 |
|---|
| .. | .. |
|---|
| 150 | 184 | help |
|---|
| 151 | 185 | Turn on GPIO support for Broadcom "Kona" chips. |
|---|
| 152 | 186 | |
|---|
| 187 | +config GPIO_BCM_XGS_IPROC |
|---|
| 188 | + tristate "BRCM XGS iProc GPIO support" |
|---|
| 189 | + depends on OF_GPIO && (ARCH_BCM_IPROC || COMPILE_TEST) |
|---|
| 190 | + select GPIO_GENERIC |
|---|
| 191 | + select GPIOLIB_IRQCHIP |
|---|
| 192 | + default ARCH_BCM_IPROC |
|---|
| 193 | + help |
|---|
| 194 | + Say yes here to enable GPIO support for Broadcom XGS iProc SoCs. |
|---|
| 195 | + |
|---|
| 153 | 196 | config GPIO_BRCMSTB |
|---|
| 154 | 197 | tristate "BRCMSTB GPIO support" |
|---|
| 155 | 198 | default y if (ARCH_BRCMSTB || BMIPS_GENERIC) |
|---|
| .. | .. |
|---|
| 158 | 201 | select IRQ_DOMAIN |
|---|
| 159 | 202 | help |
|---|
| 160 | 203 | Say yes here to enable GPIO support for Broadcom STB (BCM7XXX) SoCs. |
|---|
| 204 | + |
|---|
| 205 | +config GPIO_CADENCE |
|---|
| 206 | + tristate "Cadence GPIO support" |
|---|
| 207 | + depends on OF_GPIO |
|---|
| 208 | + select GPIO_GENERIC |
|---|
| 209 | + select GPIOLIB_IRQCHIP |
|---|
| 210 | + help |
|---|
| 211 | + Say yes here to enable support for Cadence GPIO controller. |
|---|
| 161 | 212 | |
|---|
| 162 | 213 | config GPIO_CLPS711X |
|---|
| 163 | 214 | tristate "CLPS711X GPIO support" |
|---|
| .. | .. |
|---|
| 169 | 220 | config GPIO_DAVINCI |
|---|
| 170 | 221 | bool "TI Davinci/Keystone GPIO support" |
|---|
| 171 | 222 | default y if ARCH_DAVINCI |
|---|
| 172 | | - depends on ARM && (ARCH_DAVINCI || ARCH_KEYSTONE) |
|---|
| 223 | + depends on (ARM || ARM64) && (ARCH_DAVINCI || ARCH_KEYSTONE || ARCH_K3) |
|---|
| 173 | 224 | help |
|---|
| 174 | 225 | Say yes here to enable GPIO support for TI Davinci/Keystone SoCs. |
|---|
| 175 | 226 | |
|---|
| 176 | 227 | config GPIO_DWAPB |
|---|
| 177 | 228 | tristate "Synopsys DesignWare APB GPIO driver" |
|---|
| 178 | 229 | select GPIO_GENERIC |
|---|
| 179 | | - select GENERIC_IRQ_CHIP |
|---|
| 230 | + select GPIOLIB_IRQCHIP |
|---|
| 180 | 231 | help |
|---|
| 181 | 232 | Say Y or M here to build support for the Synopsys DesignWare APB |
|---|
| 182 | 233 | GPIO block. |
|---|
| .. | .. |
|---|
| 199 | 250 | def_bool y |
|---|
| 200 | 251 | depends on ARCH_EP93XX |
|---|
| 201 | 252 | select GPIO_GENERIC |
|---|
| 253 | + select GPIOLIB_IRQCHIP |
|---|
| 202 | 254 | |
|---|
| 203 | 255 | config GPIO_EXAR |
|---|
| 204 | 256 | tristate "Support for GPIO pins on XR17V352/354/358" |
|---|
| .. | .. |
|---|
| 248 | 300 | tristate "Nintendo Wii (Hollywood) GPIO" |
|---|
| 249 | 301 | depends on OF_GPIO |
|---|
| 250 | 302 | select GPIO_GENERIC |
|---|
| 303 | + select GPIOLIB_IRQCHIP |
|---|
| 251 | 304 | help |
|---|
| 252 | 305 | Select this to support the GPIO controller of the Nintendo Wii. |
|---|
| 253 | 306 | |
|---|
| .. | .. |
|---|
| 266 | 319 | |
|---|
| 267 | 320 | If unsure, say N. |
|---|
| 268 | 321 | |
|---|
| 269 | | -config GPIO_INGENIC |
|---|
| 270 | | - tristate "Ingenic JZ47xx SoCs GPIO support" |
|---|
| 271 | | - depends on OF |
|---|
| 272 | | - depends on MACH_INGENIC || COMPILE_TEST |
|---|
| 273 | | - select GPIOLIB_IRQCHIP |
|---|
| 274 | | - help |
|---|
| 275 | | - Say yes here to support the GPIO functionality present on the |
|---|
| 276 | | - JZ4740 and JZ4780 SoCs from Ingenic. |
|---|
| 277 | | - |
|---|
| 278 | | - If unsure, say N. |
|---|
| 279 | | - |
|---|
| 280 | 322 | config GPIO_IOP |
|---|
| 281 | 323 | tristate "Intel IOP GPIO" |
|---|
| 282 | | - depends on ARCH_IOP32X || ARCH_IOP33X || COMPILE_TEST |
|---|
| 324 | + depends on ARCH_IOP32X || COMPILE_TEST |
|---|
| 283 | 325 | select GPIO_GENERIC |
|---|
| 284 | 326 | help |
|---|
| 285 | 327 | Say yes here to support the GPIO functionality of a number of Intel |
|---|
| .. | .. |
|---|
| 287 | 329 | |
|---|
| 288 | 330 | If unsure, say N. |
|---|
| 289 | 331 | |
|---|
| 332 | +config GPIO_IXP4XX |
|---|
| 333 | + bool "Intel IXP4xx GPIO" |
|---|
| 334 | + depends on ARM # For <asm/mach-types.h> |
|---|
| 335 | + depends on ARCH_IXP4XX |
|---|
| 336 | + select GPIO_GENERIC |
|---|
| 337 | + select GPIOLIB_IRQCHIP |
|---|
| 338 | + select IRQ_DOMAIN_HIERARCHY |
|---|
| 339 | + help |
|---|
| 340 | + Say yes here to support the GPIO functionality of a number of Intel |
|---|
| 341 | + IXP4xx series of chips. |
|---|
| 342 | + |
|---|
| 343 | + If unsure, say N. |
|---|
| 344 | +config GPIO_LOGICVC |
|---|
| 345 | + tristate "Xylon LogiCVC GPIO support" |
|---|
| 346 | + depends on MFD_SYSCON && OF |
|---|
| 347 | + help |
|---|
| 348 | + Say yes here to support GPIO functionality of the Xylon LogiCVC |
|---|
| 349 | + programmable logic block. |
|---|
| 350 | + |
|---|
| 290 | 351 | config GPIO_LOONGSON |
|---|
| 291 | 352 | bool "Loongson-2/3 GPIO support" |
|---|
| 292 | | - depends on CPU_LOONGSON2 || CPU_LOONGSON3 |
|---|
| 353 | + depends on CPU_LOONGSON2EF || CPU_LOONGSON64 |
|---|
| 293 | 354 | help |
|---|
| 294 | 355 | driver for GPIO functionality on Loongson-2F/3A/3B processors. |
|---|
| 295 | 356 | |
|---|
| .. | .. |
|---|
| 297 | 358 | tristate "NXP LPC18XX/43XX GPIO support" |
|---|
| 298 | 359 | default y if ARCH_LPC18XX |
|---|
| 299 | 360 | depends on OF_GPIO && (ARCH_LPC18XX || COMPILE_TEST) |
|---|
| 361 | + select IRQ_DOMAIN_HIERARCHY |
|---|
| 300 | 362 | help |
|---|
| 301 | 363 | Select this option to enable GPIO driver for |
|---|
| 302 | 364 | NXP LPC18XX/43XX devices. |
|---|
| 303 | 365 | |
|---|
| 304 | | -config GPIO_LYNXPOINT |
|---|
| 305 | | - tristate "Intel Lynxpoint GPIO support" |
|---|
| 306 | | - depends on ACPI && X86 |
|---|
| 307 | | - select GPIOLIB_IRQCHIP |
|---|
| 366 | +config GPIO_LPC32XX |
|---|
| 367 | + tristate "NXP LPC32XX GPIO support" |
|---|
| 368 | + depends on OF_GPIO && (ARCH_LPC32XX || COMPILE_TEST) |
|---|
| 308 | 369 | help |
|---|
| 309 | | - driver for GPIO functionality on Intel Lynxpoint PCH chipset |
|---|
| 310 | | - Requires ACPI device enumeration code to set up a platform device. |
|---|
| 370 | + Select this option to enable GPIO driver for |
|---|
| 371 | + NXP LPC32XX devices. |
|---|
| 311 | 372 | |
|---|
| 312 | 373 | config GPIO_MB86S7X |
|---|
| 313 | 374 | tristate "GPIO support for Fujitsu MB86S7x Platforms" |
|---|
| .. | .. |
|---|
| 319 | 380 | depends on MCB |
|---|
| 320 | 381 | select GPIO_GENERIC |
|---|
| 321 | 382 | help |
|---|
| 322 | | - Say yes here to support the MEN 16Z127 GPIO Controller |
|---|
| 383 | + Say yes here to support the MEN 16Z127 GPIO Controller |
|---|
| 323 | 384 | |
|---|
| 324 | 385 | config GPIO_MM_LANTIQ |
|---|
| 325 | 386 | bool "Lantiq Memory mapped GPIOs" |
|---|
| .. | .. |
|---|
| 328 | 389 | This enables support for memory mapped GPIOs on the External Bus Unit |
|---|
| 329 | 390 | (EBU) found on Lantiq SoCs. The gpios are output only as they are |
|---|
| 330 | 391 | created by attaching a 16bit latch to the bus. |
|---|
| 331 | | - |
|---|
| 332 | | -config GPIO_MOCKUP |
|---|
| 333 | | - tristate "GPIO Testing Driver" |
|---|
| 334 | | - depends on GPIOLIB && SYSFS |
|---|
| 335 | | - select GPIO_SYSFS |
|---|
| 336 | | - select GPIOLIB_IRQCHIP |
|---|
| 337 | | - select IRQ_SIM |
|---|
| 338 | | - help |
|---|
| 339 | | - This enables GPIO Testing driver, which provides a way to test GPIO |
|---|
| 340 | | - subsystem through sysfs(or char device) and debugfs. GPIO_SYSFS |
|---|
| 341 | | - must be selected for this test. |
|---|
| 342 | | - User could use it through the script in |
|---|
| 343 | | - tools/testing/selftests/gpio/gpio-mockup.sh. Reference the usage in |
|---|
| 344 | | - it. |
|---|
| 345 | 392 | |
|---|
| 346 | 393 | config GPIO_MPC5200 |
|---|
| 347 | 394 | def_bool y |
|---|
| .. | .. |
|---|
| 375 | 422 | select REGMAP_MMIO |
|---|
| 376 | 423 | |
|---|
| 377 | 424 | config GPIO_MXC |
|---|
| 378 | | - def_bool y |
|---|
| 379 | | - depends on ARCH_MXC |
|---|
| 425 | + tristate "i.MX GPIO support" |
|---|
| 426 | + depends on ARCH_MXC || COMPILE_TEST |
|---|
| 380 | 427 | select GPIO_GENERIC |
|---|
| 381 | 428 | select GENERIC_IRQ_CHIP |
|---|
| 382 | 429 | |
|---|
| 383 | 430 | config GPIO_MXS |
|---|
| 384 | | - def_bool y |
|---|
| 385 | | - depends on ARCH_MXS |
|---|
| 431 | + bool "Freescale MXS GPIO support" if COMPILE_TEST |
|---|
| 432 | + depends on ARCH_MXS || COMPILE_TEST |
|---|
| 433 | + default y if ARCH_MXS |
|---|
| 386 | 434 | select GPIO_GENERIC |
|---|
| 387 | 435 | select GENERIC_IRQ_CHIP |
|---|
| 388 | 436 | |
|---|
| 389 | 437 | config GPIO_OCTEON |
|---|
| 390 | 438 | tristate "Cavium OCTEON GPIO" |
|---|
| 391 | | - depends on GPIOLIB && CAVIUM_OCTEON_SOC |
|---|
| 439 | + depends on CAVIUM_OCTEON_SOC |
|---|
| 392 | 440 | default y |
|---|
| 393 | 441 | help |
|---|
| 394 | 442 | Say yes here to support the on-chip GPIO lines on the OCTEON |
|---|
| .. | .. |
|---|
| 404 | 452 | Say yes here to enable GPIO support for TI OMAP SoCs. |
|---|
| 405 | 453 | |
|---|
| 406 | 454 | config GPIO_PL061 |
|---|
| 407 | | - bool "PrimeCell PL061 GPIO support" |
|---|
| 455 | + tristate "PrimeCell PL061 GPIO support" |
|---|
| 408 | 456 | depends on ARM_AMBA |
|---|
| 409 | 457 | select IRQ_DOMAIN |
|---|
| 410 | 458 | select GPIOLIB_IRQCHIP |
|---|
| .. | .. |
|---|
| 421 | 469 | |
|---|
| 422 | 470 | config GPIO_PXA |
|---|
| 423 | 471 | bool "PXA GPIO support" |
|---|
| 424 | | - depends on ARCH_PXA || ARCH_MMP |
|---|
| 472 | + depends on ARCH_PXA || ARCH_MMP || COMPILE_TEST |
|---|
| 425 | 473 | help |
|---|
| 426 | 474 | Say yes here to support the PXA GPIO device |
|---|
| 427 | 475 | |
|---|
| .. | .. |
|---|
| 431 | 479 | select GPIOLIB_IRQCHIP |
|---|
| 432 | 480 | help |
|---|
| 433 | 481 | Say yes here to support GPIO on Renesas R-Car SoCs. |
|---|
| 482 | + |
|---|
| 483 | +config GPIO_RDA |
|---|
| 484 | + bool "RDA Micro GPIO controller support" |
|---|
| 485 | + depends on ARCH_RDA || COMPILE_TEST |
|---|
| 486 | + depends on OF_GPIO |
|---|
| 487 | + select GPIO_GENERIC |
|---|
| 488 | + select GPIOLIB_IRQCHIP |
|---|
| 489 | + help |
|---|
| 490 | + Say Y here to support RDA Micro GPIO controller. |
|---|
| 434 | 491 | |
|---|
| 435 | 492 | config GPIO_REG |
|---|
| 436 | 493 | bool |
|---|
| .. | .. |
|---|
| 445 | 502 | default ARCH_ROCKCHIP |
|---|
| 446 | 503 | help |
|---|
| 447 | 504 | Say yes here to support GPIO on Rockchip SoCs. |
|---|
| 505 | + |
|---|
| 506 | +config GPIO_SAMA5D2_PIOBU |
|---|
| 507 | + tristate "SAMA5D2 PIOBU GPIO support" |
|---|
| 508 | + depends on MFD_SYSCON |
|---|
| 509 | + depends on OF_GPIO |
|---|
| 510 | + select GPIO_SYSCON |
|---|
| 511 | + help |
|---|
| 512 | + Say yes here to use the PIOBU pins as GPIOs. |
|---|
| 513 | + |
|---|
| 514 | + PIOBU pins on the SAMA5D2 can be used as GPIOs. |
|---|
| 515 | + The difference from regular GPIOs is that they |
|---|
| 516 | + maintain their value during backup/self-refresh. |
|---|
| 517 | + |
|---|
| 518 | +config GPIO_SIFIVE |
|---|
| 519 | + bool "SiFive GPIO support" |
|---|
| 520 | + depends on OF_GPIO |
|---|
| 521 | + select IRQ_DOMAIN_HIERARCHY |
|---|
| 522 | + select GPIO_GENERIC |
|---|
| 523 | + select GPIOLIB_IRQCHIP |
|---|
| 524 | + select REGMAP_MMIO |
|---|
| 525 | + help |
|---|
| 526 | + Say yes here to support the GPIO device on SiFive SoCs. |
|---|
| 527 | + |
|---|
| 528 | +config GPIO_SIOX |
|---|
| 529 | + tristate "SIOX GPIO support" |
|---|
| 530 | + depends on SIOX |
|---|
| 531 | + select GPIOLIB_IRQCHIP |
|---|
| 532 | + help |
|---|
| 533 | + Say yes here to support SIOX I/O devices. These are units connected |
|---|
| 534 | + via a SIOX bus and have a number of fixed-direction I/O lines. |
|---|
| 535 | + |
|---|
| 536 | +config GPIO_SNPS_CREG |
|---|
| 537 | + bool "Synopsys GPIO via CREG (Control REGisters) driver" |
|---|
| 538 | + depends on ARC || COMPILE_TEST |
|---|
| 539 | + depends on OF_GPIO |
|---|
| 540 | + help |
|---|
| 541 | + This driver supports GPIOs via CREG on various Synopsys SoCs. |
|---|
| 542 | + This is a single-register MMIO GPIO driver for complex cases |
|---|
| 543 | + where only several fields in register belong to GPIO lines and |
|---|
| 544 | + each GPIO line owns a field with different length and on/off value. |
|---|
| 448 | 545 | |
|---|
| 449 | 546 | config GPIO_SPEAR_SPICS |
|---|
| 450 | 547 | bool "ST SPEAr13xx SPI Chip Select as GPIO support" |
|---|
| .. | .. |
|---|
| 471 | 568 | |
|---|
| 472 | 569 | config GPIO_STP_XWAY |
|---|
| 473 | 570 | bool "XWAY STP GPIOs" |
|---|
| 474 | | - depends on SOC_XWAY |
|---|
| 571 | + depends on SOC_XWAY || COMPILE_TEST |
|---|
| 572 | + depends on OF_GPIO |
|---|
| 475 | 573 | help |
|---|
| 476 | 574 | This enables support for the Serial To Parallel (STP) unit found on |
|---|
| 477 | 575 | XWAY SoC. The STP allows the SoC to drive a shift registers cascade, |
|---|
| .. | .. |
|---|
| 487 | 585 | |
|---|
| 488 | 586 | config GPIO_TB10X |
|---|
| 489 | 587 | bool |
|---|
| 588 | + select GPIO_GENERIC |
|---|
| 490 | 589 | select GENERIC_IRQ_CHIP |
|---|
| 491 | 590 | select OF_GPIO |
|---|
| 492 | 591 | |
|---|
| .. | .. |
|---|
| 500 | 599 | |
|---|
| 501 | 600 | config GPIO_TEGRA186 |
|---|
| 502 | 601 | tristate "NVIDIA Tegra186 GPIO support" |
|---|
| 503 | | - default ARCH_TEGRA_186_SOC |
|---|
| 504 | | - depends on ARCH_TEGRA_186_SOC || COMPILE_TEST |
|---|
| 602 | + default ARCH_TEGRA_186_SOC || ARCH_TEGRA_194_SOC |
|---|
| 603 | + depends on ARCH_TEGRA_186_SOC || ARCH_TEGRA_194_SOC || COMPILE_TEST |
|---|
| 505 | 604 | depends on OF_GPIO |
|---|
| 506 | 605 | select GPIOLIB_IRQCHIP |
|---|
| 606 | + select IRQ_DOMAIN_HIERARCHY |
|---|
| 507 | 607 | help |
|---|
| 508 | 608 | Say yes here to support GPIO pins on NVIDIA Tegra186 SoCs. |
|---|
| 509 | 609 | |
|---|
| .. | .. |
|---|
| 519 | 619 | tristate "Cavium ThunderX/OCTEON-TX GPIO" |
|---|
| 520 | 620 | depends on ARCH_THUNDER || (64BIT && COMPILE_TEST) |
|---|
| 521 | 621 | depends on PCI_MSI |
|---|
| 622 | + select GPIOLIB_IRQCHIP |
|---|
| 522 | 623 | select IRQ_DOMAIN_HIERARCHY |
|---|
| 523 | 624 | select IRQ_FASTEOI_HIERARCHY_HANDLERS |
|---|
| 524 | 625 | help |
|---|
| .. | .. |
|---|
| 558 | 659 | additional drivers must be enabled in order to use the |
|---|
| 559 | 660 | functionality of the device. |
|---|
| 560 | 661 | |
|---|
| 662 | +config GPIO_WCD934X |
|---|
| 663 | + tristate "Qualcomm Technologies Inc WCD9340/WCD9341 gpio controller driver" |
|---|
| 664 | + depends on MFD_WCD934X && OF_GPIO |
|---|
| 665 | + help |
|---|
| 666 | + This driver is to supprot GPIO block found on the Qualcomm Technologies |
|---|
| 667 | + Inc WCD9340/WCD9341 Audio Codec. |
|---|
| 668 | + |
|---|
| 561 | 669 | config GPIO_XGENE |
|---|
| 562 | 670 | bool "APM X-Gene GPIO controller support" |
|---|
| 563 | 671 | depends on ARM64 && OF_GPIO |
|---|
| .. | .. |
|---|
| 569 | 677 | |
|---|
| 570 | 678 | config GPIO_XGENE_SB |
|---|
| 571 | 679 | tristate "APM X-Gene GPIO standby controller support" |
|---|
| 572 | | - depends on ARCH_XGENE && OF_GPIO |
|---|
| 680 | + depends on (ARCH_XGENE || COMPILE_TEST) |
|---|
| 573 | 681 | select GPIO_GENERIC |
|---|
| 574 | 682 | select GPIOLIB_IRQCHIP |
|---|
| 575 | 683 | select IRQ_DOMAIN_HIERARCHY |
|---|
| .. | .. |
|---|
| 579 | 687 | |
|---|
| 580 | 688 | config GPIO_XILINX |
|---|
| 581 | 689 | tristate "Xilinx GPIO support" |
|---|
| 582 | | - depends on OF_GPIO |
|---|
| 583 | 690 | help |
|---|
| 584 | 691 | Say yes here to support the Xilinx FPGA GPIO device |
|---|
| 585 | 692 | |
|---|
| .. | .. |
|---|
| 631 | 738 | help |
|---|
| 632 | 739 | Say Y or M here to support GPIO on Loongson1 SoCs. |
|---|
| 633 | 740 | |
|---|
| 741 | +config GPIO_AMD_FCH |
|---|
| 742 | + tristate "GPIO support for AMD Fusion Controller Hub (G-series SOCs)" |
|---|
| 743 | + help |
|---|
| 744 | + This option enables driver for GPIO on AMDs Fusion Controller Hub, |
|---|
| 745 | + as found on G-series SOCs (eg. GX-412TC) |
|---|
| 746 | + |
|---|
| 747 | + Note: This driver doesn't registers itself automatically, as it |
|---|
| 748 | + needs to be provided with platform specific configuration. |
|---|
| 749 | + (See eg. CONFIG_PCENGINES_APU2.) |
|---|
| 634 | 750 | endmenu |
|---|
| 635 | 751 | |
|---|
| 636 | 752 | menu "Port-mapped I/O GPIO drivers" |
|---|
| .. | .. |
|---|
| 808 | 924 | enough to represent all pins, but the driver will assume a |
|---|
| 809 | 925 | register layout for 64 pins (8 registers). |
|---|
| 810 | 926 | |
|---|
| 927 | +config GPIO_AW9110 |
|---|
| 928 | + tristate "AW9110 I2C GPIO expanders" |
|---|
| 929 | + select GPIOLIB_IRQCHIP |
|---|
| 930 | + select IRQ_DOMAIN |
|---|
| 931 | + help |
|---|
| 932 | + Say yes here to provide access to I2C |
|---|
| 933 | + GPIO expanders used for additional digital outputs or inputs. |
|---|
| 934 | + Your board setup code will need to declare the expanders in |
|---|
| 935 | + use, and assign numbers to the GPIOs they expose. Those GPIOs |
|---|
| 936 | + can then be used from drivers and other kernel code, just like |
|---|
| 937 | + other GPIOs, but only accessible from task contexts. |
|---|
| 938 | + |
|---|
| 939 | + This driver provides an in-kernel interface to those GPIOs using |
|---|
| 940 | + platform-neutral GPIO calls. |
|---|
| 941 | + |
|---|
| 942 | +config GPIO_GW_PLD |
|---|
| 943 | + tristate "Gateworks PLD GPIO Expander" |
|---|
| 944 | + depends on OF_GPIO |
|---|
| 945 | + help |
|---|
| 946 | + Say yes here to provide access to the Gateworks I2C PLD GPIO |
|---|
| 947 | + Expander. This is used at least on the Cambria GW2358-4. |
|---|
| 948 | + |
|---|
| 811 | 949 | config GPIO_MAX7300 |
|---|
| 812 | 950 | tristate "Maxim MAX7300 GPIO expander" |
|---|
| 813 | 951 | select GPIO_MAX730X |
|---|
| .. | .. |
|---|
| 823 | 961 | Input and Output (designed by 'P'). The combinations are listed |
|---|
| 824 | 962 | below: |
|---|
| 825 | 963 | |
|---|
| 826 | | - 8 bits: max7319 (8I), max7320 (8O), max7321 (8P), |
|---|
| 827 | | - max7322 (4I4O), max7323 (4P4O) |
|---|
| 964 | + 8 bits: max7319 (8I), max7320 (8O), max7321 (8P), |
|---|
| 965 | + max7322 (4I4O), max7323 (4P4O) |
|---|
| 828 | 966 | |
|---|
| 829 | | - 16 bits: max7324 (8I8O), max7325 (8P8O), |
|---|
| 830 | | - max7326 (4I12O), max7327 (4P12O) |
|---|
| 967 | + 16 bits: max7324 (8I8O), max7325 (8P8O), |
|---|
| 968 | + max7326 (4I12O), max7327 (4P12O) |
|---|
| 831 | 969 | |
|---|
| 832 | 970 | Board setup code must specify the model to use, and the start |
|---|
| 833 | 971 | number for these GPIOs. |
|---|
| .. | .. |
|---|
| 848 | 986 | |
|---|
| 849 | 987 | config GPIO_PCA953X |
|---|
| 850 | 988 | tristate "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports" |
|---|
| 989 | + select REGMAP_I2C |
|---|
| 851 | 990 | help |
|---|
| 852 | 991 | Say yes here to provide access to several register-oriented |
|---|
| 853 | 992 | SMBus I/O expanders, made mostly by NXP or TI. Compatible |
|---|
| 854 | 993 | models include: |
|---|
| 855 | 994 | |
|---|
| 856 | | - 4 bits: pca9536, pca9537 |
|---|
| 995 | + 4 bits: pca9536, pca9537 |
|---|
| 857 | 996 | |
|---|
| 858 | | - 8 bits: max7310, max7315, pca6107, pca9534, pca9538, pca9554, |
|---|
| 859 | | - pca9556, pca9557, pca9574, tca6408, tca9554, xra1202 |
|---|
| 997 | + 8 bits: max7310, max7315, pca6107, pca9534, pca9538, pca9554, |
|---|
| 998 | + pca9556, pca9557, pca9574, tca6408, tca9554, xra1202 |
|---|
| 860 | 999 | |
|---|
| 861 | | - 16 bits: max7312, max7313, pca9535, pca9539, pca9555, pca9575, |
|---|
| 862 | | - tca6416 |
|---|
| 1000 | + 16 bits: max7312, max7313, pca9535, pca9539, pca9555, pca9575, |
|---|
| 1001 | + tca6416 |
|---|
| 863 | 1002 | |
|---|
| 864 | | - 24 bits: tca6424 |
|---|
| 1003 | + 24 bits: tca6424 |
|---|
| 865 | 1004 | |
|---|
| 866 | | - 40 bits: pca9505, pca9698 |
|---|
| 1005 | + 40 bits: pca9505, pca9698 |
|---|
| 867 | 1006 | |
|---|
| 868 | 1007 | config GPIO_PCA953X_IRQ |
|---|
| 869 | 1008 | bool "Interrupt controller support for PCA953x" |
|---|
| 870 | | - depends on GPIO_PCA953X=y |
|---|
| 1009 | + depends on GPIO_PCA953X |
|---|
| 871 | 1010 | select GPIOLIB_IRQCHIP |
|---|
| 872 | 1011 | help |
|---|
| 873 | 1012 | Say yes here to enable the pca953x to be used as an interrupt |
|---|
| 874 | 1013 | controller. It requires the driver to be built in the kernel. |
|---|
| 1014 | + |
|---|
| 1015 | +config GPIO_PCA9570 |
|---|
| 1016 | + tristate "PCA9570 4-Bit I2C GPO expander" |
|---|
| 1017 | + help |
|---|
| 1018 | + Say yes here to enable the GPO driver for the NXP PCA9570 chip. |
|---|
| 1019 | + |
|---|
| 1020 | + To compile this driver as a module, choose M here: the module will |
|---|
| 1021 | + be called gpio-pca9570. |
|---|
| 875 | 1022 | |
|---|
| 876 | 1023 | config GPIO_PCF857X |
|---|
| 877 | 1024 | tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders" |
|---|
| .. | .. |
|---|
| 885 | 1032 | |
|---|
| 886 | 1033 | 8 bits: pcf8574, pcf8574a, pca8574, pca8574a, |
|---|
| 887 | 1034 | pca9670, pca9672, pca9674, pca9674a, |
|---|
| 888 | | - max7328, max7329 |
|---|
| 1035 | + max7328, max7329 |
|---|
| 889 | 1036 | |
|---|
| 890 | 1037 | 16 bits: pcf8575, pcf8575c, pca8575, |
|---|
| 891 | 1038 | pca9671, pca9673, pca9675 |
|---|
| .. | .. |
|---|
| 938 | 1085 | depends on MFD_ARIZONA |
|---|
| 939 | 1086 | help |
|---|
| 940 | 1087 | Support for GPIOs on Wolfson Arizona class devices. |
|---|
| 1088 | + |
|---|
| 1089 | +config GPIO_BD70528 |
|---|
| 1090 | + tristate "ROHM BD70528 GPIO support" |
|---|
| 1091 | + depends on MFD_ROHM_BD70528 |
|---|
| 1092 | + help |
|---|
| 1093 | + Support for GPIOs on ROHM BD70528 PMIC. There are four GPIOs |
|---|
| 1094 | + available on the ROHM PMIC in total. The GPIOs can also |
|---|
| 1095 | + generate interrupts. |
|---|
| 1096 | + |
|---|
| 1097 | + This driver can also be built as a module. If so, the module |
|---|
| 1098 | + will be called gpio-bd70528. |
|---|
| 1099 | + |
|---|
| 1100 | +config GPIO_BD71828 |
|---|
| 1101 | + tristate "ROHM BD71828 GPIO support" |
|---|
| 1102 | + depends on MFD_ROHM_BD71828 |
|---|
| 1103 | + help |
|---|
| 1104 | + Support for GPIOs on ROHM BD71828 PMIC. There are three GPIOs |
|---|
| 1105 | + available on the ROHM PMIC in total. The GPIOs are limited to |
|---|
| 1106 | + outputs only and pins must be configured to GPIO outputs by |
|---|
| 1107 | + OTP. Enable this only if you want to use these pins as outputs. |
|---|
| 1108 | + |
|---|
| 1109 | + This driver can also be built as a module. If so, the module |
|---|
| 1110 | + will be called gpio-bd71828. |
|---|
| 941 | 1111 | |
|---|
| 942 | 1112 | config GPIO_BD9571MWV |
|---|
| 943 | 1113 | tristate "ROHM BD9571 GPIO support" |
|---|
| .. | .. |
|---|
| 1005 | 1175 | |
|---|
| 1006 | 1176 | config HTC_EGPIO |
|---|
| 1007 | 1177 | bool "HTC EGPIO support" |
|---|
| 1008 | | - depends on GPIOLIB && ARM |
|---|
| 1178 | + depends on ARM |
|---|
| 1009 | 1179 | help |
|---|
| 1010 | | - This driver supports the CPLD egpio chip present on |
|---|
| 1011 | | - several HTC phones. It provides basic support for input |
|---|
| 1012 | | - pins, output pins, and irqs. |
|---|
| 1180 | + This driver supports the CPLD egpio chip present on |
|---|
| 1181 | + several HTC phones. It provides basic support for input |
|---|
| 1182 | + pins, output pins, and irqs. |
|---|
| 1013 | 1183 | |
|---|
| 1014 | 1184 | config GPIO_JANZ_TTL |
|---|
| 1015 | 1185 | tristate "Janz VMOD-TTL Digital IO Module" |
|---|
| .. | .. |
|---|
| 1045 | 1215 | on LP873X PMICs. |
|---|
| 1046 | 1216 | |
|---|
| 1047 | 1217 | This driver can also be built as a module. If so, the module will be |
|---|
| 1048 | | - called gpio-lp873x. |
|---|
| 1218 | + called gpio-lp873x. |
|---|
| 1049 | 1219 | |
|---|
| 1050 | 1220 | config GPIO_LP87565 |
|---|
| 1051 | 1221 | tristate "TI LP87565 GPIO" |
|---|
| .. | .. |
|---|
| 1073 | 1243 | driver also provides interrupt support for each of the gpios. |
|---|
| 1074 | 1244 | Say yes here to enable the max77620 to be used as gpio controller. |
|---|
| 1075 | 1245 | |
|---|
| 1246 | +config GPIO_MAX77650 |
|---|
| 1247 | + tristate "Maxim MAX77650/77651 GPIO support" |
|---|
| 1248 | + depends on MFD_MAX77650 |
|---|
| 1249 | + help |
|---|
| 1250 | + GPIO driver for MAX77650/77651 PMIC from Maxim Semiconductor. |
|---|
| 1251 | + These chips have a single pin that can be configured as GPIO. |
|---|
| 1252 | + |
|---|
| 1076 | 1253 | config GPIO_MSIC |
|---|
| 1077 | 1254 | bool "Intel MSIC mixed signal gpio support" |
|---|
| 1078 | 1255 | depends on (X86 || COMPILE_TEST) && MFD_INTEL_MSIC |
|---|
| .. | .. |
|---|
| 1096 | 1273 | This driver provides the support for driving/reading the gpio pins |
|---|
| 1097 | 1274 | of RC5T583 device through standard gpio library. |
|---|
| 1098 | 1275 | |
|---|
| 1276 | +config GPIO_SL28CPLD |
|---|
| 1277 | + tristate "Kontron sl28cpld GPIO support" |
|---|
| 1278 | + depends on MFD_SL28CPLD || COMPILE_TEST |
|---|
| 1279 | + select GPIO_REGMAP |
|---|
| 1280 | + select GPIOLIB_IRQCHIP |
|---|
| 1281 | + select REGMAP_IRQ |
|---|
| 1282 | + help |
|---|
| 1283 | + This enables support for the GPIOs found on the Kontron sl28 CPLD. |
|---|
| 1284 | + |
|---|
| 1285 | + This driver can also be built as a module. If so, the module will be |
|---|
| 1286 | + called gpio-sl28cpld. |
|---|
| 1287 | + |
|---|
| 1099 | 1288 | config GPIO_STMPE |
|---|
| 1100 | 1289 | bool "STMPE GPIOs" |
|---|
| 1101 | 1290 | depends on MFD_STMPE |
|---|
| .. | .. |
|---|
| 1117 | 1306 | config GPIO_TIMBERDALE |
|---|
| 1118 | 1307 | bool "Support for timberdale GPIO IP" |
|---|
| 1119 | 1308 | depends on MFD_TIMBERDALE |
|---|
| 1120 | | - ---help--- |
|---|
| 1309 | + help |
|---|
| 1121 | 1310 | Add support for the GPIO IP in the timberdale FPGA. |
|---|
| 1122 | 1311 | |
|---|
| 1123 | 1312 | config GPIO_TPS65086 |
|---|
| .. | .. |
|---|
| 1167 | 1356 | This driver config is bool, as the GPIO functionality |
|---|
| 1168 | 1357 | of the TPS68470 must be available before dependent |
|---|
| 1169 | 1358 | drivers are loaded. |
|---|
| 1359 | + |
|---|
| 1360 | +config GPIO_TQMX86 |
|---|
| 1361 | + tristate "TQ-Systems QTMX86 GPIO" |
|---|
| 1362 | + depends on MFD_TQMX86 || COMPILE_TEST |
|---|
| 1363 | + depends on HAS_IOPORT_MAP |
|---|
| 1364 | + select GPIOLIB_IRQCHIP |
|---|
| 1365 | + help |
|---|
| 1366 | + This driver supports GPIO on the TQMX86 IO controller. |
|---|
| 1170 | 1367 | |
|---|
| 1171 | 1368 | config GPIO_TWL4030 |
|---|
| 1172 | 1369 | tristate "TWL4030, TWL5030, and TPS659x0 GPIOs" |
|---|
| .. | .. |
|---|
| 1231 | 1428 | config GPIO_AMD8111 |
|---|
| 1232 | 1429 | tristate "AMD 8111 GPIO driver" |
|---|
| 1233 | 1430 | depends on X86 || COMPILE_TEST |
|---|
| 1431 | + depends on HAS_IOPORT_MAP |
|---|
| 1234 | 1432 | help |
|---|
| 1235 | 1433 | The AMD 8111 south bridge contains 32 GPIO pins which can be used. |
|---|
| 1236 | 1434 | |
|---|
| .. | .. |
|---|
| 1252 | 1450 | The card needs to be physically altered for using it as a |
|---|
| 1253 | 1451 | GPIO card. For more information on how to build a GPIO card |
|---|
| 1254 | 1452 | from a BT8xx TV card, see the documentation file at |
|---|
| 1255 | | - Documentation/bt8xxgpio.txt |
|---|
| 1453 | + Documentation/driver-api/gpio/bt8xxgpio.rst |
|---|
| 1256 | 1454 | |
|---|
| 1257 | 1455 | If unsure, say N. |
|---|
| 1258 | 1456 | |
|---|
| .. | .. |
|---|
| 1269 | 1467 | select GPIOLIB_IRQCHIP |
|---|
| 1270 | 1468 | help |
|---|
| 1271 | 1469 | Say Y here to support Intel Merrifield GPIO. |
|---|
| 1470 | + |
|---|
| 1471 | +config GPIO_MLXBF |
|---|
| 1472 | + tristate "Mellanox BlueField SoC GPIO" |
|---|
| 1473 | + depends on (MELLANOX_PLATFORM && ARM64 && ACPI) || (64BIT && COMPILE_TEST) |
|---|
| 1474 | + select GPIO_GENERIC |
|---|
| 1475 | + help |
|---|
| 1476 | + Say Y here if you want GPIO support on Mellanox BlueField SoC. |
|---|
| 1477 | + |
|---|
| 1478 | +config GPIO_MLXBF2 |
|---|
| 1479 | + tristate "Mellanox BlueField 2 SoC GPIO" |
|---|
| 1480 | + depends on (MELLANOX_PLATFORM && ARM64 && ACPI) || (64BIT && COMPILE_TEST) |
|---|
| 1481 | + select GPIO_GENERIC |
|---|
| 1482 | + help |
|---|
| 1483 | + Say Y here if you want GPIO support on Mellanox BlueField 2 SoC. |
|---|
| 1272 | 1484 | |
|---|
| 1273 | 1485 | config GPIO_ML_IOH |
|---|
| 1274 | 1486 | tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support" |
|---|
| .. | .. |
|---|
| 1378 | 1590 | help |
|---|
| 1379 | 1591 | GPIO driver for EXAR XRA1403 16-bit SPI-based GPIO expander. |
|---|
| 1380 | 1592 | |
|---|
| 1593 | +config GPIO_MOXTET |
|---|
| 1594 | + tristate "Turris Mox Moxtet bus GPIO expander" |
|---|
| 1595 | + depends on MOXTET |
|---|
| 1596 | + help |
|---|
| 1597 | + Say yes here if you are building for the Turris Mox router. |
|---|
| 1598 | + This is the driver needed for configuring the GPIOs via the Moxtet |
|---|
| 1599 | + bus. For example the Mox module with SFP cage needs this driver |
|---|
| 1600 | + so that phylink can use corresponding GPIOs. |
|---|
| 1601 | + |
|---|
| 1381 | 1602 | endmenu |
|---|
| 1382 | 1603 | |
|---|
| 1383 | 1604 | menu "USB GPIO expanders" |
|---|
| .. | .. |
|---|
| 1390 | 1611 | Say yes here to access the GPIO signals of Nano River |
|---|
| 1391 | 1612 | Technologies Viperboard. There are two GPIO chips on the |
|---|
| 1392 | 1613 | board: gpioa and gpiob. |
|---|
| 1393 | | - See viperboard API specification and Nano |
|---|
| 1394 | | - River Tech's viperboard.h for detailed meaning |
|---|
| 1395 | | - of the module parameters. |
|---|
| 1614 | + See viperboard API specification and Nano |
|---|
| 1615 | + River Tech's viperboard.h for detailed meaning |
|---|
| 1616 | + of the module parameters. |
|---|
| 1396 | 1617 | |
|---|
| 1397 | 1618 | endmenu |
|---|
| 1398 | 1619 | |
|---|
| 1620 | +config GPIO_AGGREGATOR |
|---|
| 1621 | + tristate "GPIO Aggregator" |
|---|
| 1622 | + help |
|---|
| 1623 | + Say yes here to enable the GPIO Aggregator, which provides a way to |
|---|
| 1624 | + aggregate existing GPIO lines into a new virtual GPIO chip. |
|---|
| 1625 | + This can serve the following purposes: |
|---|
| 1626 | + - Assign permissions for a collection of GPIO lines to a user, |
|---|
| 1627 | + - Export a collection of GPIO lines to a virtual machine, |
|---|
| 1628 | + - Provide a generic driver for a GPIO-operated device in an |
|---|
| 1629 | + industrial control context, to be operated from userspace using |
|---|
| 1630 | + the GPIO chardev interface. |
|---|
| 1631 | + |
|---|
| 1632 | +config GPIO_MOCKUP |
|---|
| 1633 | + tristate "GPIO Testing Driver" |
|---|
| 1634 | + select IRQ_SIM |
|---|
| 1635 | + help |
|---|
| 1636 | + This enables GPIO Testing driver, which provides a way to test GPIO |
|---|
| 1637 | + subsystem through sysfs(or char device) and debugfs. GPIO_SYSFS |
|---|
| 1638 | + must be selected for this test. |
|---|
| 1639 | + User could use it through the script in |
|---|
| 1640 | + tools/testing/selftests/gpio/gpio-mockup.sh. Reference the usage in |
|---|
| 1641 | + it. |
|---|
| 1642 | + |
|---|
| 1399 | 1643 | endif |
|---|