hc
2024-08-12 233ab1bd4c5697f5cdec94e60206e8c6ac609b4c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
#
# GPIO infrastructure and drivers
#
 
menu "GPIO Support"
 
config DM_GPIO
   bool "Enable Driver Model for GPIO drivers"
   depends on DM
   help
     Enable driver model for GPIO access. The standard GPIO
     interface (gpio_get_value(), etc.) is then implemented by
     the GPIO uclass. Drivers provide methods to query the
     particular GPIOs that they provide. The uclass interface
     is defined in include/asm-generic/gpio.h.
 
config GPIO_HOG
   bool "Enable GPIO hog support"
   depends on DM_GPIO
   default n
   help
     Enable gpio hog support
     The GPIO chip may contain GPIO hog definitions. GPIO hogging
     is a mechanism providing automatic GPIO request and config-
     uration as part of the gpio-controller's driver probe function.
 
config GPIO_NO_UC_FLAG_SEQ_ALIAS
   bool "Disable GPIO uclass sequence themselves with aliases"
   depends on USING_KERNEL_DTB
   default n
   help
     Disable GPIO uclass sequence, this is a workaround when kernel
     dtb feature is enabled. Avoid gpio device probe failed when
     alloc req_seq both for gpio devices from U-Boot and kernel dtb.
 
config ALTERA_PIO
   bool "Altera PIO driver"
   depends on DM_GPIO
   help
     Select this to enable PIO for Altera devices. Please find
     details on the "Embedded Peripherals IP User Guide" of Altera.
 
config BCM6345_GPIO
   bool "BCM6345 GPIO driver"
   depends on DM_GPIO && ARCH_BMIPS
   help
     This driver supports the GPIO banks on BCM6345 SoCs.
 
config DWAPB_GPIO
   bool "DWAPB GPIO driver"
   depends on DM && DM_GPIO
   default n
   help
     Support for the Designware APB GPIO driver.
 
config AT91_GPIO
   bool "AT91 PIO GPIO driver"
   depends on DM_GPIO
   default n
   help
     Say yes here to select AT91 PIO GPIO driver. AT91 PIO
     controller manages up to 32 fully programmable input/output
     lines. Each I/O line may be dedicated as a general-purpose
     I/O or be assigned to a function of an embedded peripheral.
     The assignment to a function of an embedded peripheral is
     the responsibility of AT91 Pinctrl driver. This driver is
     responsible for the general-purpose I/O.
 
config ATMEL_PIO4
   bool "ATMEL PIO4 driver"
   depends on DM_GPIO
   default n
   help
     Say yes here to support the Atmel PIO4 driver.
     The PIO4 is new version of Atmel PIO controller, which manages
     up to 128 fully programmable input/output lines. Each I/O line
     may be dedicated as a general purpose I/O or be assigned to
     a function of an embedded peripheral.
 
config INTEL_BROADWELL_GPIO
   bool "Intel Broadwell GPIO driver"
   depends on DM
   help
     This driver supports Broadwell U devices which have an expanded
     GPIO feature set. The difference is large enough to merit a separate
     driver from the common Intel ICH6 driver. It supports a total of
     95 GPIOs which can be configured from the device tree.
 
config INTEL_ICH6_GPIO
   bool "Intel ICH6 compatible legacy GPIO driver"
   depends on DM_GPIO
   help
     Say yes here to select Intel ICH6 compatible legacy GPIO driver.
 
config IMX_RGPIO2P
   bool "i.MX7ULP RGPIO2P driver"
   depends on DM
   default n
   help
     This driver supports i.MX7ULP Rapid GPIO2P controller.
 
config LPC32XX_GPIO
   bool "LPC32XX GPIO driver"
   depends on DM
   default n
   help
     Support for the LPC32XX GPIO driver.
 
config MSM_GPIO
   bool "Qualcomm GPIO driver"
   depends on DM_GPIO
   default n
   help
     Support GPIO controllers on Qualcomm Snapdragon family of SoCs.
     This controller have single bank (default name "soc"), every
     gpio has it's own set of registers.
     Only simple GPIO operations are supported (get/set, change of
     direction and checking pin function).
     Supported devices:
     - APQ8016
     - MSM8916
 
config OMAP_GPIO
   bool "TI OMAP GPIO driver"
   depends on ARCH_OMAP2PLUS
   default y
   help
     Support GPIO controllers on the TI OMAP3/4/5 and related (such as
     AM335x/AM43xx/AM57xx/DRA7xx/etc) families of SoCs.
 
config CMD_PCA953X
   bool "Enable the pca953x command"
   help
     Deprecated: This should be converted to driver model.
 
     This command provides access to a pca953x GPIO device using the
     legacy GPIO interface. Several subcommands are provided which mirror
     the standard 'gpio' command. It should use that instead.
 
config PM8916_GPIO
   bool "Qualcomm PM8916 PMIC GPIO/keypad driver"
   depends on DM_GPIO && PMIC_PM8916
   help
     Support for GPIO pins and power/reset buttons found on
     Qualcomm PM8916 PMIC.
     Default name for GPIO bank is "pm8916".
     Power and reset buttons are placed in "pm8916_key" bank and
          have gpio numbers 0 and 1 respectively.
 
config PCF8575_GPIO
   bool "PCF8575 I2C GPIO Expander driver"
   depends on DM_GPIO && DM_I2C
   help
    Support for PCF8575 I2C 16-bit GPIO expander. Most of these
    chips are from NXP and TI.
 
config ROCKCHIP_GPIO
   bool "Rockchip GPIO driver"
   depends on DM_GPIO
   help
     Support GPIO access on Rockchip SoCs. The GPIOs are arranged into
     a number of banks (different for each SoC type) each with 32 GPIOs.
     The GPIOs for a device are defined in the device tree with one node
     for each bank.
 
