572 lines
14 KiB
Plaintext
572 lines
14 KiB
Plaintext
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
#
|
|
|
|
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.
|
|
|
|
This selection disables the poll() interface as well as interfaces
|
|
the derive from poll() such as select().
|
|
|
|
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
|
|
|
|
source drivers/loop/Kconfig
|
|
|
|
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 28-bit extended ID. Default Standard 11-bit
|
|
IDs.
|
|
|
|
config CAN_FD
|
|
bool "CAN FD"
|
|
default n
|
|
---help---
|
|
Enables support for the CAN_FD mode.
|
|
|
|
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_TXREADY
|
|
bool "can_txready interface"
|
|
default n
|
|
select SCHED_WORKQUEUE
|
|
---help---
|
|
This selection enables the can_txready() interface. This interface
|
|
is needed only for CAN hardware that supports queing of outgoing
|
|
messages in a H/W FIFO.
|
|
|
|
The CAN upper half driver also supports a queue of output messages
|
|
in a S/W FIFO. Messages are added to that queue when when
|
|
can_write() is called and removed from the queue in can_txdone()
|
|
when each TX message is complete.
|
|
|
|
After each message is added to the S/W FIFO, the CAN upper half
|
|
driver will attempt to send the message by calling into the lower
|
|
half driver. That send will not be performed if the lower half
|
|
driver is busy, i.e., if dev_txready() returns false. In that
|
|
case, the number of messages in the S/W FIFO can grow. If the
|
|
S/W FIFO becomes full, then can_write() will wait for space in
|
|
the S/W FIFO.
|
|
|
|
If the CAN hardware does not support a H/W FIFO then busy means
|
|
that the hardware is actively sending the message and is
|
|
guaranteed to become non busy (i.e, dev_txready()) when the
|
|
send transfer completes and can_txdone() is called. So the call
|
|
to can_txdone() means that the transfer has completed and also
|
|
that the hardware is ready to accept another transfer.
|
|
|
|
If the CAN hardware supports a H/W FIFO, can_txdone() is not
|
|
called when the tranfer is complete, but rather when the
|
|
transfer is queued in the H/W FIFO. When the H/W FIFO becomes
|
|
full, then dev_txready() will report false and the number of
|
|
queued messages in the S/W FIFO will grow.
|
|
|
|
There is no mechanism in this case to inform the upper half
|
|
driver when the hardware is again available, when there is
|
|
again space in the H/W FIFO. can_txdone() will not be called
|
|
again. If the S/W FIFO becomes full, then the upper half
|
|
driver will wait for space to become available, but there is
|
|
no event to awaken it and the driver will hang.
|
|
|
|
Enabling this feature adds support for the can_txready()
|
|
interface. This function is called from the lower half
|
|
driver's CAN interrupt handler each time a TX transfer
|
|
completes. This is a sure indication that the H/W FIFO is
|
|
no longer full. can_txready() will then awaken the
|
|
can_write() logic and the hang condition is avoided.
|
|
|
|
choice
|
|
prompt "TX Ready Work Queue"
|
|
default CAN_TXREADY_HIPRI
|
|
depends on CAN_TXREADY
|
|
|
|
config CAN_TXREADY_LOPRI
|
|
bool "Low-priority work queue"
|
|
select SCHED_LPWORK
|
|
|
|
config CAN_TXREADY_HIPRI
|
|
bool "High-priority work queue"
|
|
select SCHED_HPWORK
|
|
|
|
endchoice # TX Ready Work Queue
|
|
|
|
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
|
|
|
|
config ARCH_HAVE_PWM_MULTICHAN
|
|
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.
|
|
|
|
config PWM_MULTICHAN
|
|
bool "PWM Multiple Output Channel Support"
|
|
default n
|
|
depends on ARCH_HAVE_PWM_MULTICHAN
|
|
depends on !PWM_PULSECOUNT
|
|
---help---
|
|
Enables support for multiple output channels per timer.
|
|
|
|
if PWM_MULTICHAN
|
|
|
|
config PWM_NCHANNELS
|
|
int "Number of Output Channels Per Timer"
|
|
default 1
|
|
range 1 4
|
|
---help---
|
|
Specifies the number of output channels per timer. Each timer
|
|
may support fewer output channels than this value.
|
|
|
|
endif # PWM_MULTICHAN
|
|
|
|
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
|
|
|
|
source drivers/timers/Kconfig
|
|
|
|
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 IOEXPANDER
|
|
bool "IO Expander Support"
|
|
default n
|
|
---help---
|
|
This directory holds implementations of IO expander drivers.
|
|
See include/nuttx/ioexpander/ioexpander.h for registration information.
|
|
|
|
if IOEXPANDER
|
|
source drivers/ioexpander/Kconfig
|
|
endif # IOEXPANDER
|
|
|
|
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
|
|
|
|
source drivers/leds/Kconfig
|
|
|
|
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
|