diff --git a/components/drivers/include/drivers/sd.h b/components/drivers/include/drivers/sd.h index fb29c8e774bf528f962e7915e5cd52df6da7a4d2..7d5fcacade9b3e80e50a60174e3a88cf5efb723a 100644 --- a/components/drivers/include/drivers/sd.h +++ b/components/drivers/include/drivers/sd.h @@ -34,6 +34,10 @@ extern "C" { rt_err_t mmcsd_send_if_cond(struct rt_mmcsd_host *host, rt_uint32_t ocr); rt_err_t mmcsd_send_app_op_cond(struct rt_mmcsd_host *host, rt_uint32_t ocr, rt_uint32_t *rocr); + +rt_err_t mmcsd_get_card_addr(struct rt_mmcsd_host *host, rt_uint32_t *rca); +rt_int32_t mmcsd_get_scr(struct rt_mmcsd_card *card, rt_uint32_t *scr); + rt_int32_t init_sd(struct rt_mmcsd_host *host, rt_uint32_t ocr); #ifdef __cplusplus diff --git a/components/drivers/sdio/mmcsd_core.c b/components/drivers/sdio/mmcsd_core.c index 57f38371b2f524af284d4a6d253361599d8f3d70..095ecaff8a4f300c44bc2d4667f549927a8fa5aa 100644 --- a/components/drivers/sdio/mmcsd_core.c +++ b/components/drivers/sdio/mmcsd_core.c @@ -26,6 +26,7 @@ #include #include #include +#include #ifndef RT_MMCSD_STACK_SIZE #define RT_MMCSD_STACK_SIZE 1024 @@ -520,6 +521,7 @@ void mmcsd_set_data_timeout(struct rt_mmcsd_data *data, rt_uint32_t mmcsd_select_voltage(struct rt_mmcsd_host *host, rt_uint32_t ocr) { int bit; + extern int __rt_ffs(int value); ocr &= host->valid_ocr; diff --git a/components/drivers/sdio/sdio.c b/components/drivers/sdio/sdio.c index 6b2d655dd741f531367d949dd45391a2bbe56f0f..9f387f0f6eeacd84210c4b736948333ee7271fca 100644 --- a/components/drivers/sdio/sdio.c +++ b/components/drivers/sdio/sdio.c @@ -24,6 +24,7 @@ #include #include +#include #ifndef RT_SDIO_STACK_SIZE #define RT_SDIO_STACK_SIZE 512