2# GPIO infrastructure and drivers
   6        bool
   7        help
   8          Selecting this config option from the architecture Kconfig allows
   9          the architecture to provide a custom asm/gpio.h implementation
  10          overriding the default implementations.  New uses of this are
  11          strongly discouraged.
  14        bool
  15        help
  16          Select this config option from the architecture Kconfig, if
  17          it is possible to use gpiolib on the architecture, but let the
  18          user decide whether to actually build it or not.
  19          Select this instead of ARCH_REQUIRE_GPIOLIB, if your architecture does
  20          not depend on GPIOs being available, but rather let the user
  21          decide whether he needs it or not.
  24        bool
  25        select GPIOLIB
  26        help
  27          Platforms select gpiolib if they use this infrastructure
  28          for all their GPIOs, usually starting with ones integrated
  29          into SOC processors.
  30          Selecting this from the architecture code will cause the gpiolib
  31          code to always get built in.
  35menuconfig GPIOLIB
  36        bool "GPIO Support"
  38        select GENERIC_GPIO
  39        help
  40          This enables GPIO support through the generic GPIO library.
  41          You only need to enable this, if you also want to enable
  42          one or more of the GPIO drivers below.
  44          If unsure, say N.
  46if GPIOLIB
  48config OF_GPIO
  49        def_bool y
  50        depends on OF && !SPARC
  52config DEBUG_GPIO
  53        bool "Debug GPIO calls"
  54        depends on DEBUG_KERNEL
  55        help
  56          Say Y here to add some extra checks and diagnostics to GPIO calls.
  57          These checks help ensure that GPIOs have been properly initialized
  58          before they are used, and that sleeping calls are not made from
  59          non-sleeping contexts.  They can make bitbanged serial protocols
  60          slower.  The diagnostics help catch the type of setup errors
  61          that are most common when setting up new platforms or boards.
  63config GPIO_SYSFS
  64        bool "/sys/class/gpio/... (sysfs interface)"
  65        depends on SYSFS && EXPERIMENTAL
  66        help
  67          Say Y here to add a sysfs interface for GPIOs.
  69          This is mostly useful to work around omissions in a system's
  70          kernel support.  Those are common in custom and semicustom
  71          hardware assembled using standard kernels with a minimum of
  72          custom patches.  In those cases, userspace code may import
  73          a given GPIO from the kernel, if no kernel driver requested it.
  75          Kernel drivers may also request that a particular GPIO be
  76          exported to userspace; this can be useful when debugging.
  78config GPIO_GENERIC
  79        tristate
  81# put drivers in the right section, in alphabetical order
  83config GPIO_DA9052
  84        tristate "Dialog DA9052 GPIO"
  85        depends on PMIC_DA9052 && BROKEN
  86        help
  87          Say yes here to enable the GPIO driver for the DA9052 chip.
  89config GPIO_MAX730X
  90        tristate
  92comment "Memory mapped GPIO drivers:"
  95        tristate "Generic memory-mapped GPIO controller support (MMIO platform device)"
  96        select GPIO_GENERIC
  97        help
  98          Say yes here to support basic platform_device memory-mapped GPIO controllers.
 100config GPIO_IT8761E
 101        tristate "IT8761E GPIO support"
 102        depends on X86  # unconditional access to IO space.
 103        help
 104          Say yes here to support GPIO functionality of IT8761E super I/O chip.
 106config GPIO_EM
 107        tristate "Emma Mobile GPIO"
 108        depends on ARM
 109        help
 110          Say yes here to support GPIO on Renesas Emma Mobile SoCs.
 112config GPIO_EP93XX
 113        def_bool y
 114        depends on ARCH_EP93XX
 115        select GPIO_GENERIC
 117config GPIO_MM_LANTIQ
 118        bool "Lantiq Memory mapped GPIOs"
 119        depends on LANTIQ && SOC_XWAY
 120        help
 121          This enables support for memory mapped GPIOs on the External Bus Unit
 122          (EBU) found on Lantiq SoCs. The gpios are output only as they are
 123          created by attaching a 16bit latch to the bus.
 125config GPIO_MPC5200
 126        def_bool y
 127        depends on PPC_MPC52xx
 129config GPIO_MPC8XXX
 130        bool "MPC512x/MPC8xxx GPIO support"
 131        depends on PPC_MPC512x || PPC_MPC831x || PPC_MPC834x || PPC_MPC837x || \
 132                   FSL_SOC_BOOKE || PPC_86xx
 133        help
 134          Say Y here if you're going to use hardware that connects to the
 135          MPC512x/831x/834x/837x/8572/8610 GPIOs.
 137config GPIO_MSM_V1
 138        tristate "Qualcomm MSM GPIO v1"
 139        depends on GPIOLIB && ARCH_MSM && (ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50)
 140        help
 141          Say yes here to support the GPIO interface on ARM v6 based
 142          Qualcomm MSM chips.  Most of the pins on the MSM can be
 143          selected for GPIO, and are controlled by this driver.
 145config GPIO_MSM_V2
 146        tristate "Qualcomm MSM GPIO v2"
 147        depends on GPIOLIB && ARCH_MSM
 148        help
 149          Say yes here to support the GPIO interface on ARM v7 based
 150          Qualcomm MSM chips.  Most of the pins on the MSM can be
 151          selected for GPIO, and are controlled by this driver.
 153config GPIO_MXC
 154        def_bool y
 155        depends on ARCH_MXC
 156        select GPIO_GENERIC
 157        select GENERIC_IRQ_CHIP
 159config GPIO_MXS
 160        def_bool y
 161        depends on ARCH_MXS
 162        select GPIO_GENERIC
 163        select GENERIC_IRQ_CHIP
 165config GPIO_PL061
 166        bool "PrimeCell PL061 GPIO support"
 167        depends on ARM_AMBA
 168        select GENERIC_IRQ_CHIP
 169        help
 170          Say yes here to support the PrimeCell PL061 GPIO device
 172config GPIO_PXA
 173        bool "PXA GPIO support"
 174        depends on ARCH_PXA || ARCH_MMP
 175        help
 176          Say yes here to support the PXA GPIO device
 178config GPIO_STA2X11
 179        bool "STA2x11/ConneXt GPIO support"
 180        depends on MFD_STA2X11
 181        select GENERIC_IRQ_CHIP
 182        help
 183          Say yes here to support the STA2x11/ConneXt GPIO device.
 184          The GPIO module has 128 GPIO pins with alternate functions.
 186config GPIO_XILINX
 187        bool "Xilinx GPIO support"
 188        depends on PPC_OF || MICROBLAZE
 189        help
 190          Say yes here to support the Xilinx FPGA GPIO device
 192config GPIO_VR41XX
 193        tristate "NEC VR4100 series General-purpose I/O Uint support"
 194        depends on CPU_VR41XX
 195        help
 196          Say yes here to support the NEC VR4100 series General-purpose I/O Uint
 198config GPIO_SCH
 199        tristate "Intel SCH/TunnelCreek/Centerton GPIO"
 200        depends on PCI && X86
 201        select MFD_CORE
 202        select LPC_SCH
 203        help
 204          Say yes here to support GPIO interface on Intel Poulsbo SCH,
 205          Intel Tunnel Creek processor or Intel Centerton processor.
 206          The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are
 207          powered by the core power rail and are turned off during sleep
 208          modes (S3 and higher). The remaining four GPIOs are powered by
 209          the Intel SCH suspend power supply. These GPIOs remain
 210          active during S3. The suspend powered GPIOs can be used to wake the
 211          system from the Suspend-to-RAM state.
 212          The Intel Tunnel Creek processor has 5 GPIOs powered by the
 213          core power rail and 9 from suspend power supply.
 214          The Intel Centerton processor has a total of 30 GPIO pins.
 215          Twenty-one are powered by the core power rail and 9 from the
 216          suspend power supply.
 218config GPIO_ICH
 219        tristate "Intel ICH GPIO"
 220        depends on PCI && X86
 221        select MFD_CORE
 222        select LPC_ICH
 223        help
 224          Say yes here to support the GPIO functionality of a number of Intel
 225          ICH-based chipsets.  Currently supported devices: ICH6, ICH7, ICH8
 226          ICH9, ICH10, Series 5/3400 (eg Ibex Peak), Series 6/C200 (eg
 227          Cougar Point), NM10 (Tiger Point), and 3100 (Whitmore Lake).
 229          If unsure, say N.
 231config GPIO_VX855
 232        tristate "VIA VX855/VX875 GPIO"
 233        depends on PCI
 234        select MFD_CORE
 235        select MFD_VX855
 236        help
 237          Support access to the VX855/VX875 GPIO lines through the gpio library.
 239          This driver provides common support for accessing the device,
 240          additional drivers must be enabled in order to use the
 241          functionality of the device.
 243config GPIO_GE_FPGA
 244        bool "GE FPGA based GPIO"
 245        depends on GE_FPGA
 246        help
 247          Support for common GPIO functionality provided on some GE Single Board
 248          Computers.
 250          This driver provides basic support (configure as input or output, read
 251          and write pin state) for GPIO implemented in a number of GE single
 252          board computers.
 254comment "I2C GPIO expanders:"
 256config GPIO_ARIZONA
 257        tristate "Wolfson Microelectronics Arizona class devices"
 258        depends on MFD_ARIZONA
 259        help
 260          Support for GPIOs on Wolfson Arizona class devices.
 262config GPIO_MAX7300
 263        tristate "Maxim MAX7300 GPIO expander"
 264        depends on I2C
 265        select GPIO_MAX730X
 266        help
 267          GPIO driver for Maxim MAX7301 I2C-based GPIO expander.
 269config GPIO_MAX732X
 270        tristate "MAX7319, MAX7320-7327 I2C Port Expanders"
 271        depends on I2C
 272        help
 273          Say yes here to support the MAX7319, MAX7320-7327 series of I2C
 274          Port Expanders. Each IO port on these chips has a fixed role of
 275          Input (designated by 'I'), Push-Pull Output ('O'), or Open-Drain
 276          Input and Output (designed by 'P'). The combinations are listed
 277          below:
 279          8 bits:       max7319 (8I), max7320 (8O), max7321 (8P),
 280                        max7322 (4I4O), max7323 (4P4O)
 282          16 bits:      max7324 (8I8O), max7325 (8P8O),
 283                        max7326 (4I12O), max7327 (4P12O)
 285          Board setup code must specify the model to use, and the start
 286          number for these GPIOs.
 288config GPIO_MAX732X_IRQ
 289        bool "Interrupt controller support for MAX732x"
 290        depends on GPIO_MAX732X=y && GENERIC_HARDIRQS
 291        help
 292          Say yes here to enable the max732x to be used as an interrupt
 293          controller. It requires the driver to be built in the kernel.
 295config GPIO_MC9S08DZ60
 296        bool "MX35 3DS BOARD MC9S08DZ60 GPIO functions"
 297        depends on I2C=y && MACH_MX35_3DS
 298        help
 299          Select this to enable the MC9S08DZ60 GPIO driver
 301config GPIO_PCA953X
 302        tristate "PCA953x, PCA955x, PCA957x, TCA64xx, and MAX7310 I/O ports"
 303        depends on I2C
 304        help
 305          Say yes here to provide access to several register-oriented
 306          SMBus I/O expanders, made mostly by NXP or TI.  Compatible
 307          models include:
 309          4 bits:       pca9536, pca9537
 311          8 bits:       max7310, max7315, pca6107, pca9534, pca9538, pca9554,
 312                        pca9556, pca9557, pca9574, tca6408
 314          16 bits:      max7312, max7313, pca9535, pca9539, pca9555, pca9575,
 315                        tca6416
 317config GPIO_PCA953X_IRQ
 318        bool "Interrupt controller support for PCA953x"
 319        depends on GPIO_PCA953X=y
 320        help
 321          Say yes here to enable the pca953x to be used as an interrupt
 322          controller. It requires the driver to be built in the kernel.
 324config GPIO_PCF857X
 325        tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders"
 326        depends on I2C
 327        help
 328          Say yes here to provide access to most "quasi-bidirectional" I2C
 329          GPIO expanders used for additional digital outputs or inputs.
 330          Most of these parts are from NXP, though TI is a second source for
 331          some of them.  Compatible models include:
 333          8 bits:   pcf8574, pcf8574a, pca8574, pca8574a,
 334                    pca9670, pca9672, pca9674, pca9674a,
 335                    max7328, max7329
 337          16 bits:  pcf8575, pcf8575c, pca8575,
 338                    pca9671, pca9673, pca9675
 340          Your board setup code will need to declare the expanders in
 341          use, and assign numbers to the GPIOs they expose.  Those GPIOs
 342          can then be used from drivers and other kernel code, just like
 343          other GPIOs, but only accessible from task contexts.
 345          This driver provides an in-kernel interface to those GPIOs using
 346          platform-neutral GPIO calls.
 348config GPIO_RC5T583
 349        bool "RICOH RC5T583 GPIO"
 350        depends on MFD_RC5T583
 351        help
 352          Select this option to enable GPIO driver for the Ricoh RC5T583
 353          chip family.
 354          This driver provides the support for driving/reading the gpio pins
 355          of RC5T583 device through standard gpio library.
 357config GPIO_SX150X
 358        bool "Semtech SX150x I2C GPIO expander"
 359        depends on I2C=y
 360        default n
 361        help
 362          Say yes here to provide support for Semtech SX150-series I2C
 363          GPIO expanders. Compatible models include:
 365          8 bits:  sx1508q
 366          16 bits: sx1509q
 368config GPIO_STMPE
 369        bool "STMPE GPIOs"
 370        depends on MFD_STMPE
 371        help
 372          This enables support for the GPIOs found on the STMPE I/O
 373          Expanders.
 375config GPIO_STP_XWAY
 376        bool "XWAY STP GPIOs"
 377        depends on SOC_XWAY
 378        help
 379          This enables support for the Serial To Parallel (STP) unit found on
 380          XWAY SoC. The STP allows the SoC to drive a shift registers cascade,
 381          that can be up to 24 bit. This peripheral is aimed at driving leds.
 382          Some of the gpios/leds can be auto updated by the soc with dsl and
 383          phy status.
 385config GPIO_TC3589X
 386        bool "TC3589X GPIOs"
 387        depends on MFD_TC3589X
 388        help
 389          This enables support for the GPIOs found on the TC3589X
 390          I/O Expander.
 392config GPIO_TPS65912
 393        tristate "TI TPS65912 GPIO"
 394        depends on (MFD_TPS65912_I2C || MFD_TPS65912_SPI)
 395        help
 396          This driver supports TPS65912 gpio chip
 398config GPIO_TWL4030
 399        tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
 400        depends on TWL4030_CORE
 401        help
 402          Say yes here to access the GPIO signals of various multi-function
 403          power management chips from Texas Instruments.
 405config GPIO_WM831X
 406        tristate "WM831x GPIOs"
 407        depends on MFD_WM831X
 408        help
 409          Say yes here to access the GPIO signals of WM831x power management
 410          chips from Wolfson Microelectronics.
 412config GPIO_WM8350
 413        tristate "WM8350 GPIOs"
 414        depends on MFD_WM8350
 415        help
 416          Say yes here to access the GPIO signals of WM8350 power management
 417          chips from Wolfson Microelectronics.
 419config GPIO_WM8994
 420        tristate "WM8994 GPIOs"
 421        depends on MFD_WM8994
 422        help
 423          Say yes here to access the GPIO signals of WM8994 audio hub
 424          CODECs from Wolfson Microelectronics.
 426config GPIO_ADP5520
 427        tristate "GPIO Support for ADP5520 PMIC"
 428        depends on PMIC_ADP5520
 429        help
 430          This option enables support for on-chip GPIO found
 431          on Analog Devices ADP5520 PMICs.
 433config GPIO_ADP5588
 434        tristate "ADP5588 I2C GPIO expander"
 435        depends on I2C
 436        help
 437          This option enables support for 18 GPIOs found
 438          on Analog Devices ADP5588 GPIO Expanders.
 440config GPIO_ADP5588_IRQ
 441        bool "Interrupt controller support for ADP5588"
 442        depends on GPIO_ADP5588=y
 443        help
 444          Say yes here to enable the adp5588 to be used as an interrupt
 445          controller. It requires the driver to be built in the kernel.
 447comment "PCI GPIO expanders:"
 449config GPIO_CS5535
 450        tristate "AMD CS5535/CS5536 GPIO support"
 451        depends on PCI && X86 && MFD_CS5535
 452        help
 453          The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that
 454          can be used for quite a number of things.  The CS5535/6 is found on
 455          AMD Geode and Lemote Yeeloong devices.
 457          If unsure, say N.
 459config GPIO_BT8XX
 460        tristate "BT8XX GPIO abuser"
 461        depends on PCI && VIDEO_BT848=n
 462        help
 463          The BT8xx frame grabber chip has 24 GPIO pins than can be abused
 464          as a cheap PCI GPIO card.
 466          This chip can be found on Miro, Hauppauge and STB TV-cards.
 468          The card needs to be physically altered for using it as a
 469          GPIO card. For more information on how to build a GPIO card
 470          from a BT8xx TV card, see the documentation file at
 471          Documentation/bt8xxgpio.txt
 473          If unsure, say N.
 475config GPIO_AMD8111
 476        tristate "AMD 8111 GPIO driver"
 477        depends on PCI
 478        help
 479          The AMD 8111 south bridge contains 32 GPIO pins which can be used.
 481          Note, that usually system firmware/ACPI handles GPIO pins on their
 482          own and users might easily break their systems with uncarefull usage
 483          of this driver!
 485          If unsure, say N
 487config GPIO_LANGWELL
 488        bool "Intel Langwell/Penwell GPIO support"
 489        depends on PCI && X86
 490        select IRQ_DOMAIN
 491        help
 492          Say Y here to support Intel Langwell/Penwell GPIO.
 494config GPIO_PCH
 495        tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7223/ML7831) GPIO"
 496        depends on PCI && X86
 497        select GENERIC_IRQ_CHIP
 498        help
 499          This driver is for PCH(Platform controller Hub) GPIO of Intel Topcliff
 500          which is an IOH(Input/Output Hub) for x86 embedded processor.
 501          This driver can access PCH GPIO device.
 503          This driver also can be used for LAPIS Semiconductor IOH(Input/
 504          Output Hub), ML7223 and ML7831.
 505          ML7223 IOH is for MP(Media Phone) use.
 506          ML7831 IOH is for general purpose use.
 507          ML7223/ML7831 is companion chip for Intel Atom E6xx series.
 508          ML7223/ML7831 is completely compatible for Intel EG20T PCH.
 510config GPIO_ML_IOH
 511        tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support"
 512        depends on PCI
 513        select GENERIC_IRQ_CHIP
 514        help
 515          ML7213 is companion chip for Intel Atom E6xx series.
 516          This driver can be used for OKI SEMICONDUCTOR ML7213 IOH(Input/Output
 517          Hub) which is for IVI(In-Vehicle Infotainment) use.
 518          This driver can access the IOH's GPIO device.
 521        bool "Intel Sodaville GPIO support"
 522        depends on X86 && PCI && OF
 523        select GPIO_GENERIC
 524        select GENERIC_IRQ_CHIP
 525        help
 526          Say Y here to support Intel Sodaville GPIO.
 529        bool "Support for timberdale GPIO IP"
 530        depends on MFD_TIMBERDALE && HAS_IOMEM
 531        ---help---
 532        Add support for the GPIO IP in the timberdale FPGA.
 534config GPIO_RDC321X
 535        tristate "RDC R-321x GPIO support"
 536        depends on PCI
 537        select MFD_CORE
 538        select MFD_RDC321X
 539        help
 540          Support for the RDC R321x SoC GPIOs over southbridge
 541          PCI configuration space.
 543comment "SPI GPIO expanders:"
 545config GPIO_MAX7301
 546        tristate "Maxim MAX7301 GPIO expander"
 547        depends on SPI_MASTER
 548        select GPIO_MAX730X
 549        help
 550          GPIO driver for Maxim MAX7301 SPI-based GPIO expander.
 552config GPIO_MCP23S08
 553        tristate "Microchip MCP23xxx I/O expander"
 554        depends on SPI_MASTER || I2C
 555        help
 556          SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017
 557          I/O expanders.
 558          This provides a GPIO interface supporting inputs and outputs.
 560config GPIO_MC33880
 561        tristate "Freescale MC33880 high-side/low-side switch"
 562        depends on SPI_MASTER
 563        help
 564          SPI driver for Freescale MC33880 high-side/low-side switch.
 565          This provides GPIO interface supporting inputs and outputs.
 567config GPIO_74X164
 568        tristate "74x164 serial-in/parallel-out 8-bits shift register"
 569        depends on SPI_MASTER
 570        help
 571          Platform driver for 74x164 compatible serial-in/parallel-out
 572          8-outputs shift registers. This driver can be used to provide access
 573          to more gpio outputs.
 575comment "AC97 GPIO expanders:"
 577config GPIO_UCB1400
 578        bool "Philips UCB1400 GPIO"
 579        depends on UCB1400_CORE
 580        help
 581          This enables support for the Philips UCB1400 GPIO pins.
 582          The UCB1400 is an AC97 audio codec.
 584comment "MODULbus GPIO expanders:"
 586config GPIO_JANZ_TTL
 587        tristate "Janz VMOD-TTL Digital IO Module"
 588        depends on MFD_JANZ_CMODIO
 589        help
 590          This enables support for the Janz VMOD-TTL Digital IO module.
 591          This driver provides support for driving the pins in output
 592          mode only. Input mode is not supported.
 594config GPIO_AB8500
 595        bool "ST-Ericsson AB8500 Mixed Signal Circuit gpio functions"
 596        depends on AB8500_CORE && BROKEN
 597        help
 598          Select this to enable the AB8500 IC GPIO driver
 600config GPIO_TPS6586X
 601        bool "TPS6586X GPIO"
 602        depends on MFD_TPS6586X
 603        help
 604          Select this option to enable GPIO driver for the TPS6586X
 605          chip family.
 607config GPIO_TPS65910
 608        bool "TPS65910 GPIO"
 609        depends on MFD_TPS65910
 610        help
 611          Select this option to enable GPIO driver for the TPS65910
 612          chip family.
 614config GPIO_MSIC
 615        bool "Intel MSIC mixed signal gpio support"
 616        depends on MFD_INTEL_MSIC
 617        help
 618          Enable support for GPIO on intel MSIC controllers found in
 619          intel MID devices
 622 kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.