]>
Commit | Line | Data |
---|---|---|
0b11dbf7 MY |
1 | # |
2 | # Multifunction miscellaneous devices | |
3 | # | |
4 | ||
5 | menu "Multifunction device drivers" | |
6 | ||
4395e06e TC |
7 | config MISC |
8 | bool "Enable Driver Model for Misc drivers" | |
9 | depends on DM | |
10 | help | |
11 | Enable driver model for miscellaneous devices. This class is | |
12 | used only for those do not fit other more general classes. A | |
13 | set of generic read, write and ioctl methods may be used to | |
14 | access the device. | |
15 | ||
aaba703f SG |
16 | config SPL_MISC |
17 | bool "Enable Driver Model for Misc drivers in SPL" | |
18 | depends on SPL_DM | |
19 | help | |
20 | Enable driver model for miscellaneous devices. This class is | |
21 | used only for those do not fit other more general classes. A | |
22 | set of generic read, write and ioctl methods may be used to | |
23 | access the device. | |
24 | ||
25 | config TPL_MISC | |
26 | bool "Enable Driver Model for Misc drivers in TPL" | |
27 | depends on TPL_DM | |
28 | help | |
29 | Enable driver model for miscellaneous devices. This class is | |
30 | used only for those do not fit other more general classes. A | |
31 | set of generic read, write and ioctl methods may be used to | |
32 | access the device. | |
33 | ||
ca844dd8 TC |
34 | config ALTERA_SYSID |
35 | bool "Altera Sysid support" | |
36 | depends on MISC | |
37 | help | |
38 | Select this to enable a sysid for Altera devices. Please find | |
39 | details on the "Embedded Peripherals IP User Guide" of Altera. | |
40 | ||
aa5eb9a3 MB |
41 | config ATSHA204A |
42 | bool "Support for Atmel ATSHA204A module" | |
43 | depends on MISC | |
44 | help | |
45 | Enable support for I2C connected Atmel's ATSHA204A | |
46 | CryptoAuthentication module found for example on the Turris Omnia | |
47 | board. | |
48 | ||
49cd8e85 PT |
49 | config ROCKCHIP_EFUSE |
50 | bool "Rockchip e-fuse support" | |
51 | depends on MISC | |
52 | help | |
53 | Enable (read-only) access for the e-fuse block found in Rockchip | |
54 | SoCs: accesses can either be made using byte addressing and a length | |
55 | or through child-nodes that are generated based on the e-fuse map | |
56 | retrieved from the DTS. | |
57 | ||
58 | This driver currently supports the RK3399 only, but can easily be | |
59 | extended (by porting the read function from the Linux kernel sources) | |
60 | to support other recent Rockchip devices. | |
61 | ||
a907dc3f FX |
62 | config ROCKCHIP_OTP |
63 | bool "Rockchip OTP Support" | |
64 | depends on MISC | |
65 | help | |
66 | Enable (read-only) access for the one-time-programmable memory block | |
67 | found in Rockchip SoCs: accesses can either be made using byte | |
68 | addressing and a length or through child-nodes that are generated | |
69 | based on the e-fuse map retrieved from the DTS. | |
70 | ||
05307213 PP |
71 | config SIFIVE_OTP |
72 | bool "SiFive eMemory OTP driver" | |
73 | depends on MISC | |
74 | help | |
75 | Enable support for reading and writing the eMemory OTP on the | |
76 | SiFive SoCs. | |
77 | ||
0fabfeb2 LD |
78 | config VEXPRESS_CONFIG |
79 | bool "Enable support for Arm Versatile Express config bus" | |
80 | depends on MISC | |
81 | help | |
82 | If you say Y here, you will get support for accessing the | |
83 | configuration bus on the Arm Versatile Express boards via | |
84 | a sysreg driver. | |
85 | ||
6fb9ac15 SG |
86 | config CMD_CROS_EC |
87 | bool "Enable crosec command" | |
88 | depends on CROS_EC | |
89 | help | |
90 | Enable command-line access to the Chrome OS EC (Embedded | |
91 | Controller). This provides the 'crosec' command which has | |
92 | a number of sub-commands for performing EC tasks such as | |
93 | updating its flash, accessing a small saved context area | |
94 | and talking to the I2C bus behind the EC (if there is one). | |
95 | ||
96 | config CROS_EC | |
97 | bool "Enable Chrome OS EC" | |
98 | help | |
99 | Enable access to the Chrome OS EC. This is a separate | |
100 | microcontroller typically available on a SPI bus on Chromebooks. It | |
101 | provides access to the keyboard, some internal storage and may | |
102 | control access to the battery and main PMIC depending on the | |
103 | device. You can use the 'crosec' command to access it. | |
104 | ||
aaba703f SG |
105 | config SPL_CROS_EC |
106 | bool "Enable Chrome OS EC in SPL" | |
a074667d | 107 | depends on SPL |
aaba703f SG |
108 | help |
109 | Enable access to the Chrome OS EC in SPL. This is a separate | |
110 | microcontroller typically available on a SPI bus on Chromebooks. It | |
111 | provides access to the keyboard, some internal storage and may | |
112 | control access to the battery and main PMIC depending on the | |
113 | device. You can use the 'crosec' command to access it. | |
114 | ||
115 | config TPL_CROS_EC | |
116 | bool "Enable Chrome OS EC in TPL" | |
a074667d | 117 | depends on TPL |
aaba703f SG |
118 | help |
119 | Enable access to the Chrome OS EC in TPL. This is a separate | |
120 | microcontroller typically available on a SPI bus on Chromebooks. It | |
121 | provides access to the keyboard, some internal storage and may | |
122 | control access to the battery and main PMIC depending on the | |
123 | device. You can use the 'crosec' command to access it. | |
124 | ||
6fb9ac15 SG |
125 | config CROS_EC_I2C |
126 | bool "Enable Chrome OS EC I2C driver" | |
127 | depends on CROS_EC | |
128 | help | |
129 | Enable I2C access to the Chrome OS EC. This is used on older | |
130 | ARM Chromebooks such as snow and spring before the standard bus | |
131 | changed to SPI. The EC will accept commands across the I2C using | |
132 | a special message protocol, and provide responses. | |
133 | ||
134 | config CROS_EC_LPC | |
135 | bool "Enable Chrome OS EC LPC driver" | |
136 | depends on CROS_EC | |
137 | help | |
138 | Enable I2C access to the Chrome OS EC. This is used on x86 | |
139 | Chromebooks such as link and falco. The keyboard is provided | |
140 | through a legacy port interface, so on x86 machines the main | |
141 | function of the EC is power and thermal management. | |
142 | ||
aaba703f SG |
143 | config SPL_CROS_EC_LPC |
144 | bool "Enable Chrome OS EC LPC driver in SPL" | |
145 | depends on CROS_EC | |
146 | help | |
147 | Enable I2C access to the Chrome OS EC. This is used on x86 | |
148 | Chromebooks such as link and falco. The keyboard is provided | |
149 | through a legacy port interface, so on x86 machines the main | |
150 | function of the EC is power and thermal management. | |
151 | ||
152 | config TPL_CROS_EC_LPC | |
153 | bool "Enable Chrome OS EC LPC driver in TPL" | |
154 | depends on CROS_EC | |
155 | help | |
156 | Enable I2C access to the Chrome OS EC. This is used on x86 | |
157 | Chromebooks such as link and falco. The keyboard is provided | |
158 | through a legacy port interface, so on x86 machines the main | |
159 | function of the EC is power and thermal management. | |
160 | ||
47cb8c65 SG |
161 | config CROS_EC_SANDBOX |
162 | bool "Enable Chrome OS EC sandbox driver" | |
163 | depends on CROS_EC && SANDBOX | |
164 | help | |
165 | Enable a sandbox emulation of the Chrome OS EC. This supports | |
166 | keyboard (use the -l flag to enable the LCD), verified boot context, | |
167 | EC flash read/write/erase support and a few other things. It is | |
168 | enough to perform a Chrome OS verified boot on sandbox. | |
169 | ||
aaba703f SG |
170 | config SPL_CROS_EC_SANDBOX |
171 | bool "Enable Chrome OS EC sandbox driver in SPL" | |
172 | depends on SPL_CROS_EC && SANDBOX | |
173 | help | |
174 | Enable a sandbox emulation of the Chrome OS EC in SPL. This supports | |
175 | keyboard (use the -l flag to enable the LCD), verified boot context, | |
176 | EC flash read/write/erase support and a few other things. It is | |
177 | enough to perform a Chrome OS verified boot on sandbox. | |
178 | ||
179 | config TPL_CROS_EC_SANDBOX | |
180 | bool "Enable Chrome OS EC sandbox driver in TPL" | |
181 | depends on TPL_CROS_EC && SANDBOX | |
182 | help | |
183 | Enable a sandbox emulation of the Chrome OS EC in TPL. This supports | |
184 | keyboard (use the -l flag to enable the LCD), verified boot context, | |
185 | EC flash read/write/erase support and a few other things. It is | |
186 | enough to perform a Chrome OS verified boot on sandbox. | |
187 | ||
6fb9ac15 SG |
188 | config CROS_EC_SPI |
189 | bool "Enable Chrome OS EC SPI driver" | |
190 | depends on CROS_EC | |
191 | help | |
192 | Enable SPI access to the Chrome OS EC. This is used on newer | |
193 | ARM Chromebooks such as pit, pi and nyan-big. The SPI interface | |
194 | provides a faster and more robust interface than I2C but the bugs | |
195 | are less interesting. | |
196 | ||
879704d8 SG |
197 | config DS4510 |
198 | bool "Enable support for DS4510 CPU supervisor" | |
199 | help | |
200 | Enable support for the Maxim DS4510 CPU supervisor. It has an | |
201 | integrated 64-byte EEPROM, four programmable non-volatile I/O pins | |
202 | and a configurable timer for the supervisor function. The device is | |
203 | connected over I2C. | |
204 | ||
c12e0d93 | 205 | config FSL_SEC_MON |
fe78378d | 206 | bool "Enable FSL SEC_MON Driver" |
207 | help | |
208 | Freescale Security Monitor block is responsible for monitoring | |
209 | system states. | |
210 | Security Monitor can be transitioned on any security failures, | |
211 | like software violations or hardware security violations. | |
1cdd9412 | 212 | |
79d66a6a SG |
213 | config IRQ |
214 | bool "Intel Interrupt controller" | |
215 | depends on X86 || SANDBOX | |
216 | help | |
217 | This enables support for Intel interrupt controllers, including ITSS. | |
218 | Some devices have extra features, such as Apollo Lake. The | |
219 | device has its own uclass since there are several operations | |
220 | involved. | |
221 | ||
b5392c50 PB |
222 | config JZ4780_EFUSE |
223 | bool "Ingenic JZ4780 eFUSE support" | |
224 | depends on ARCH_JZ47XX | |
225 | help | |
226 | This selects support for the eFUSE on Ingenic JZ4780 SoCs. | |
227 | ||
3e020f03 PF |
228 | config MXC_OCOTP |
229 | bool "Enable MXC OCOTP Driver" | |
994ab731 | 230 | depends on ARCH_IMX8M || ARCH_MX6 || ARCH_MX7 || ARCH_MX7ULP || ARCH_VF610 |
0a6f625d | 231 | default y |
3e020f03 PF |
232 | help |
233 | If you say Y here, you will get support for the One Time | |
234 | Programmable memory pages that are stored on the some | |
235 | Freescale i.MX processors. | |
236 | ||
4cf9e464 SR |
237 | config NUVOTON_NCT6102D |
238 | bool "Enable Nuvoton NCT6102D Super I/O driver" | |
239 | help | |
240 | If you say Y here, you will get support for the Nuvoton | |
241 | NCT6102D Super I/O driver. This can be used to enable or | |
242 | disable the legacy UART, the watchdog or other devices | |
243 | in the Nuvoton Super IO chips on X86 platforms. | |
244 | ||
5bee27aa | 245 | config P2SB |
d872e7da | 246 | bool "Intel Primary to Sideband Bridge" |
5bee27aa SG |
247 | depends on X86 || SANDBOX |
248 | help | |
d872e7da | 249 | This enables support for the Intel Primary to Sideband Bridge, |
5bee27aa SG |
250 | abbreviated to P2SB. The P2SB is used to access various peripherals |
251 | such as eSPI, GPIO, through memory-mapped I/O in a large chunk of PCI | |
252 | space. The space is segmented into different channels and peripherals | |
253 | are accessed by device-specific means within those channels. Devices | |
254 | should be added in the device tree as subnodes of the P2SB. A | |
255 | Peripheral Channel Register? (PCR) API is provided to access those | |
256 | devices - see pcr_readl(), etc. | |
257 | ||
258 | config SPL_P2SB | |
d872e7da | 259 | bool "Intel Primary to Sideband Bridge in SPL" |
5bee27aa SG |
260 | depends on SPL && (X86 || SANDBOX) |
261 | help | |
d872e7da | 262 | The Primary to Sideband Bridge is used to access various peripherals |
5bee27aa SG |
263 | through memory-mapped I/O in a large chunk of PCI space. The space is |
264 | segmented into different channels and peripherals are accessed by | |
265 | device-specific means within those channels. Devices should be added | |
266 | in the device tree as subnodes of the p2sb. | |
267 | ||
268 | config TPL_P2SB | |
d872e7da | 269 | bool "Intel Primary to Sideband Bridge in TPL" |
5bee27aa SG |
270 | depends on TPL && (X86 || SANDBOX) |
271 | help | |
d872e7da | 272 | The Primary to Sideband Bridge is used to access various peripherals |
5bee27aa SG |
273 | through memory-mapped I/O in a large chunk of PCI space. The space is |
274 | segmented into different channels and peripherals are accessed by | |
275 | device-specific means within those channels. Devices should be added | |
276 | in the device tree as subnodes of the p2sb. | |
277 | ||
5fd6badb SG |
278 | config PWRSEQ |
279 | bool "Enable power-sequencing drivers" | |
280 | depends on DM | |
281 | help | |
282 | Power-sequencing drivers provide support for controlling power for | |
283 | devices. They are typically referenced by a phandle from another | |
284 | device. When the device is started up, its power sequence can be | |
285 | initiated. | |
286 | ||
287 | config SPL_PWRSEQ | |
288 | bool "Enable power-sequencing drivers for SPL" | |
289 | depends on PWRSEQ | |
290 | help | |
291 | Power-sequencing drivers provide support for controlling power for | |
292 | devices. They are typically referenced by a phandle from another | |
293 | device. When the device is started up, its power sequence can be | |
294 | initiated. | |
295 | ||
1cdd9412 SR |
296 | config PCA9551_LED |
297 | bool "Enable PCA9551 LED driver" | |
298 | help | |
299 | Enable driver for PCA9551 LED controller. This controller | |
300 | is connected via I2C. So I2C needs to be enabled. | |
301 | ||
302 | config PCA9551_I2C_ADDR | |
303 | hex "I2C address of PCA9551 LED controller" | |
304 | depends on PCA9551_LED | |
305 | default 0x60 | |
306 | help | |
307 | The I2C address of the PCA9551 LED controller. | |
f9917454 | 308 | |
c3600e1f PD |
309 | config STM32MP_FUSE |
310 | bool "Enable STM32MP fuse wrapper providing the fuse API" | |
311 | depends on ARCH_STM32MP && MISC | |
312 | default y if CMD_FUSE | |
313 | help | |
314 | If you say Y here, you will get support for the fuse API (OTP) | |
315 | for STM32MP architecture. | |
316 | This API is needed for CMD_FUSE. | |
317 | ||
4e280b91 CK |
318 | config STM32_RCC |
319 | bool "Enable RCC driver for the STM32 SoC's family" | |
71f6354b | 320 | depends on (ARCH_STM32 || ARCH_STM32MP) && MISC |
4e280b91 CK |
321 | help |
322 | Enable the STM32 RCC driver. The RCC block (Reset and Clock Control | |
323 | block) is responsible of the management of the clock and reset | |
324 | generation. | |
325 | This driver is similar to an MFD driver in the Linux kernel. | |
326 | ||
bd3ee84a SW |
327 | config TEGRA_CAR |
328 | bool "Enable support for the Tegra CAR driver" | |
329 | depends on TEGRA_NO_BPMP | |
330 | help | |
331 | The Tegra CAR (Clock and Reset Controller) is a HW module that | |
332 | controls almost all clocks and resets in a Tegra SoC. | |
333 | ||
73dd5c4c SW |
334 | config TEGRA186_BPMP |
335 | bool "Enable support for the Tegra186 BPMP driver" | |
336 | depends on TEGRA186 | |
337 | help | |
338 | The Tegra BPMP (Boot and Power Management Processor) is a separate | |
339 | auxiliary CPU embedded into Tegra to perform power management work, | |
340 | and controls related features such as clocks, resets, power domains, | |
341 | PMIC I2C bus, etc. This driver provides the core low-level | |
342 | communication path by which feature-specific drivers (such as clock) | |
343 | can make requests to the BPMP. This driver is similar to an MFD | |
344 | driver in the Linux kernel. | |
345 | ||
cc3fedb2 AF |
346 | config TWL4030_LED |
347 | bool "Enable TWL4030 LED controller" | |
348 | help | |
349 | Enable this to add support for the TWL4030 LED controller. | |
350 | ||
85056932 SR |
351 | config WINBOND_W83627 |
352 | bool "Enable Winbond Super I/O driver" | |
353 | help | |
354 | If you say Y here, you will get support for the Winbond | |
355 | W83627 Super I/O driver. This can be used to enable the | |
356 | legacy UART or other devices in the Winbond Super IO chips | |
357 | on X86 platforms. | |
358 | ||
fcf5c041 MY |
359 | config QFW |
360 | bool | |
361 | help | |
362 | Hidden option to enable QEMU fw_cfg interface. This will be selected by | |
18686590 | 363 | either CONFIG_CMD_QFW or CONFIG_GENERATE_ACPI_TABLE. |
fcf5c041 | 364 | |
d7e28918 | 365 | config I2C_EEPROM |
366 | bool "Enable driver for generic I2C-attached EEPROMs" | |
367 | depends on MISC | |
368 | help | |
369 | Enable a generic driver for EEPROMs attached via I2C. | |
e3f24d4f | 370 | |
d81a1de9 WY |
371 | |
372 | config SPL_I2C_EEPROM | |
373 | bool "Enable driver for generic I2C-attached EEPROMs for SPL" | |
374 | depends on MISC && SPL && SPL_DM | |
375 | help | |
376 | This option is an SPL-variant of the I2C_EEPROM option. | |
377 | See the help of I2C_EEPROM for details. | |
378 | ||
e3f24d4f AF |
379 | if I2C_EEPROM |
380 | ||
381 | config SYS_I2C_EEPROM_ADDR | |
382 | hex "Chip address of the EEPROM device" | |
383 | default 0 | |
384 | ||
385 | config SYS_I2C_EEPROM_BUS | |
386 | int "I2C bus of the EEPROM device." | |
387 | default 0 | |
388 | ||
389 | config SYS_EEPROM_SIZE | |
390 | int "Size in bytes of the EEPROM device" | |
391 | default 256 | |
392 | ||
393 | config SYS_EEPROM_PAGE_WRITE_BITS | |
394 | int "Number of bits used to address bytes in a single page" | |
395 | default 0 | |
396 | help | |
397 | The EEPROM page size is 2^SYS_EEPROM_PAGE_WRITE_BITS. | |
398 | A 64 byte page, for example would require six bits. | |
399 | ||
400 | config SYS_EEPROM_PAGE_WRITE_DELAY_MS | |
401 | int "Number of milliseconds to delay between page writes" | |
402 | default 0 | |
403 | ||
404 | config SYS_I2C_EEPROM_ADDR_LEN | |
405 | int "Length in bytes of the EEPROM memory array address" | |
406 | default 1 | |
407 | help | |
408 | Note: This is NOT the chip address length! | |
409 | ||
410 | config SYS_I2C_EEPROM_ADDR_OVERFLOW | |
411 | hex "EEPROM Address Overflow" | |
412 | default 0 | |
413 | help | |
414 | EEPROM chips that implement "address overflow" are ones | |
415 | like Catalyst 24WC04/08/16 which has 9/10/11 bits of | |
416 | address and the extra bits end up in the "chip address" bit | |
417 | slots. This makes a 24WC08 (1Kbyte) chip look like four 256 | |
418 | byte chips. | |
419 | ||
420 | endif | |
421 | ||
86da8c12 MS |
422 | config GDSYS_RXAUI_CTRL |
423 | bool "Enable gdsys RXAUI control driver" | |
424 | depends on MISC | |
425 | help | |
426 | Support gdsys FPGA's RXAUI control. | |
7e86242b MS |
427 | |
428 | config GDSYS_IOEP | |
429 | bool "Enable gdsys IOEP driver" | |
430 | depends on MISC | |
431 | help | |
432 | Support gdsys FPGA's IO endpoint driver. | |
d2166319 MS |
433 | |
434 | config MPC83XX_SERDES | |
435 | bool "Enable MPC83xx serdes driver" | |
436 | depends on MISC | |
437 | help | |
438 | Support for serdes found on MPC83xx SoCs. | |
439 | ||
62030004 TFC |
440 | config FS_LOADER |
441 | bool "Enable loader driver for file system" | |
442 | help | |
443 | This is file system generic loader which can be used to load | |
444 | the file image from the storage into target such as memory. | |
445 | ||
446 | The consumer driver would then use this loader to program whatever, | |
447 | ie. the FPGA device. | |
448 | ||
c0a2b086 MS |
449 | config GDSYS_SOC |
450 | bool "Enable gdsys SOC driver" | |
451 | depends on MISC | |
452 | help | |
453 | Support for gdsys IHS SOC, a simple bus associated with each gdsys | |
454 | IHS (Integrated Hardware Systems) FPGA, which holds all devices whose | |
455 | register maps are contained within the FPGA's register map. | |
456 | ||
ab88bd2b MS |
457 | config IHS_FPGA |
458 | bool "Enable IHS FPGA driver" | |
459 | depends on MISC | |
460 | help | |
461 | Support IHS (Integrated Hardware Systems) FPGA, the main FPGAs on | |
462 | gdsys devices, which supply the majority of the functionality offered | |
463 | by the devices. This driver supports both CON and CPU variants of the | |
464 | devices, depending on the device tree entry. | |
344eb6d5 TK |
465 | config ESM_K3 |
466 | bool "Enable K3 ESM driver" | |
467 | depends on ARCH_K3 | |
468 | help | |
469 | Support ESM (Error Signaling Module) on TI K3 SoCs. | |
ab88bd2b | 470 | |
f8164958 EH |
471 | config MICROCHIP_FLEXCOM |
472 | bool "Enable Microchip Flexcom driver" | |
473 | depends on MISC | |
474 | help | |
475 | The Atmel Flexcom is just a wrapper which embeds a SPI controller, | |
476 | an I2C controller and an USART. | |
477 | Only one function can be used at a time and is chosen at boot time | |
478 | according to the device tree. | |
479 | ||
9d233b4e TK |
480 | config K3_AVS0 |
481 | depends on ARCH_K3 && SPL_DM_REGULATOR | |
482 | bool "AVS class 0 support for K3 devices" | |
483 | help | |
484 | K3 devices have the optimized voltage values for the main voltage | |
485 | domains stored in efuse within the VTM IP. This driver reads the | |
486 | optimized voltage from the efuse, so that it can be programmed | |
487 | to the PMIC on board. | |
488 | ||
3b36b38f TK |
489 | config ESM_PMIC |
490 | bool "Enable PMIC ESM driver" | |
491 | depends on DM_PMIC | |
492 | help | |
493 | Support ESM (Error Signal Monitor) on PMIC devices. ESM is used | |
494 | typically to reboot the board in error condition. | |
495 | ||
0b11dbf7 | 496 | endmenu |