doc: Make SD card peripheral docs more generic, fix one acronym

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>
This commit is contained in:
Egill Sigurdur 2025-02-04 11:25:18 +00:00 committed by Benjamin Cabé
commit 6d710a21cb

View file

@ -1,30 +1,31 @@
.. _sdhc_api: .. _sdhc_api:
Secure Digital (SD card) interface
Secure Digital High Capacity (SDHC)
################################### ###################################
The SDHC api offers a generic interface for interacting with an SD host Zephyr can communicate with an attached SD card either using a system's native
controller device. It is used by the SD subsystem, and is not intended to be SD card interface or over SPI (Serial Peripheral Interface). Some devices can
directly used by the application also communicate with MMC (MultiMediaCard) devices.
Basic Operation 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 SD Host Controller (SDHC)
================== *************************
An SD host controller is a device capable of sending SD commands to an attached An SD host controller (SDHC) is a device capable of sending commands to an
SD card. These commands can be sent using the native SD protocol, or over SPI. SD card. These commands can be sent using a system's native SD card interface,
Some SD host controllers are also capable of communicating with MMC devices. or over SPI.
The SDHC api is designed to provide a generic way to send commands to and
interact with attached SD devices. Applications should generally not use the SD host controller API directly,
instead they should use Zephyr's SD card subsystem.
Requests Requests
======== ========
The core of the SDHC api is the :c:func:`sdhc_request` api. Requests contain a The core of the SD host controller (SDHC) API is the :c:func:`sdhc_request` API.
:c:struct:`sdhc_command` command structure, and an optional 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, :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 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 SDHC request succeeded. The data structure allows the caller to specify a
@ -35,7 +36,7 @@ command opcode provided.
Host Controller I/O Host Controller I/O
=================== ===================
The :c:func:`sdhc_set_io` api allows the user to change I/O settings of the SD 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 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 will support applying all I/O settings. For example, SPI mode
controllers typically cannot toggle power to the SD card. controllers typically cannot toggle power to the SD card.