Synergy Software Package User's Manual

#include <r_sdmmc_api.h>

Data Fields

ssp_err_t(* open )(sdmmc_ctrl_t *const p_ctrl, sdmmc_cfg_t const *const p_cfg)
 
ssp_err_t(* close )(sdmmc_ctrl_t *const p_ctrl)
 
ssp_err_t(* read )(sdmmc_ctrl_t *const p_ctrl, uint8_t *const p_dest, uint32_t const start_sector, uint32_t const sector_count)
 
ssp_err_t(* write )(sdmmc_ctrl_t *const p_ctrl, uint8_t const *const p_source, uint32_t const start_sector, uint32_t const sector_count)
 
ssp_err_t(* control )(sdmmc_ctrl_t *const p_ctrl, ssp_command_t const command, void *p_data)
 
ssp_err_t(* readIo )(sdmmc_ctrl_t *const p_ctrl, uint8_t *const p_data, uint32_t const function, uint32_t const address)
 
ssp_err_t(* writeIo )(sdmmc_ctrl_t *const p_ctrl, uint8_t *const p_data, uint32_t const function, uint32_t const address, sdmmc_io_write_mode_t const read_after_write)
 
ssp_err_t(* readIoExt )(sdmmc_ctrl_t *const p_ctrl, uint8_t *const p_dest, uint32_t const function, uint32_t const address, uint32_t *const count, sdmmc_io_transfer_mode_t transfer_mode, sdmmc_io_address_mode_t address_mode)
 
ssp_err_t(* writeIoExt )(sdmmc_ctrl_t *const p_ctrl, uint8_t const *const p_source, uint32_t const function, uint32_t const address, uint32_t const count, sdmmc_io_transfer_mode_t transfer_mode, sdmmc_io_address_mode_t address_mode)
 
ssp_err_t(* IoIntEnable )(sdmmc_ctrl_t *const p_ctrl, bool enable)
 
ssp_err_t(* versionGet )(ssp_version_t *const p_version)
 
ssp_err_t(* infoGet )(sdmmc_ctrl_t *const p_ctrl, sdmmc_info_t *const p_info)
 
ssp_err_t(* erase )(sdmmc_ctrl_t *const p_ctrl, uint32_t const start_sector, uint32_t const sector_count)
 

Detailed Description

SD/MMC functions implemented at the HAL layer API.

Field Documentation

◆ close

ssp_err_t(* sdmmc_api_t::close) (sdmmc_ctrl_t *const p_ctrl)

Close open SD/MMC device.

Implemented as
R_SDMMC_Close()
Parameters
[in]p_ctrlPointer to an open SD/MMC instance control block.

◆ control

ssp_err_t(* sdmmc_api_t::control) (sdmmc_ctrl_t *const p_ctrl, ssp_command_t const command, void *p_data)

The Control function sends control commands to and receives info from the SD/MMC port.

Implemented as
R_SDMMC_Control()
Parameters
[in]p_ctrlPointer to an open SD/MMC instance control block.
[in]commandCommand to execute. The list of supported commands is below.
[in,out]p_dataPointer to data in or out. For each command, this data should be cast as follows:
  • SSP_COMMAND_GET_SECTOR_COUNT : [out] (uint32_t *) p_data
  • SSP_COMMAND_GET_SECTOR_SIZE : [out] (uint32_t *) p_data
  • SSP_COMMAND_GET_WRITE_PROTECTED : [out] (bool *) p_data
  • SSP_COMMAND_SET_BLOCK_SIZE : [in] (uint32_t *) p_data

◆ erase

ssp_err_t(* sdmmc_api_t::erase) (sdmmc_ctrl_t *const p_ctrl, uint32_t const start_sector, uint32_t const sector_count)

Erase SD/MMC sectors. The sector size for erase is fixed at 512 bytes. This API is not supported for SDIO devices.

Implemented as
R_SDMMC_Erase
Parameters
[in]p_ctrlPointer to an open SD/MMC instance control block.
[in]start_sectorFirst sector to erase. Must be a multiple of sdmmc_info_t::erase_sector_count.
[in]sector_countNumber of sectors to erase. Must be a multiple of sdmmc_info_t::erase_sector_count. All sectors must be in the range of sdmmc_info_t::sector_count.

◆ infoGet

ssp_err_t(* sdmmc_api_t::infoGet) (sdmmc_ctrl_t *const p_ctrl, sdmmc_info_t *const p_info)

Get SD/MMC device info.

Implemented as
R_SDMMC_InfoGet()
Parameters
[in]p_ctrlPointer to an open SD/MMC instance control block.
[out]p_infoPointer to return device information to.

◆ IoIntEnable

ssp_err_t(* sdmmc_api_t::IoIntEnable) (sdmmc_ctrl_t *const p_ctrl, bool enable)

Enables SDIO interrupt for SD/MMC instance. This API is not supported for SD or eMMC memory devices.

Implemented as
R_SDMMC_IoIntEnable
Parameters
[in]p_ctrlPointer to an open SD/MMC instance control block.
[in]enableInterrupt enable = true, interrupt disable = false.

