ChibiOS/HAL  6.1.0
hal_sdc.c File Reference

SDC Driver code. More...

#include <string.h>
#include "hal.h"

Go to the source code of this file.

Enumerations

Functions

static bool mode_detect (SDCDriver *sdcp)
 Detects card mode. More...
 
static bool mmc_init (SDCDriver *sdcp)
 Init procedure for MMC. More...
 
static bool sdc_init (SDCDriver *sdcp)
 Init procedure for SDC. More...
 
static uint32_t mmc_cmd6_construct (mmc_switch_t access, uint32_t idx, uint32_t value, uint32_t cmd_set)
 Constructs CMD6 argument for MMC. More...
 
static uint32_t sdc_cmd6_construct (sd_switch_t mode, sd_switch_function_t function, uint32_t value)
 Constructs CMD6 argument for SDC. More...
 
static uint16_t sdc_cmd6_extract_info (sd_switch_function_t function, const uint8_t *buf)
 Extracts information from CMD6 answer. More...
 
static bool sdc_cmd6_check_status (sd_switch_function_t function, const uint8_t *buf)
 Checks status after switching using CMD6. More...
 
static bool sdc_detect_bus_clk (SDCDriver *sdcp, sdcbusclk_t *clk)
 Reads supported bus clock and switch SDC to appropriate mode. More...
 
static bool mmc_detect_bus_clk (SDCDriver *sdcp, sdcbusclk_t *clk)
 Reads supported bus clock and switch MMC to appropriate mode. More...
 
static bool detect_bus_clk (SDCDriver *sdcp, sdcbusclk_t *clk)
 Reads supported bus clock and switch card to appropriate mode. More...
 
static bool sdc_set_bus_width (SDCDriver *sdcp)
 Sets bus width for SDC. More...
 
static bool mmc_set_bus_width (SDCDriver *sdcp)
 Sets bus width for MMC. More...
 
bool _sdc_wait_for_transfer_state (SDCDriver *sdcp)
 Wait for the card to complete pending operations. More...
 
void sdcInit (void)
 SDC Driver initialization. More...
 
void sdcObjectInit (SDCDriver *sdcp)
 Initializes the standard part of a SDCDriver structure. More...
 
void sdcStart (SDCDriver *sdcp, const SDCConfig *config)
 Configures and activates the SDC peripheral. More...
 
void sdcStop (SDCDriver *sdcp)
 Deactivates the SDC peripheral. More...
 
bool sdcConnect (SDCDriver *sdcp)
 Performs the initialization procedure on the inserted card. More...
 
bool sdcDisconnect (SDCDriver *sdcp)
 Brings the driver in a state safe for card removal. More...
 
bool sdcRead (SDCDriver *sdcp, uint32_t startblk, uint8_t *buf, uint32_t n)
 Reads one or more blocks. More...
 
bool sdcWrite (SDCDriver *sdcp, uint32_t startblk, const uint8_t *buf, uint32_t n)
 Writes one or more blocks. More...
 
sdcflags_t sdcGetAndClearErrors (SDCDriver *sdcp)
 Returns the errors mask associated to the previous operation. More...
 
bool sdcSync (SDCDriver *sdcp)
 Waits for card idle condition. More...
 
bool sdcGetInfo (SDCDriver *sdcp, BlockDeviceInfo *bdip)
 Returns the media info. More...
 
bool sdcErase (SDCDriver *sdcp, uint32_t startblk, uint32_t endblk)
 Erases the supplied blocks. More...
 

Variables

static const struct SDCDriverVMT sdc_vmt
 Virtual methods table. More...
 

Detailed Description

SDC Driver code.

Definition in file hal_sdc.c.