31
31
#include "fsl_iomuxc.h"
32
32
#include "pin.h"
33
33
34
- #if FSL_USDHC_DRIVER_VERSION == 0x020208
35
- #define USHDC_USE_TRANSFER_NONBLOCKING_10XX (1)
36
- #endif
37
-
38
34
#define SDCARD_VOLTAGE_WINDOW_SD (0x80100000U)
39
35
#define SDCARD_HIGH_CAPACITY (0x40000000U)
40
36
#define SDCARD_SWITCH_1_8V_CAPACITY ((uint32_t)0x01000000U)
@@ -143,16 +139,6 @@ enum
143
139
SDCARD_STATE_DISCONNECT = 8U ,
144
140
};
145
141
146
- // ---
147
- // SD Card transfer status
148
- // ---
149
- typedef enum
150
- {
151
- SDCARD_TRANSFER_SUCCESS = 0 ,
152
- SDCARD_TRANSFER_ERROR ,
153
- SDCARD_TRANSFER_PENDING
154
- } sdcard_transfer_status_t ;
155
-
156
142
// ---
157
143
// SD Card type definitions
158
144
// ---
@@ -220,9 +206,6 @@ mimxrt_sdcard_obj_t mimxrt_sdcard_objs[] =
220
206
#endif
221
207
};
222
208
223
- volatile status_t sdcard_transfer_status ;
224
- volatile bool sdcard_transfer_done ;
225
-
226
209
// ---
227
210
// Local function declarations
228
211
// ---
@@ -286,16 +269,6 @@ void sdcard_card_removed_callback(USDHC_Type *base, void *userData) {
286
269
USDHC_ClearInterruptStatusFlags (base , kUSDHC_CardRemovalFlag );
287
270
}
288
271
289
- #if USHDC_USE_TRANSFER_NONBLOCKING_10XX
290
-
291
- void sdcard_transfer_complete_callback (USDHC_Type * base , usdhc_handle_t * handle , status_t status , void * userData ) {
292
- sdcard_transfer_status = status ;
293
- sdcard_transfer_done = true;
294
- USDHC_ClearInterruptStatusFlags (base , kUSDHC_CommandCompleteFlag | kUSDHC_DataCompleteFlag );
295
- }
296
-
297
- #endif
298
-
299
272
void sdcard_dummy_callback (USDHC_Type * base , void * userData ) {
300
273
return ;
301
274
}
@@ -331,31 +304,6 @@ static status_t sdcard_transfer_blocking(USDHC_Type *base, usdhc_handle_t *handl
331
304
dma_config .admaTable = sdcard_adma_descriptor_table ;
332
305
dma_config .admaTableWords = DMA_DESCRIPTOR_BUFFER_SIZE ;
333
306
334
- #if USHDC_USE_TRANSFER_NONBLOCKING_10XX
335
-
336
- uint32_t retry_ctr = 0UL ;
337
-
338
- do {
339
- status = USDHC_TransferNonBlocking (base , handle , & dma_config , transfer );
340
- retry_ctr ++ ;
341
- } while (!(status == kStatus_Success ) && (retry_ctr < 1000000UL ));
342
-
343
- if (status == kStatus_Success ) {
344
- for (int i = 0 ; i < timeout_ms * 100 ; i ++ ) {
345
- if ((sdcard_transfer_done == true) && (sdcard_transfer_status == kStatus_Success )) {
346
- sdcard_transfer_done = false;
347
- return kStatus_Success ;
348
- }
349
- ticks_delay_us64 (10 );
350
- }
351
- return kStatus_Timeout ;
352
- } else {
353
- sdcard_error_recovery (base );
354
- return status ;
355
- }
356
-
357
- #else // USHDC_USE_TRANSFER_NONBLOCKING_10XX
358
-
359
307
// Wait while the card is busy before a transfer
360
308
status = kStatus_Timeout ;
361
309
for (int i = 0 ; i < timeout_ms * 100 ; i ++ ) {
@@ -373,7 +321,6 @@ static status_t sdcard_transfer_blocking(USDHC_Type *base, usdhc_handle_t *handl
373
321
}
374
322
return status ;
375
323
376
- #endif // USHDC_USE_TRANSFER_NONBLOCKING_11XX
377
324
}
378
325
379
326
static void sdcard_decode_csd (mimxrt_sdcard_obj_t * card , csd_t * csd ) {
@@ -771,18 +718,15 @@ void sdcard_init(mimxrt_sdcard_obj_t *card, uint32_t base_clk) {
771
718
(void )sdcard_reset (card );
772
719
card -> base_clk = base_clk ;
773
720
774
- #if USHDC_USE_TRANSFER_NONBLOCKING_10XX
775
721
usdhc_transfer_callback_t callbacks = {
776
722
.CardInserted = sdcard_card_inserted_callback ,
777
723
.CardRemoved = sdcard_card_removed_callback ,
778
724
.SdioInterrupt = sdcard_dummy_callback ,
779
725
.BlockGap = sdcard_dummy_callback ,
780
- .TransferComplete = sdcard_transfer_complete_callback ,
781
726
.ReTuning = sdcard_dummy_callback ,
782
727
};
783
728
784
729
USDHC_TransferCreateHandle (card -> usdhc_inst , & card -> handle , & callbacks , NULL );
785
- #endif // USHDC_USE_TRANSFER_NONBLOCKING_10XX
786
730
}
787
731
788
732
void sdcard_deinit (mimxrt_sdcard_obj_t * card ) {
@@ -1053,8 +997,6 @@ bool sdcard_power_off(mimxrt_sdcard_obj_t *card) {
1053
997
bool sdcard_detect (mimxrt_sdcard_obj_t * card ) {
1054
998
bool detect = false;
1055
999
1056
- #if USHDC_USE_TRANSFER_NONBLOCKING_10XX
1057
-
1058
1000
#if defined MICROPY_USDHC1 && USDHC1_AVAIL
1059
1001
if ((card -> usdhc_inst == USDHC1 ) && (sdcard_usdhc1_state .inserted == true)) {
1060
1002
return true;
@@ -1066,8 +1008,6 @@ bool sdcard_detect(mimxrt_sdcard_obj_t *card) {
1066
1008
}
1067
1009
#endif
1068
1010
1069
- #endif // USHDC_USE_TRANSFER_NONBLOCKING_10XX
1070
-
1071
1011
if (card -> pins -> cd_b .pin ) {
1072
1012
detect = USDHC_DetectCardInsert (card -> usdhc_inst );
1073
1013
} else {
0 commit comments