◆ open

ssp_err_t(* sdmmc_api_t::open) (sdmmc_ctrl_t *const p_ctrl, sdmmc_cfg_t const *const p_cfg)

Open an SD/MMC device. If the device is a card, the card must be plugged in prior to calling this API. This API blocks until the device initialization procedure is complete.

Implemented as
R_SDMMC_Open()
Parameters
[in]p_ctrlPointer to SD/MMC instance control block.
[in]p_cfgPointer to SD/MMC instance configuration structure.

◆ read

ssp_err_t(* sdmmc_api_t::read) (sdmmc_ctrl_t *const p_ctrl, uint8_t *const p_dest, uint32_t const start_sector, uint32_t const sector_count)

Read data from an SD/MMC channel. This API is not supported for SDIO devices.

Implemented as
R_SDMMC_Read()
Parameters
[in]p_ctrlPointer to an open SD/MMC instance control block.
[out]p_destPointer to data buffer to read data to.
[in]start_sectorFirst sector address to read.
[in]sector_countNumber of sectors to read. All sectors must be in the range of sdmmc_info_t::sector_count.

◆ readIo

ssp_err_t(* sdmmc_api_t::readIo) (sdmmc_ctrl_t *const p_ctrl, uint8_t *const p_data, uint32_t const function, uint32_t const address)

Read one byte of I/O data from an SDIO device. This API is not supported for SD or eMMC memory devices.

Implemented as
R_SDMMC_ReadIo()
Parameters
[in]p_ctrlPointer to an open SD/MMC instance control block.
[out]p_dataPointer to location to store data byte.
[in]functionSDIO Function Number.
[in]addressSDIO register address.

◆ readIoExt

ssp_err_t(* sdmmc_api_t::readIoExt) (sdmmc_ctrl_t *const p_ctrl, uint8_t *const p_dest, uint32_t const function, uint32_t const address, uint32_t *const count, sdmmc_io_transfer_mode_t transfer_mode, sdmmc_io_address_mode_t address_mode)

Read multiple bytes or blocks of I/O data from an SDIO device. This API is not supported for SD or eMMC memory devices.

Implemented as
R_SDMMC_ReadIoExt()
Parameters
[in]p_ctrlPointer to an open SD/MMC instance control block.
[out]p_destPointer to data buffer to read data to.
[in]functionSDIO Function Number.
[in]addressSDIO register address.
[in]countNumber of bytes or blocks to read, maximum 512 bytes or 511 blocks.
[in]transfer_modeByte or block mode
[in]address_modeFixed or incrementing address mode

◆ versionGet

ssp_err_t(* sdmmc_api_t::versionGet) (ssp_version_t *const p_version)

Returns the version of the SD/MMC driver.

Implemented as
R_SDMMC_VersionGet()
Parameters
[out]p_versionPointer to return version information to.

◆ write

ssp_err_t(* sdmmc_api_t::write) (sdmmc_ctrl_t *const p_ctrl, uint8_t const *const p_source, uint32_t const start_sector, uint32_t const sector_count)

Write data to SD/MMC channel. This API is not supported for SDIO devices.

Implemented as
R_SDMMC_Write()
Parameters
[in]p_ctrlPointer to an open SD/MMC instance control block.
[in]p_sourcePointer to data buffer to write data from.
[in]start_sectorFirst sector address to write to.
[in]sector_countNumber of sectors to write. All sectors must be in the range of sdmmc_info_t::sector_count.

◆ writeIo

ssp_err_t(* sdmmc_api_t::writeIo) (sdmmc_ctrl_t *const p_ctrl, uint8_t *const p_data, uint32_t const function, uint32_t const address, sdmmc_io_write_mode_t const read_after_write)

Write one byte of I/O data to an SDIO device. This API is not supported for SD or eMMC memory devices.

Implemented as
R_SDMMC_WriteIo()
Parameters
[in]p_ctrlPointer to an open SD/MMC instance control block.
[in,out]p_dataPointer to data byte to write. Read data is also provided here if read_after_write is true.
[in]functionSDIO Function Number.
[in]addressSDIO register address.
[in]read_after_writeWhether or not to read back the same register after writing

◆ writeIoExt

ssp_err_t(* sdmmc_api_t::writeIoExt) (sdmmc_ctrl_t *const p_ctrl, uint8_t const *const p_source, uint32_t const function, uint32_t const address, uint32_t const count, sdmmc_io_transfer_mode_t transfer_mode, sdmmc_io_address_mode_t address_mode)

Write multiple bytes or blocks of I/O data to an SDIO device. This API is not supported for SD or eMMC memory devices.

Implemented as
R_SDMMC_WriteIoExt()
Parameters
[in]p_ctrlPointer to an open SD/MMC instance control block.
[in]p_sourcePointer to data buffer to write data from.
[in]function_numberSDIO Function Number.
[in]addressSDIO register address.
[in]countNumber of bytes or blocks to write, maximum 512 bytes or 511 blocks.
[in]transfer_modeByte or block mode
[in]address_modeFixed or incrementing address mode

The documentation for this struct was generated from the following file: