HPM SDK
HPMicro Software Development Kit
hpm_sdmmc_common.c File Reference
#include "hpm_sdmmc_common.h"
#include "hpm_sdmmc_card.h"
#include <string.h>

Functions

hpm_stat_t sdmmc_go_idle_state (sdmmc_host_t *host, uint32_t argument)
 Switch device to Idle state. More...
 
hpm_stat_t sdmmc_go_inactive_state (sdmmc_host_t *host, uint16_t relative_addr)
 Switch device to Inactive state. More...
 
hpm_stat_t sdmmc_select_card (sdmmc_host_t *host, uint16_t relative_addr, bool is_selected)
 Select/De-select the device. More...
 
hpm_stat_t sdmmc_send_application_command (sdmmc_host_t *host, uint16_t relative_addr)
 Send Application Command. More...
 
hpm_stat_t sdmmc_set_block_count (sdmmc_host_t *host, uint32_t block_count)
 Set block count. More...
 
hpm_stat_t sdmmc_set_block_size (sdmmc_host_t *host, uint32_t block_size)
 Set Block size. More...
 
hpm_stat_t sdmmc_enable_auto_tuning (sdmmc_host_t *host)
 Enable Auto Tuning mode. More...
 
uint32_t extract_csd_field (const uint32_t *raw_csd, uint8_t end_offset, uint8_t start_offset)
 Extract Fields from raw CSD data. More...
 

Function Documentation

◆ extract_csd_field()

uint32_t extract_csd_field ( const uint32_t *  raw_csd,
uint8_t  end_offset,
uint8_t  start_offset 
)

Extract Fields from raw CSD data.

Parameters
[in]raw_csdRaw CSD data array
[in]end_offsetend offset of the specific field (in terms of bit)
[in]start_offsetstart offset of the specific field (in terms of bit)
Returns
Extracted CSD field

◆ sdmmc_enable_auto_tuning()

hpm_stat_t sdmmc_enable_auto_tuning ( sdmmc_host_t host)

Enable Auto Tuning mode.

Parameters
[in/out]host SD/MMC Host Context
Returns
status_success if operation is successful

◆ sdmmc_go_idle_state()

hpm_stat_t sdmmc_go_idle_state ( sdmmc_host_t host,
uint32_t  argument 
)

Switch device to Idle state.

Parameters
[in/out]host SD/MMC Host Context
[in]argumentArgument for CMD0
Returns
status_success if operation is successful

◆ sdmmc_go_inactive_state()

hpm_stat_t sdmmc_go_inactive_state ( sdmmc_host_t host,
uint16_t  relative_addr 
)

Switch device to Inactive state.

Parameters
[in/out]host SD/MMC Host Context
[in]relative_addrdevice relative address
Returns
status_succes if operation is successful

◆ sdmmc_select_card()

hpm_stat_t sdmmc_select_card ( sdmmc_host_t host,
uint16_t  relative_addr,
bool  is_selected 
)

Select/De-select the device.

Parameters
[in/out]host SD/MMC Host Context
[in]relative_addrdevice relative address
[in]is_selectedtrue: select, false: de-select
Returns
status_success if operation is successful

◆ sdmmc_send_application_command()

hpm_stat_t sdmmc_send_application_command ( sdmmc_host_t host,
uint16_t  relative_addr 
)

Send Application Command.

Parameters
[in/out]host SD/MMC Host Context
[in]relative_addrdevice related address
Returns
status_success if operation is successful

◆ sdmmc_set_block_count()

hpm_stat_t sdmmc_set_block_count ( sdmmc_host_t host,
uint32_t  block_count 
)

Set block count.

Parameters
[in/out]host SD/MMC Host Context
[in]block_countSD/MMC Block count
Returns
status_success if operation is successful

◆ sdmmc_set_block_size()

hpm_stat_t sdmmc_set_block_size ( sdmmc_host_t host,
uint32_t  block_size 
)

Set Block size.

Parameters
[in/out]host SD/MMC Host Context
[in]block_sizeSD/MMC Block size
Returns
status_success if operation is successful