Fixes an issue in which "SDHC" had been incorrectly expanded to "Secure Digital High Capacity" instead of "SD Host Controller". Since this page is listed under "Peripherals" and since the SD Host Controller API is not supposed to be used by applications, the more generic and recognizable title "SD card interface" is used, and users are pointed to pages relevant to them (disk access API and SD card subsystem). Signed-off-by: Egill Sigurdur <egill@egill.xyz>
52 lines
1.8 KiB
ReStructuredText
52 lines
1.8 KiB
ReStructuredText
.. _sdhc_api:
|
|
|
|
Secure Digital (SD card) interface
|
|
###################################
|
|
|
|
Zephyr can communicate with an attached SD card either using a system's native
|
|
SD card interface or over SPI (Serial Peripheral Interface). Some devices can
|
|
also communicate with MMC (MultiMediaCard) devices.
|
|
|
|
Applications can use Zephyr's :ref:`the disk access API <disk_access_api>`
|
|
to use SD cards as storage devices, or Zephyr's SD card subsystem to
|
|
directly read from and write to a card.
|
|
|
|
SD Host Controller (SDHC)
|
|
*************************
|
|
|
|
An SD host controller (SDHC) is a device capable of sending commands to an
|
|
SD card. These commands can be sent using a system's native SD card interface,
|
|
or over SPI.
|
|
|
|
Applications should generally not use the SD host controller API directly,
|
|
instead they should use Zephyr's SD card subsystem.
|
|
|
|
Requests
|
|
========
|
|
|
|
The core of the SD host controller (SDHC) API is the :c:func:`sdhc_request` API.
|
|
Requests contain a :c:struct:`sdhc_command` command structure, and an optional
|
|
:c:struct:`sdhc_data` data structure. The caller may check the return code,
|
|
or the ``response`` field of the SD command structure to determine if the
|
|
SDHC request succeeded. The data structure allows the caller to specify a
|
|
number of blocks to transfer, and a buffer location to read or write them from.
|
|
Whether the provided buffer is used for sending or reading data depends on the
|
|
command opcode provided.
|
|
|
|
Host Controller I/O
|
|
===================
|
|
|
|
The :c:func:`sdhc_set_io` API allows the user to change I/O settings of the SD
|
|
host controller, such as clock frequency, I/O voltage, and card power. Not all
|
|
controllers will support applying all I/O settings. For example, SPI mode
|
|
controllers typically cannot toggle power to the SD card.
|
|
|
|
Related configuration options:
|
|
|
|
* :kconfig:option:`CONFIG_SDHC`
|
|
|
|
API Reference
|
|
*************
|
|
|
|
.. doxygengroup:: sdhc_interface
|