summaryrefslogtreecommitdiff
path: root/nuttx/drivers/Kconfig
blob: 34ea89a13986662adbcd40161f97000668d3e9b3 (plain) (blame)
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
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
#
# For a description of the syntax of this configuration file,
# see misc/tools/kconfig-language.txt.
#

config DISABLE_POLL
	bool "Disable driver poll interfaces"
	default n
	---help---
		The sizes of drivers can be reduced if the poll() method is not
		supported.  If you do not use poll() or select(), then you can
		select DISABLE_POLL to reduce the code footprint by a small amount.

config DEV_NULL
	bool "Enable /dev/null"
	default y

config DEV_ZERO
	bool "Enable /dev/zero"
	default n

config ARCH_HAVE_RNG
	bool

config DEV_RANDOM
	bool "Enable /dev/random"
	default n
	depends on ARCH_HAVE_RNG

config LOOP
	bool "Enable loop device"
	default n
	---help---
		Supports the standard loop device that can be used to export a
		file (or character device) as a block device.  See losetup() and
		loteardown() in include/nuttx/fs/fs.h.

menu "Buffering"

config DRVR_WRITEBUFFER
	bool "Enable write buffer support"
	default n
	---help---
		Enable generic write buffering support that can be used by a variety
		of drivers.

if DRVR_WRITEBUFFER

config DRVR_WRDELAY
	int "Write flush delay"
	default 350
	---help---
		If there is no write activity for this configured amount of time,
		then the contents will be automatically flushed to the media.  This
		reduces the likelihood that data will be stuck in the write buffer
		at the time of power down.

endif # DRVR_WRITEBUFFER

config DRVR_READAHEAD
	bool "Enable read-ahead buffer support"
	default n
	---help---
		Enable generic read-ahead buffering support that can be used by a
		variety of drivers.

if DRVR_WRITEBUFFER || DRVR_READAHEAD

config DRVR_READBYTES
	bool "Support byte read method"
	default y if MTD_BYTE_WRITE
	default n if !MTD_BYTE_WRITE

config DRVR_REMOVABLE
	bool "Support removable media"
	default n

config DRVR_INVALIDATE
	bool "Support cache invalidation"
	default n

endif # DRVR_WRITEBUFFER || DRVR_READAHEAD

endmenu # Buffering

config RAMDISK
	bool "RAM Disk Support"
	default n
	---help---
		Can be used to set up a block of memory or (read-only) FLASH as
		a block driver that can be mounted as a files system.  See
		include/nuttx/fs/ramdisk.h.

menuconfig CAN
	bool "CAN Driver Support"
	default n
	---help---
		This selection enables building of the "upper-half" CAN driver.
		See include/nuttx/can.h for further CAN driver information.

if CAN
config CAN_EXTID
	bool "CAN extended IDs"
	default n
	---help---
		Enables support for the 29-bit extended ID.  Default Standard 11-bit
		IDs.

config CAN_FIFOSIZE
	int "CAN driver I/O buffer size"
	default 8
	---help---
		The size of the circular buffer of CAN messages. Default: 8

config CAN_NPENDINGRTR
	int "Number of pending RTRs"
	default 4
	---help---
		The size of the list of pending RTR requests. Default: 4

config CAN_LOOPBACK
	bool "CAN loopback mode"
	default n
	---help---
		A CAN driver may or may not support a loopback mode for testing. If the
		driver does support loopback mode, the setting will enable it. (If the
		driver does not, this setting will have no effect).

endif # CAN

config ARCH_HAVE_PWM_PULSECOUNT
	bool
	default n

menuconfig PWM
	bool "PWM Driver Support"
	default n
	---help---
		This selection enables building of the "upper-half" PWM driver.
		See include/nuttx/pwm.h for further PWM driver information.

if PWM
config PWM_PULSECOUNT
	bool "PWM Pulse Count Support"
	default n
	depends on ARCH_HAVE_PWM_PULSECOUNT
	---help---
		Some hardware will support generation of a fixed number of pulses.
		This might be used, for example to support a stepper motor.  If the
		hardware will support a fixed pulse count, then this configuration
		should be set to enable the capability.

endif # PWM

config ARCH_HAVE_I2CRESET
	bool
	default n

menuconfig I2C
	bool "I2C Driver Support"
	default n
	---help---
		This selection enables building of the "upper-half" I2C driver.
		See include/nuttx/i2c.h for further I2C driver information.

if I2C

config I2C_SLAVE
	bool "I2C Slave"
	default n

config I2C_TRANSFER
	bool "Support the I2C transfer() method"
	default n

config I2C_WRITEREAD
	bool "Support the I2C writeread() method"
	default n

config I2C_POLLED
	bool "Polled I2C (no interrupts)"
	default n

config I2C_TRACE
	bool "Enable I2C trace debug"
	default n

config I2C_NTRACE
	int "Number of I2C trace records"
	default 32
	depends on I2C_TRACE

config I2C_RESET
	bool "Support up_i2creset"
	default n
	depends on ARCH_HAVE_I2CRESET

