zephyr/drivers/sdhc/sdhc_renesas_ra.h
Tran Van Quy 8f91d0c072 drivers: sdhc: support SDHC driver on Renesas RA8
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>
2024-12-25 06:33:12 +01:00

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;
}