Kconfig 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. #
  2. # GPIO infrastructure and drivers
  3. #
  4. menu "GPIO Support"
  5. config DM_GPIO
  6. bool "Enable Driver Model for GPIO drivers"
  7. depends on DM
  8. help
  9. Enable driver model for GPIO access. The standard GPIO
  10. interface (gpio_get_value(), etc.) is then implemented by
  11. the GPIO uclass. Drivers provide methods to query the
  12. particular GPIOs that they provide. The uclass interface
  13. is defined in include/asm-generic/gpio.h.
  14. config ALTERA_PIO
  15. bool "Altera PIO driver"
  16. depends on DM_GPIO
  17. help
  18. Select this to enable PIO for Altera devices. Please find
  19. details on the "Embedded Peripherals IP User Guide" of Altera.
  20. config DWAPB_GPIO
  21. bool "DWAPB GPIO driver"
  22. depends on DM && DM_GPIO
  23. default n
  24. help
  25. Support for the Designware APB GPIO driver.
  26. config ATMEL_PIO4
  27. bool "ATMEL PIO4 driver"
  28. depends on DM_GPIO
  29. default n
  30. help
  31. Say yes here to support the Atmel PIO4 driver.
  32. The PIO4 is new version of Atmel PIO controller, which manages
  33. up to 128 fully programmable input/output lines. Each I/O line
  34. may be dedicated as a general purpose I/O or be assigned to
  35. a function of an embedded peripheral.
  36. config INTEL_BROADWELL_GPIO
  37. bool "Intel Broadwell GPIO driver"
  38. depends on DM
  39. help
  40. This driver supports Broadwell U devices which have an expanded
  41. GPIO feature set. The difference is large enough to merit a separate
  42. driver from the common Intel ICH6 driver. It supports a total of
  43. 95 GPIOs which can be configured from the device tree.
  44. config LPC32XX_GPIO
  45. bool "LPC32XX GPIO driver"
  46. depends on DM
  47. default n
  48. help
  49. Support for the LPC32XX GPIO driver.
  50. config MSM_GPIO
  51. bool "Qualcomm GPIO driver"
  52. depends on DM_GPIO
  53. default n
  54. help
  55. Support GPIO controllers on Qualcomm Snapdragon family of SoCs.
  56. This controller have single bank (default name "soc"), every
  57. gpio has it's own set of registers.
  58. Only simple GPIO operations are supported (get/set, change of
  59. direction and checking pin function).
  60. Supported devices:
  61. - APQ8016
  62. - MSM8916
  63. config PM8916_GPIO
  64. bool "Qualcomm PM8916 PMIC GPIO/keypad driver"
  65. depends on DM_GPIO && PMIC_PM8916
  66. help
  67. Support for GPIO pins and power/reset buttons found on
  68. Qualcomm PM8916 PMIC.
  69. Default name for GPIO bank is "pm8916".
  70. Power and reset buttons are placed in "pm8916_key" bank and
  71. have gpio numbers 0 and 1 respectively.
  72. config PCF8575_GPIO
  73. bool "PCF8575 I2C GPIO Expander driver"
  74. depends on DM_GPIO && DM_I2C
  75. help
  76. Support for PCF8575 I2C 16-bit GPIO expander. Most of these
  77. chips are from NXP and TI.
  78. config ROCKCHIP_GPIO
  79. bool "Rockchip GPIO driver"
  80. depends on DM_GPIO
  81. help
  82. Support GPIO access on Rockchip SoCs. The GPIOs are arranged into
  83. a number of banks (different for each SoC type) each with 32 GPIOs.
  84. The GPIOs for a device are defined in the device tree with one node
  85. for each bank.
  86. config SANDBOX_GPIO
  87. bool "Enable sandbox GPIO driver"
  88. depends on SANDBOX && DM && DM_GPIO
  89. help
  90. This driver supports some simulated GPIOs which can be adjusted
  91. using 'back door' functions like sandbox_gpio_set_value(). Then the
  92. GPIOs can be inspected through the normal get_get_value()
  93. interface. The purpose of this is to allow GPIOs to be used as
  94. normal in sandbox, perhaps with test code actually driving the
  95. behaviour of those GPIOs.
  96. config SANDBOX_GPIO_COUNT
  97. int "Number of sandbox GPIOs"
  98. depends on SANDBOX_GPIO
  99. default 128
  100. help
  101. The sandbox driver can support any number of GPIOs. Generally these
  102. are specified using the device tree. But you can also have a number
  103. of 'anonymous' GPIOs that do not belong to any device or bank.
  104. Select a suitable value depending on your needs.
  105. config TEGRA_GPIO
  106. bool "Tegra20..210 GPIO driver"
  107. depends on DM_GPIO
  108. help
  109. Support for the GPIO controller contained in NVIDIA Tegra20 through
  110. Tegra210.
  111. config TEGRA186_GPIO
  112. bool "Tegra186 GPIO driver"
  113. depends on DM_GPIO
  114. help
  115. Support for the GPIO controller contained in NVIDIA Tegra186. This
  116. covers both the "main" and "AON" controller instances, even though
  117. they have slightly different register layout.
  118. config GPIO_UNIPHIER
  119. bool "UniPhier GPIO"
  120. depends on ARCH_UNIPHIER
  121. help
  122. Say yes here to support UniPhier GPIOs.
  123. config VYBRID_GPIO
  124. bool "Vybrid GPIO driver"
  125. depends on DM
  126. default n
  127. help
  128. Say yes here to support Vybrid vf610 GPIOs.
  129. config PIC32_GPIO
  130. bool "Microchip PIC32 GPIO driver"
  131. depends on DM_GPIO && MACH_PIC32
  132. default y
  133. help
  134. Say yes here to support Microchip PIC32 GPIOs.
  135. config MVEBU_GPIO
  136. bool "Marvell MVEBU GPIO driver"
  137. depends on DM_GPIO && ARCH_MVEBU
  138. default y
  139. help
  140. Say yes here to support Marvell MVEBU (Armada XP/38x) GPIOs.
  141. config ZYNQ_GPIO
  142. bool "Zynq GPIO driver"
  143. depends on DM_GPIO && (ARCH_ZYNQ || ARCH_ZYNQMP)
  144. default y
  145. help
  146. Supports GPIO access on Zynq SoC.
  147. config DM_74X164
  148. bool "74x164 serial-in/parallel-out 8-bits shift register"
  149. depends on DM_GPIO
  150. help
  151. Driver for 74x164 compatible serial-in/parallel-out 8-outputs
  152. shift registers, such as 74lv165, 74hc595.
  153. This driver can be used to provide access to more gpio outputs.
  154. config DM_PCA953X
  155. bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
  156. depends on DM_GPIO
  157. help
  158. Say yes here to provide access to several register-oriented
  159. SMBus I/O expanders, made mostly by NXP or TI. Compatible
  160. models include:
  161. 4 bits: pca9536, pca9537
  162. 8 bits: max7310, max7315, pca6107, pca9534, pca9538, pca9554,
  163. pca9556, pca9557, pca9574, tca6408, xra1202
  164. 16 bits: max7312, max7313, pca9535, pca9539, pca9555, pca9575,
  165. tca6416
  166. 24 bits: tca6424
  167. 40 bits: pca9505, pca9698
  168. Now, max 24 bits chips and PCA953X compatible chips are
  169. supported
  170. config MPC85XX_GPIO
  171. bool "Freescale MPC85XX GPIO driver"
  172. depends on DM_GPIO
  173. help
  174. This driver supports the built-in GPIO controller of MPC85XX CPUs.
  175. Each GPIO bank is identified by its own entry in the device tree,
  176. i.e.
  177. gpio-controller@fc00 {
  178. #gpio-cells = <2>;
  179. compatible = "fsl,pq3-gpio";
  180. reg = <0xfc00 0x100>
  181. }
  182. By default, each bank is assumed to have 32 GPIOs, but the ngpios
  183. setting is honored, so the number of GPIOs for each bank is
  184. configurable to match the actual GPIO count of the SoC (e.g. the
  185. 32/32/23 banks of the P1022 SoC).
  186. Aside from the standard functions of input/output mode, and output
  187. value setting, the open-drain feature, which can configure individual
  188. GPIOs to work as open-drain outputs, is supported.
  189. The driver has been tested on MPC85XX, but it is likely that other
  190. PowerQUICC III devices will work as well.
  191. endmenu