aboutsummaryrefslogtreecommitdiff
path: root/nuttx/drivers/README.txt
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/drivers/README.txt')
-rw-r--r--nuttx/drivers/README.txt145
1 files changed, 145 insertions, 0 deletions
diff --git a/nuttx/drivers/README.txt b/nuttx/drivers/README.txt
new file mode 100644
index 000000000..e27e8c583
--- /dev/null
+++ b/nuttx/drivers/README.txt
@@ -0,0 +1,145 @@
+README
+^^^^^^
+
+This directory contains various device drivers -- both block and
+character drivers as well as other more specialized drivers.
+
+Contents:
+ - Files in this directory
+ - Subdirectories of this directory
+ - Skeleton files
+
+Files in this directory
+^^^^^^^^^^^^^^^^^^^^^^^
+
+can.c
+ This is a CAN driver. See include/nuttx/can.h for usage information.
+
+dev_null.c and dev_zero.c
+ These files provide the standard /dev/null and /dev/zero devices.
+ See include/nuttx/fs/fs.h for functions that should be called if you
+ want to register these devices (devnull_register() and
+ devzero_register()).
+
+loop.c
+ 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.
+
+pwm.c
+ Provides the "upper half" of a pulse width modulation (PWM) driver.
+ The "lower half" of the PWM driver is provided by device-specific
+ logic. See include/nuttx/pwm.h for usage information.
+
+ramdisk.c
+ 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/ramdisk.h.
+
+ramlog.c
+ This is a driver that was intended to support debugging output,
+ aka syslogging, when the normal serial output is not available.
+ For example, if you are using a telnet or USB serial console,
+ the debug output will get lost.
+
+ This driver is similar to a pipe in that it saves the debugging
+ output in a FIFO in RAM. It differs from a pipe in numerous
+ details as needed to support logging.
+
+ This driver is built when CONFIG_RAMLOG is defined in the Nuttx
+ configuration.
+
+rwbuffer.c
+ A facility that can be use by any block driver in-order to add
+ writing buffering and read-ahead buffering.
+
+Subdirectories of this directory:
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+analog/
+ 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.
+
+bch/
+ 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.
+
+input/
+ 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.
+
+lcd/
+ Drivers for parallel and serial LCD and OLED type devices. These
+ drivers support interfaces as defined in include/nuttx/lcd/lcd.h
+
+mmcsd/
+ 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.
+
+mtd/
+ Memory Technology Device (MTD) drivers. Some simple drivers for
+ memory technologies like FLASH, EEPROM, NVRAM, etc. See
+ include/nuttx/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).
+
+net/
+ Network interface drivers. See also include/nuttx/net/net.h
+
+pipes/
+ FIFO and named pipe drivers. Standard interfaces are declared
+ in include/unistd.h
+
+power/
+ 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.
+
+sensors/
+ Drivers for various sensors
+
+sercomm/
+ 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 CONFIG_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.
+
+serial/
+ 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
+
+usbdev/
+ USB device drivers. See also include/nuttx/usb/usbdev.h
+
+usbhost/
+ USB host drivers. See also include/nuttx/usb/usbhost.h
+
+wireless/
+ Drivers for various wireless devices.
+
+Skeleton Files
+^^^^^^^^^^^^^^
+
+Skeleton files a "empty" frameworks for NuttX drivers. They are provided to
+give you a good starting point if you want to create a new NuttX driver.
+The following skeleton files are available:
+
+ drivers/lcd/skeleton.c -- Skeleton LCD driver
+ drivers/mtd/skeleton.c -- Skeleton memory technology device drivers
+ drivers/net/skeleton.c -- Skeleton network/Ethernet drivers
+ drivers/usbhost/usbhost_skeleton.c -- Skeleton USB host class driver