65a866fbe2
- MMC and SD Card driver - ported from imxrt_usdhc.c Squashed commit of the following: commit 46cbe18ad6a6e41ec2727d839f86f5670577878a Author: Adam Feuer <adam@starcat.io> Date: Wed Jul 15 10:28:02 2020 -0700 nxstyle change - Public Function Prototypes - instead of Public Functions commit 486b7b62e83a78ae15b114e34846900d8fef8248 Author: Adam Feuer <adam@starcat.io> Date: Wed Jul 15 10:06:51 2020 -0700 nxstyle changes commit 28280d585a40aac99fd0e538295828ea013739b7 Author: Adam Feuer <adam@starcat.io> Date: Wed Jul 15 10:06:29 2020 -0700 removing unused enum value commit 7da6ba437e7e023d348e63c497732fea985a2d1b Author: Adam Feuer <adam@starcat.io> Date: Tue Jul 14 21:17:49 2020 -0700 CI build error fixes - unused vars - incorrect method calls commit 145a73449b9d1eaed8a6cbf47cb53fb5b7a551f6 Author: Adam Feuer <adam@starcat.io> Date: Tue Jul 14 17:29:56 2020 -0700 adding #defines to prevent unused var warning commit 47ed2c08235816caded26a019cf33899daed1621 Author: Adam Feuer <adam@starcat.io> Date: Tue Jul 14 16:29:07 2020 -0700 removing obsolete config values commit b43f129c03a8bb8dc57ae6984d124ce9e9306196 Author: Adam Feuer <adam@starcat.io> Date: Tue Jul 14 09:58:42 2020 -0700 removed obsolete config setting commit 23e3af846ac24cac928442c7af86c5d0ef183ad3 Merge: 8b47330fe56f6d61eec4
Author: Adam Feuer <adam@starcat.io> Date: Tue Jul 14 09:53:12 2020 -0700 Merge remote-tracking branch 'upstream/master' into feature/sama5d27-sdmmc-support commit 8b47330fe5bb49bbd1991f2f3e2c69bdfb833d2c Author: Adam Feuer <adam@starcat.io> Date: Tue Jul 14 09:51:56 2020 -0700 replaced license headers with Apache License 2.0 commit 865e69b9a84d077ab9e05c2056dc7a515222c6c7 Author: Adam Feuer <adam@starcat.io> Date: Thu Jul 9 18:38:01 2020 -0700 SAMA5D2x SDMMC peripheral support (SD Card driver) - reading and writing at 25 MHz and 50Mhz - UHS_SDR50, UHS_DDR50, and UHS_SDR104 are supported - ported from imxrt_usdhc.c - only tested on SAMA5D27 Squashed commit of the following: commit e3122baef2feaeb32bb00798ae56310b2cc5c448 Author: Adam Feuer <adam@starcat.io> Date: Thu Jul 9 18:30:03 2020 -0700 added sdmmcnsh defconfig and basic docs commit 12a290d7465a0a006473ba67893bf891a7bcea83 Author: Adam Feuer <adam@starcat.io> Date: Thu Jul 9 17:50:06 2020 -0700 nxstyle changes commit 33409c0f63c328dc200150ba883327cadf0300b2 Author: Adam Feuer <adam@starcat.io> Date: Thu Jul 9 16:15:00 2020 -0700 add short delay to in recvshortcrc - to allow SDMMC to respond commit 3be7a7fb6f79900042d1fdbef72810f364ac5f62 Author: Adam Feuer <adam@adamfeuer.com> Date: Thu Jul 9 10:54:59 2020 -0700 added SDR50 and SDR104 SDMMC bus modes commit 2888408866548ca53e582ea1525178a7733617b4 Author: Adam Feuer <adam@adamfeuer.com> Date: Thu Jul 9 10:54:25 2020 -0700 comment formatting cleanup commit 06cf2c39193971155eaa6f9c89a39a88b53964a8 Author: Adam Feuer <adam@adamfeuer.com> Date: Thu Jul 9 10:34:01 2020 -0700 removed unneeded comment commit ac89b69231bdf19563754865fda93d4bbbb4488d Author: Adam Feuer <adam@adamfeuer.com> Date: Thu Jul 9 10:30:23 2020 -0700 code cleanup - removing custinfo() logging - remove duplicate #defines - move var declarations to the beginning of methods commit bcd4abec7935ee9023ab72edfb02685dbeee243c Author: Adam Feuer <adam@adamfeuer.com> Date: Wed Jul 8 16:34:31 2020 -0700 handle SDMA Boundary Pause interrupt (DMAINT) - SDMMC_INT_DINT - add to waitints - add handler to sam_interrupt commit e9da026c1270e999df520ee2c60487195799f58c Author: Adam Feuer <adam@adamfeuer.com> Date: Tue Jul 7 16:07:34 2020 -0700 Kconfig setting for SDMMC bus speed - 25 and 50 MHz - 50 MHz is the default commit 9edc636b7f18f981d653f85970c3af0b80801778 Author: Adam Feuer <adam@adamfeuer.com> Date: Mon Jul 6 21:55:51 2020 -0700 added HSEN bit change for high speed mode - above 26 MHz commit b8e91c95b0f7b2f8220f02b1eb42b6134e0660d0 Author: Adam Feuer <adam@adamfeuer.com> Date: Mon Jul 6 21:28:03 2020 -0700 added calloc to fix bug - not sure why this works. commit 1ceaf2f8487fe39d4d6fb21adecd57e4c4992e07 Author: Adam Feuer <adam@adamfeuer.com> Date: Mon Jul 6 21:25:47 2020 -0700 removing spurious typo characters commit 14ba51743bcca35686b07a76f5af17bcce078a5f Author: Adam Feuer <adam@adamfeuer.com> Date: Sat Jul 4 18:10:46 2020 -0700 nxstyle changes commit d8af26df47b7840117de0d3a44ec548b3a72bc2b Author: Adam Feuer <adam@adamfeuer.com> Date: Sat Jul 4 17:01:11 2020 -0700 nxstyle changes commit 0ae532bd62d02c5ac36aa2192f31fa1f7f1cde99 Author: Adam Feuer <adam@adamfeuer.com> Date: Sat Jul 4 16:37:17 2020 -0700 remove long lines in comments - nxstyle commit 3d025a84f8e9ddb7f7a4570504118d782dd5574c Author: Adam Feuer <adam@adamfeuer.com> Date: Sat Jul 4 16:36:52 2020 -0700 removed custinfo logging commit 366b5d9d241a42d693583679cb49aa7bf25615aa Author: Adam Feuer <adam@adamfeuer.com> Date: Sat Jul 4 16:35:08 2020 -0700 removed custinfo logging commit c74396e4a4943873c7de5b6ffee193787c39baef Author: Adam Feuer <adam@adamfeuer.com> Date: Sat Jul 4 16:34:36 2020 -0700 fixed typo commit 7f51e99d7f4c1e5e0bf71a84fd0b2467157fea59 Merge: c40f8c10392481b1bfd5
Author: Adam Feuer <adam@adamfeuer.com> Date: Sat Jul 4 15:33:06 2020 -0700 Merge remote-tracking branch 'upstream/master' into feature/sama5d27-sdmmc-support commit c40f8c10390ecefeb3a113046edd6740b07ab31b Author: Adam Feuer <adam@adamfeuer.com> Date: Thu Jul 2 22:08:20 2020 -0700 SDMMC support for SAMA5D27
192 lines
6.5 KiB
Plaintext
192 lines
6.5 KiB
Plaintext
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
|
|
^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
dev_null.c and dev_zero.c
|
|
These files provide the standard /dev/null and /dev/zero devices. See
|
|
include/nuttx/drivers/drivers.h for prototypes of functions that should
|
|
be called if you want to register these devices (devnull_register()
|
|
and devzero_register()).
|
|
|
|
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 file system. See
|
|
include/nuttx/drivers/ramdisk.h.
|
|
|
|
rwbuffer.c
|
|
A facility that can be used 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.
|
|
|
|
audio/
|
|
Audio device drivers. See include/nuttx/audio/audio.h for interface
|
|
definitions. See also the audio subsystem at nuttx/audio/.
|
|
|
|
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.
|
|
|
|
can/
|
|
This is the CAN drivers and logic support. See include/nuttx/can/can.h
|
|
for usage information.
|
|
|
|
contactless/
|
|
Contactless devices are related to wireless devices. They are not
|
|
communication devices with other similar peers, but couplers/interfaces
|
|
to contactless cards and tags.
|
|
|
|
crypto/
|
|
Contains crypto drivers and support logic, including the /dev/urandom
|
|
device.
|
|
|
|
eeprom/
|
|
An EEPROM is a form of Memory Technology Device (see drivers/mtd).
|
|
EEPROMs are non-volatile memory like FLASH, but differ in underlying
|
|
memory technology and differ in usage in many respects: They may not
|
|
be organized into blocks (at least from the standpoint of the user)
|
|
and it is not necessary to erase the EEPROM memory before re-writing
|
|
it. In addition, EEPROMs tend to be much smaller than FLASH parts,
|
|
usually only a few kilobytes vs megabytes for FLASH. EEPROM tends to
|
|
be used to retain a small amount of device configuration information;
|
|
FLASH tends to be used for program or massive data storage. For these
|
|
reasons, it may not be convenient to use the more complex MTD
|
|
interface but instead use the simple character interface provided by
|
|
the EEPROM drivers.
|
|
|
|
i2c/
|
|
I2C drivers and support logic. See include/nuttx/i2c/i2c_master.h
|
|
|
|
i2s/
|
|
I2S drivers and support logic. See include/nuttx/audio/i2s.h
|
|
|
|
input/
|
|
This directory holds implementations of human input device (HID)
|
|
drivers. This includes such things as mouse, touchscreen, joystick,
|
|
keyboard and keypad drivers. See include/nuttx/input/*.h for
|
|
registration information.
|
|
|
|
Note that USB HID devices are treated differently. These can be
|
|
found under usbdev/ or usbhost/.
|
|
|
|
lcd/
|
|
Drivers for parallel and serial LCD and OLED type devices. These
|
|
drivers support interfaces as defined in include/nuttx/lcd/lcd.h
|
|
|
|
leds/
|
|
Various LED-related drivers including discrete as well as PWM-
|
|
driven LEDs.
|
|
|
|
loop/
|
|
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.
|
|
|
|
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/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.
|
|
|
|
pwm/
|
|
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/timers/pwm.h for usage information.
|
|
|
|
sensors/
|
|
Drivers for various sensors. A sensor driver differs little from
|
|
other types of drivers other than they are use to provide measurements
|
|
of things in environment like temperature, orientation, acceleration,
|
|
altitude, direction, position, etc.
|
|
|
|
DACs might fit this definition of a sensor driver as well since they
|
|
measure and convert voltage levels. DACs, however, are retained in
|
|
the analog/ sub-directory.
|
|
|
|
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
|
|
|
|
spi/
|
|
SPI drivers and support logic. See include/nuttx/spi/spi.h
|
|
|
|
syslog/
|
|
System logging devices. See include/syslog.h and include/nuttx/syslog/syslog.h
|
|
|
|
timers/
|
|
Includes support for various timer devices including:
|
|
|
|
- An "upper half" for a generic timer driver. See
|
|
include/nuttx/timers/timer.h for more information.
|
|
|
|
- An "upper half" for a generic watchdog driver. See
|
|
include/nuttx/timers/watchdog.h for more information.
|
|
|
|
- RTC drivers
|
|
|
|
usbdev/
|
|
USB device drivers. See also include/nuttx/usb/usbdev.h
|
|
|
|
usbhost/
|
|
USB host drivers. See also include/nuttx/usb/usbhost.h
|
|
|
|
video/
|
|
Video-related drivers. See include/nuttx/video/.
|
|
|
|
wireless/
|
|
Drivers for various wireless devices.
|
|
|
|
Skeleton Files
|
|
^^^^^^^^^^^^^^
|
|
|
|
Skeleton files are "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
|