incubator-nuttx/drivers
patacongo a9a3097a0e (1) Fix a critical memory leak in the TCP read-ahead buffering logic; Add an option to suppress SDIO multi-block transfers in order to work around a buggy SDIO driver
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4415 42af7a65-404d-4744-a932-0658087f49c3
2012-02-23 02:07:38 +00:00
..
analog Add Sure PIC32 NSH configuration 2011-12-22 22:13:44 +00:00
bch Bug fixes for BCH and TSC2007 drivers 2011-08-29 16:07:29 +00:00
input STM32 fixes for F4 32-bit timers 2012-01-13 02:49:10 +00:00
lcd Update to README files 2011-12-24 13:46:06 +00:00
mmcsd (1) Fix a critical memory leak in the TCP read-ahead buffering logic; Add an option to suppress SDIO multi-block transfers in order to work around a buggy SDIO driver 2012-02-23 02:07:38 +00:00
mtd PIC32 NSH configuration now builds without errors 2011-12-23 00:58:00 +00:00
net Finish STM32 Ethernet header file; Add ethernet driver skeleton 2011-12-08 18:02:38 +00:00
pipes Add initial CC1101 wireless logic from Uros 2011-05-16 15:09:39 +00:00
power Can't use 'class' as a field name! Backward conditional compilation in usbmsc.c 2012-01-31 14:15:36 +00:00
sensors Add QE support to STM32F4Discovery; add a test of the quadrature encoder driver 2012-02-15 17:51:30 +00:00
serial Add logic so that a RAM log can be used in place of a console device 2012-02-11 03:50:52 +00:00
usbdev Can't use 'class' as a field name! Backward conditional compilation in usbmsc.c 2012-01-31 14:15:36 +00:00
usbhost Massive name change USB STRG -> USB MSC 2012-01-25 20:17:59 +00:00
wireless Add support for multiplexed SDIO pins from Uros 2011-08-19 16:51:04 +00:00
Makefile Add a RAM-based logging device 2012-02-11 00:32:53 +00:00
README.txt Add a RAM-based logging device 2012-02-11 00:32:53 +00:00
can.c Add support for extended (29-bit) CAN IDs 2012-01-20 21:52:35 +00:00
dev_null.c Changing NuttX fixed size type names to C99 standard names -- things will be broken for awhile 2009-12-15 14:25:14 +00:00
dev_zero.c Changing NuttX fixed size type names to C99 standard names -- things will be broken for awhile 2009-12-15 14:25:14 +00:00
loop.c Fixes for kernel stub builds 2011-04-06 16:40:47 +00:00
pwm.c Fix the STM32 PWM driver pulse count logic 2012-01-11 18:44:12 +00:00
ramdisk.c Re-architect FAT data structures to support long file names 2011-07-13 13:30:38 +00:00
ramlog.c Various STM32 SDIO and DMA fixes (SDIO DMA still does not work) 2012-02-20 20:02:53 +00:00
rwbuffer.c Fixes for kernel stub builds 2011-04-06 16:40:47 +00:00

README.txt

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
	An unfinished CAN driver.

dev_null.c and dev_zero.c
	These files provide the standard /dev/null and /dev/zero devices.
 	See include/nuttx/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.h.

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.h for registration
	information.

analog/
	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.h

pipes/
	FIFO and named pipe drivers.  Standard interfaces are declared
	in include/unistd.h

pm/
    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

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.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