VSF Documented
Data Structures | Macros | Typedefs | Functions
sdio.c File Reference
#include "../driver.h"
#include "hal/vsf_hal.h"
#include "../vendor/plf/aic8800/src/driver/sysctrl/reg_sysctrl.h"
#include "../vendor/plf/aic8800/src/driver/sysctrl/sysctrl_api.h"
#include "../vendor/plf/aic8800/src/driver/iomux/reg_iomux.h"
#include "../vendor/plf/aic8800/src/driver/sdmmc/reg_sdmmc.h"
#include "../vendor/plf/aic8800/src/driver/dma/dma_generic.h"
#include "hal/driver/common/sdio/sdio_template.inc"

Data Structures

struct  vsf_hw_sdio_const_t
 
struct  vsf_hw_sdio_t
 

Macros

#define VSF_HW_SDIO_CFG_MULTI_CLASS   VSF_SDIO_CFG_MULTI_CLASS
 
#define DATARD_TRIG_TH   4
 
#define DATAWR_TRIG_TH   4
 
#define VSF_SDIO_CFG_REIMPLEMENT_API_CAPABILITY   ENABLED
 
#define VSF_SDIO_CFG_IMP_PREFIX   vsf_hw
 
#define VSF_SDIO_CFG_IMP_UPCASE_PREFIX   VSF_HW
 
#define VSF_SDIO_CFG_IMP_LV0(__IDX, __HAL_OP)
 

Typedefs

typedef struct vsf_hw_sdio_const_t vsf_hw_sdio_const_t
 
typedef struct vsf_hw_sdio_t vsf_hw_sdio_t
 

Functions

vsf_err_t vsf_hw_sdio_init (vsf_hw_sdio_t *sdio_ptr, vsf_sdio_cfg_t *cfg_ptr)
 
void vsf_hw_sdio_fini (vsf_hw_sdio_t *sdio_ptr)
 
void vsf_hw_sdio_irq_enable (vsf_hw_sdio_t *sdio_ptr, vsf_sdio_irq_mask_t irq_mask)
 
void vsf_hw_sdio_irq_disable (vsf_hw_sdio_t *sdio_ptr, vsf_sdio_irq_mask_t irq_mask)
 
vsf_sdio_status_t vsf_hw_sdio_status (vsf_hw_sdio_t *sdio_ptr)
 
vsf_sdio_capability_t vsf_hw_sdio_capability (vsf_hw_sdio_t *sdio_ptr)
 
vsf_err_t vsf_hw_sdio_set_clock (vsf_hw_sdio_t *sdio_ptr, uint32_t clock_hz, bool is_ddr)
 
vsf_err_t vsf_hw_sdio_set_bus_width (vsf_hw_sdio_t *sdio_ptr, uint8_t bus_width)
 
vsf_err_t vsf_hw_sdio_host_request (vsf_hw_sdio_t *sdio_ptr, vsf_sdio_req_t *req)
 

Macro Definition Documentation

◆ VSF_HW_SDIO_CFG_MULTI_CLASS

#define VSF_HW_SDIO_CFG_MULTI_CLASS   VSF_SDIO_CFG_MULTI_CLASS

◆ DATARD_TRIG_TH

#define DATARD_TRIG_TH   4

◆ DATAWR_TRIG_TH

#define DATAWR_TRIG_TH   4

◆ VSF_SDIO_CFG_REIMPLEMENT_API_CAPABILITY

#define VSF_SDIO_CFG_REIMPLEMENT_API_CAPABILITY   ENABLED

◆ VSF_SDIO_CFG_IMP_PREFIX

#define VSF_SDIO_CFG_IMP_PREFIX   vsf_hw

◆ VSF_SDIO_CFG_IMP_UPCASE_PREFIX

#define VSF_SDIO_CFG_IMP_UPCASE_PREFIX   VSF_HW

◆ VSF_SDIO_CFG_IMP_LV0

#define VSF_SDIO_CFG_IMP_LV0 (   __IDX,
  __HAL_OP 
)
Value:
static const vsf_hw_sdio_const_t __vsf_hw_sdio ## __IDX ## _const = { \
.reg = VSF_HW_SDIO ## __IDX ## _REG, \
.irqn = VSF_HW_SDIO ## __IDX ## _IRQ_IDX, \
}; \
vsf_hw_sdio_t vsf_hw_sdio ## __IDX = { \
.sdio_const = &__vsf_hw_sdio ## __IDX ## _const, \
__HAL_OP \
}; \
void VSF_HW_SDIO ## __IDX ## _IRQ(void) \
{ \
__vsf_hw_sdio_irq_handler(&vsf_hw_sdio ## __IDX); \
vsf_hal_irq_leave(ctx); \
}
uint32_t uintptr_t
Definition stdint.h:38
Definition sdio.c:45
AIC_SDMMC_TypeDef * reg
Definition sdio.c:46
Definition sdio.c:50
const vsf_hw_sdio_const_t * sdio_const
Definition sdio.c:55
uintptr_t vsf_hal_irq_enter(void)
Definition vsf_hal.c:59

Typedef Documentation

◆ vsf_hw_sdio_const_t

◆ vsf_hw_sdio_t

typedef struct vsf_hw_sdio_t vsf_hw_sdio_t

Function Documentation

◆ vsf_hw_sdio_init()

vsf_err_t vsf_hw_sdio_init ( vsf_hw_sdio_t sdio_ptr,
vsf_sdio_cfg_t cfg_ptr 
)

◆ vsf_hw_sdio_fini()

void vsf_hw_sdio_fini ( vsf_hw_sdio_t sdio_ptr)

◆ vsf_hw_sdio_irq_enable()

void vsf_hw_sdio_irq_enable ( vsf_hw_sdio_t sdio_ptr,
vsf_sdio_irq_mask_t  irq_mask 
)

◆ vsf_hw_sdio_irq_disable()

void vsf_hw_sdio_irq_disable ( vsf_hw_sdio_t sdio_ptr,
vsf_sdio_irq_mask_t  irq_mask 
)

◆ vsf_hw_sdio_status()

vsf_sdio_status_t vsf_hw_sdio_status ( vsf_hw_sdio_t sdio_ptr)

◆ vsf_hw_sdio_capability()

vsf_sdio_capability_t vsf_hw_sdio_capability ( vsf_hw_sdio_t sdio_ptr)

◆ vsf_hw_sdio_set_clock()

vsf_err_t vsf_hw_sdio_set_clock ( vsf_hw_sdio_t sdio_ptr,
uint32_t  clock_hz,
bool  is_ddr 
)

◆ vsf_hw_sdio_set_bus_width()

vsf_err_t vsf_hw_sdio_set_bus_width ( vsf_hw_sdio_t sdio_ptr,
uint8_t  bus_width 
)

◆ vsf_hw_sdio_host_request()

vsf_err_t vsf_hw_sdio_host_request ( vsf_hw_sdio_t sdio_ptr,
vsf_sdio_req_t req 
)