mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-07 23:09:11 +00:00
This is initial commit to support SDHC driver on Renesas RA8 with r_sdhi modules Signed-off-by: Tran Van Quy <quy.tran.pz@renesas.com>
55 lines
1.2 KiB
C
55 lines
1.2 KiB
C
/*
|
|
* Copyright (c) 2024 Renesas Electronics Corporation
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#define SDHI_PRV_ACCESS_TIMEOUT_US 100000U
|
|
#define SDHI_PRV_SD_OPTION_DEFAULT 0x40E0U
|
|
#define SDHI_PRV_SD_OPTION_WIDTH8_BIT 13
|
|
#define SDHI_PRV_BYTES_PER_KILOBYTE 1024
|
|
#define SDHI_PRV_SECTOR_COUNT_IN_EXT_CSD 0xFFFU
|
|
#define SDHI_TIME_OUT_MAX 0xFFFFFFFF
|
|
#define SDHI_PRV_RESPONSE_BIT 0
|
|
|
|
struct sdmmc_ra_event {
|
|
volatile bool transfer_completed;
|
|
struct k_sem transfer_sem;
|
|
};
|
|
|
|
struct sdmmc_ra_command {
|
|
uint32_t opcode;
|
|
uint32_t arg;
|
|
void *data;
|
|
unsigned int sector_count;
|
|
unsigned int sector_size;
|
|
int timeout_ms;
|
|
};
|
|
|
|
static ALWAYS_INLINE int err_fsp2zep(int fsp_err)
|
|
{
|
|
int ret;
|
|
|
|
switch (fsp_err) {
|
|
/* Treating the error codes most relevant to be individuated */
|
|
case FSP_SUCCESS:
|
|
ret = 0;
|
|
break;
|
|
case FSP_ERR_TIMEOUT:
|
|
ret = -ETIMEDOUT;
|
|
break;
|
|
case FSP_ERR_NOT_FOUND:
|
|
ret = -ENODEV; /* SD card not inserted (requires CD signal) */
|
|
break;
|
|
case FSP_ERR_INVALID_STATE:
|
|
ret = -EACCES; /* SD card write-protected (requires WP sinal) */
|
|
break;
|
|
case FSP_ERR_RESPONSE:
|
|
default:
|
|
ret = -EIO;
|
|
break;
|
|
}
|
|
|
|
return ret;
|
|
}
|