config ROCKCHIP_GPIO_V2
   bool "Rockchip GPIO driver version 2.0"
   depends on ROCKCHIP_GPIO
   default n
   help
     Support GPIO access on Rockchip SoCs. The GPIOs are arranged into
     a number of banks (different for each SoC type) each with 32 GPIOs.
     The GPIOs for a device are defined in the device tree with one node
     for each bank.
 
     Support version 2.0 GPIO controller, which support write enable bits
     for some registers, such as dr, ddr.
 
config SANDBOX_GPIO
   bool "Enable sandbox GPIO driver"
   depends on SANDBOX && DM && DM_GPIO
   help
     This driver supports some simulated GPIOs which can be adjusted
     using 'back door' functions like sandbox_gpio_set_value(). Then the
     GPIOs can be inspected through the normal get_get_value()
     interface. The purpose of this is to allow GPIOs to be used as
     normal in sandbox, perhaps with test code actually driving the
     behaviour of those GPIOs.
 
config SANDBOX_GPIO_COUNT
   int "Number of sandbox GPIOs"
   depends on SANDBOX_GPIO
   default 128
   help
     The sandbox driver can support any number of GPIOs. Generally these
     are specified using the device tree. But you can also have a number
     of 'anonymous' GPIOs that do not belong to any device or bank.
     Select a suitable value depending on your needs.
 
config CMD_TCA642X
   bool "tca642x - Command to access tca642x state"
   help
     DEPRECATED - This needs conversion to driver model
 
     This provides a way to looking at the pin state of this device.
     This mirrors the 'gpio' command and that should be used in preference
     to custom code.
 
config TEGRA_GPIO
   bool "Tegra20..210 GPIO driver"
   depends on DM_GPIO
   help
     Support for the GPIO controller contained in NVIDIA Tegra20 through
     Tegra210.
 
config TEGRA186_GPIO
   bool "Tegra186 GPIO driver"
   depends on DM_GPIO
   help
     Support for the GPIO controller contained in NVIDIA Tegra186. This
     covers both the "main" and "AON" controller instances, even though
     they have slightly different register layout.
 
config GPIO_UNIPHIER
   bool "UniPhier GPIO"
   depends on ARCH_UNIPHIER
   help
     Say yes here to support UniPhier GPIOs.
 
config VYBRID_GPIO
   bool "Vybrid GPIO driver"
   depends on DM
   default n
   help
     Say yes here to support Vybrid vf610 GPIOs.
 
config PIC32_GPIO
   bool "Microchip PIC32 GPIO driver"
   depends on DM_GPIO && MACH_PIC32
   default y
   help
     Say yes here to support Microchip PIC32 GPIOs.
 
config STM32F7_GPIO
   bool "ST STM32 GPIO driver"
   depends on DM_GPIO && STM32
   default y
   help
     Device model driver support for STM32 GPIO controller. It should be
     usable on many stm32 families like stm32f4 & stm32H7.
     Tested on STM32F7.
 
config MVEBU_GPIO
   bool "Marvell MVEBU GPIO driver"
   depends on DM_GPIO && ARCH_MVEBU
   default y
   help
     Say yes here to support Marvell MVEBU (Armada XP/38x) GPIOs.
 
config ZYNQ_GPIO
   bool "Zynq GPIO driver"
   depends on DM_GPIO && (ARCH_ZYNQ || ARCH_ZYNQMP)
   default y
   help
     Supports GPIO access on Zynq SoC.
 
config DM_74X164
   bool "74x164 serial-in/parallel-out 8-bits shift register"
   depends on DM_GPIO
   help
     Driver for 74x164 compatible serial-in/parallel-out 8-outputs
     shift registers, such as 74lv165, 74hc595.
     This driver can be used to provide access to more gpio outputs.
 
config DM_PCA953X
   bool "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
   depends on DM_GPIO
   help
     Say yes here to provide access to several register-oriented
     SMBus I/O expanders, made mostly by NXP or TI.  Compatible
     models include:
 
     4 bits:    pca9536, pca9537
 
     8 bits:    max7310, max7315, pca6107, pca9534, pca9538, pca9554,
           pca9556, pca9557, pca9574, tca6408, xra1202
 
     16 bits:    max7312, max7313, pca9535, pca9539, pca9555, pca9575,
           tca6416
 
     24 bits:    tca6424
 
     40 bits:    pca9505, pca9698
 
     Now, max 24 bits chips and PCA953X compatible chips are
     supported
 
config MPC85XX_GPIO
   bool "Freescale MPC85XX GPIO driver"
   depends on DM_GPIO
   help
     This driver supports the built-in GPIO controller of MPC85XX CPUs.
     Each GPIO bank is identified by its own entry in the device tree,
     i.e.
 
     gpio-controller@fc00 {
       #gpio-cells = <2>;
       compatible = "fsl,pq3-gpio";
       reg = <0xfc00 0x100>
     }
 
     By default, each bank is assumed to have 32 GPIOs, but the ngpios
     setting is honored, so the number of GPIOs for each bank is
     configurable to match the actual GPIO count of the SoC (e.g. the
     32/32/23 banks of the P1022 SoC).
 
     Aside from the standard functions of input/output mode, and output
     value setting, the open-drain feature, which can configure individual
     GPIOs to work as open-drain outputs, is supported.
 
     The driver has been tested on MPC85XX, but it is likely that other
     PowerQUICC III devices will work as well.
 
config NCA9539_GPIO
   bool "NCA9539 GPIO port expander driver"
   depends on DM_GPIO
   default n
   help
     Device model driver support for NCA9539 GPIO expander. It should be
     usable on many NCA9539 families like NCA9539 & NCA9535.
     Tested on NCA9539.
endmenu