endif # I2C

menuconfig SPI
	bool "SPI Driver Support"
	default n
	---help---
		This selection enables selection of common SPI options.  This option
		should be enabled by all platforms that support SPI interfaces.
		See include/nuttx/spi/spi.h for further SPI driver information.

if SPI
source drivers/spi/Kconfig
endif

menuconfig I2S
	bool "I2S Driver Support"
	default n
	---help---
		This selection enables selection of common I2S options.  This option
		should be enabled by all platforms that support I2S interfaces.
		See include/nuttx/audio/i2s.h for further I2S driver information.

if I2S
endif # I2S

menuconfig RTC
	bool "RTC Driver Support"
	default n
	---help---
		This selection enables configuration of a real time clock (RTCdriver.
		See include/nuttx/rtc.h for further watchdog timer driver information.
		Most RTC drivers are MCU specific and may require other specific
		settings.

if RTC

config RTC_DATETIME
	bool "Date/Time RTC Support"
	default n
	---help---
		There are two general types of RTC:  (1) A simple battery backed
		counter that keeps the time when power is down, and (2) a full
		date / time RTC the provides the date and time information, often in
		BCD format.  If RTC_DATETIME is selected, it specifies this second kind
		of RTC. In this case, the RTC is used to "seed" the normal NuttX timer
		and the NuttX system timer provides for higher resolution time.

if !RTC_DATETIME

config RTC_HIRES
	bool "Hi-Res RTC Support"
	default n
	---help---
		If RTC_DATETIME not selected, then the simple, battery backed counter
		is used.  There are two different implementations of such simple
		counters based on the time resolution of the counter: The typical RTC
		keeps time to resolution of 1 second, usually supporting a 32-bit
		time_t value.  In this case, the RTC is used to "seed" the normal NuttX
		timer and the NuttX timer provides for higherresoution time.

		If RTC_HIRES is enabled in the NuttX configuration, then the RTC
		provides higher resolution time and completely replaces the system
		timer for purpose of date and time.

config RTC_FREQUENCY
	int "Hi-Res RTC frequency"
	default 1
	depends on RTC_HIRES
	---help---
		If RTC_HIRES is defined, then the frequency of the high resolution RTC
		must be provided.  If RTC_HIRES is not defined, RTC_FREQUENCY is
		assumed to be one Hz.

endif # !RTC_DATETIME

config RTC_ALARM
	bool "RTC Alarm Support"
	default n
	---help---
		Enable if the RTC hardware supports setting of an alarm.  A callback
		function will be executed when the alarm goes off.

endif # RTC

menuconfig WATCHDOG
	bool "Watchdog Timer Support"
	default n
	---help---
		This selection enables building of the "upper-half" watchdog timer
		driver. See include/nuttx/watchdog.h for further watchdog timer driver
		information.

if WATCHDOG

config WATCHDOG_DEVPATH
	string "Watchdog Device Path"
	default "/dev/watchdog0"

endif # WATCHDOG

menuconfig TIMER
	bool "Timer Support"
	default n
	---help---
		This selection enables building of the "upper-half" timer
		driver. See include/nuttx/timer.h for further timer driver
		information.

menuconfig ANALOG
	bool "Analog Device(ADC/DAC) Support"
	default n
	---help---
		This directory holds implementations of analog device drivers.
		This includes drivers for Analog to Digital Conversion (ADC) as
		well as drivers for Digital to Analog Conversion (DAC).
		See include/nuttx/analog/*.h for registration information.

if ANALOG
source drivers/analog/Kconfig
endif # ANALOG

menuconfig AUDIO_DEVICES
	bool "Audio Device Support"
	default n
	---help---
		Enable support for audio device drivers.  This includes drivers for
		MP3, WMA and Ogg Vorbis encoding, decoding, as well as drivers for
		interfacing with external DSP chips to perform custom audio functions.

		NOTE: All of these drivers depend on support from the audio subsystem
		enabled with the AUDIO selection.

if AUDIO_DEVICES
source drivers/audio/Kconfig
endif # AUDIO_DEVICES

menuconfig VIDEO_DEVICES
	bool "Video Device Support"
	default n
	---help---
		Enable support for video device drivers.

if VIDEO_DEVICES
source drivers/video/Kconfig
endif # VIDEO_DEVICES

menuconfig BCH
	bool "Block-to-Character (BCH) Support"
	default n
	---help---
		Contains logic that may be used to convert a block driver into
		a character driver.  This is the complementary conversion as that
		performed by loop.c.  See include/nuttx/fs/fs.h for registration
		information.

if BCH
source drivers/bch/Kconfig
endif # BCH

menuconfig INPUT
	bool "Input Device Support"
	default n
	---help---
		This directory holds implementations of input device drivers.
		This includes such things as touchscreen and keypad drivers.
		See include/nuttx/input/*.h for registration information.

if INPUT
source drivers/input/Kconfig
endif # INPUT

menuconfig LCD
	bool "LCD Driver Support"
	default n
	select NX_LCDDRIVER
	---help---
		Drivers for parallel and serial LCD and OLED type devices.  These
		drivers support interfaces as defined in include/nuttx/lcd/lcd.h

		This selection is necessary to enable support for LCD drivers in
		drivers/lcd as well as for board-specific LCD drivers in the configs/
		subdirectories.

if LCD
source drivers/lcd/Kconfig
endif # LCD

menuconfig MMCSD
	bool "MMC/SD Driver Support"
	default n
	---help---
		Support for MMC/SD block drivers.  MMC/SD block drivers based on
		SPI and SDIO/MCI interfaces are supported.  See include/nuttx/mmcsd.h
		and include/nuttx/sdio.h for further information.

if MMCSD
source drivers/mmcsd/Kconfig
endif # MMCSD

menuconfig MTD
	bool "Memory Technology Device (MTD) Support"
	default n
	---help---
		Memory Technology Device (MTD) drivers.  Some simple drivers for
		memory technologies like FLASH, EEPROM, NVRAM, etc.  See
		include/nuttx/mtd/mtd.h

		(Note: This is a simple memory interface and should not be
		confused with the "real" MTD developed at infradead.org.  This
		logic is unrelated; I just used the name MTD because I am not
		aware of any other common way to refer to this class of devices).

if MTD
source drivers/mtd/Kconfig
endif # MTD

menuconfig EEPROM
	bool "EEPROM support"
	default n
	---help---
		This directory holds implementations of EEPROM drivers.

if EEPROM
source drivers/eeprom/Kconfig
endif

menuconfig NETDEVICES
	bool "Network Device/PHY Support"
	default n if !ARCH_HAVE_PHY
	default y if ARCH_HAVE_PHY
	depends on NET
	---help---
		Network interface driver and PHY selections.  This options enables
		selection of drivers for external Ethernet MAC chips.  The majority
		of MCUs, however, have built-in, internal Ethernet MAC peripherals
		and that Ethernet support is selected in the MCU-specific
		configuration menus.

		Most Ethernet MAC drivers, whether internal or external, will
		require configuration of an external PHY device.  That external PHY
		device is also selected via this menu.

if NETDEVICES
source drivers/net/Kconfig
endif # NETDEVICES

menuconfig PIPES
	bool "FIFO and named pipe drivers"
	default n
	---help---
		FIFO and named pipe drivers.  Standard interfaces are declared
		in include/unistd.h

if PIPES
source drivers/pipes/Kconfig
endif # PIPES

config PM
	bool "Power management (PM) driver interfaces"
	default n
	---help---
		Power management (PM) driver interfaces.  These interfaces are used
		to manage power usage of a platform by monitoring driver activity
		and by placing drivers into reduce power usage modes when the
		drivers are not active.

menuconfig POWER
	bool "Power Management Support"
	default n
	---help---
		Enable building of power-related devices (battery monitors, chargers,
		etc).

if POWER
source drivers/power/Kconfig
endif # POWER

menuconfig SENSORS
	bool "Sensor Device Support"
	default n
	---help---
		Drivers for various sensors

if SENSORS
source drivers/sensors/Kconfig
endif # SENSORS

menuconfig SERCOMM_CONSOLE
	bool "Osmocom-bb Sercomm Driver Support"
	default n
	---help---
		Sercomm is the transport used by osmocom-bb that runs on top of serial.
		See http://bb.osmocom.org/trac/wiki/nuttx-bb/run for detailed the usage
		of nuttx with sercomm.

		drivers/sercomm is only built if SERCOMM_CONSOLE in the NuttX
		configuration file.  If you attempt to build this driver without
		osmocom-bb, you will get compilation errors because of header files
		that are needed from the osmocom-bb.

if SERCOMM_CONSOLE
source drivers/sercomm/Kconfig
endif # SERCOMM_CONSOLE

menuconfig SERIAL
	bool "Serial Driver Support"
	default y
	---help---
		Front-end character drivers for chip-specific UARTs.  This provide
		some TTY-like functionality and are commonly used (but not required
		for) the NuttX system console.  See also include/nuttx/serial/serial.h

if SERIAL
source drivers/serial/Kconfig
endif # SERIAL

menuconfig USBDEV
	bool "USB Device Driver Support"
	default n
	---help---
		USB device drivers.  See also include/nuttx/usb/usbdev.h

if USBDEV
source drivers/usbdev/Kconfig
endif # USBDEV

menuconfig USBHOST
	bool "USB Host Driver Support"
	default n
	---help---
		USB host drivers.  See also include/nuttx/usb/usbhost.h

if USBHOST
source drivers/usbhost/Kconfig
endif # USBHOST

menuconfig WIRELESS
	bool "Wireless Device Support"
	default n
	---help---
		Drivers for various wireless devices.

if WIRELESS
source drivers/wireless/Kconfig
endif # WIRELESS

comment "System Logging Device Options"

source drivers/syslog/Kconfig