1*b28c29d0SBiju Das /* 2*b28c29d0SBiju Das * Copyright (c) 2015-2017, Renesas Electronics Corporation. All rights reserved. 3*b28c29d0SBiju Das * 4*b28c29d0SBiju Das * SPDX-License-Identifier: BSD-3-Clause 5*b28c29d0SBiju Das */ 6*b28c29d0SBiju Das 7*b28c29d0SBiju Das /** 8*b28c29d0SBiju Das * @file emmc_def.h 9*b28c29d0SBiju Das * @brief eMMC boot is expecting this header file 10*b28c29d0SBiju Das * 11*b28c29d0SBiju Das */ 12*b28c29d0SBiju Das 13*b28c29d0SBiju Das #ifndef EMMC_DEF_H 14*b28c29d0SBiju Das #define EMMC_DEF_H 15*b28c29d0SBiju Das 16*b28c29d0SBiju Das #include "emmc_std.h" 17*b28c29d0SBiju Das 18*b28c29d0SBiju Das /* ************************ HEADER (INCLUDE) SECTION *********************** */ 19*b28c29d0SBiju Das 20*b28c29d0SBiju Das /* ***************** MACROS, CONSTANTS, COMPILATION FLAGS ****************** */ 21*b28c29d0SBiju Das #define EMMC_POWER_ON (1U) 22*b28c29d0SBiju Das 23*b28c29d0SBiju Das /* ********************** STRUCTURES, TYPE DEFINITIONS ********************* */ 24*b28c29d0SBiju Das 25*b28c29d0SBiju Das /* ********************** DECLARATION OF EXTERNAL DATA ********************* */ 26*b28c29d0SBiju Das extern st_mmc_base mmc_drv_obj; 27*b28c29d0SBiju Das 28*b28c29d0SBiju Das /* ************************** FUNCTION PROTOTYPES ************************** */ 29*b28c29d0SBiju Das 30*b28c29d0SBiju Das /** @brief for assembler program 31*b28c29d0SBiju Das */ 32*b28c29d0SBiju Das uint32_t _rom_emmc_finalize(void); 33*b28c29d0SBiju Das 34*b28c29d0SBiju Das /** @brief eMMC driver API 35*b28c29d0SBiju Das */ 36*b28c29d0SBiju Das EMMC_ERROR_CODE rcar_emmc_init(void); 37*b28c29d0SBiju Das EMMC_ERROR_CODE emmc_terminate(void); 38*b28c29d0SBiju Das EMMC_ERROR_CODE rcar_emmc_memcard_power(uint8_t mode); 39*b28c29d0SBiju Das EMMC_ERROR_CODE rcar_emmc_mount(void); 40*b28c29d0SBiju Das EMMC_ERROR_CODE emmc_set_request_mmc_clock(uint32_t *freq); 41*b28c29d0SBiju Das EMMC_ERROR_CODE emmc_send_idle_cmd(uint32_t arg); 42*b28c29d0SBiju Das EMMC_ERROR_CODE emmc_select_partition(EMMC_PARTITION_ID id); 43*b28c29d0SBiju Das EMMC_ERROR_CODE emmc_read_sector(uint32_t *buff_address_virtual, 44*b28c29d0SBiju Das uint32_t sector_number, uint32_t count, 45*b28c29d0SBiju Das uint32_t feature_flags); 46*b28c29d0SBiju Das EMMC_ERROR_CODE emmc_write_sector(uint32_t *buff_address_virtual, 47*b28c29d0SBiju Das uint32_t sector_number, uint32_t count, 48*b28c29d0SBiju Das uint32_t feature_flags); 49*b28c29d0SBiju Das EMMC_ERROR_CODE emmc_erase_sector(uint32_t *start_address, 50*b28c29d0SBiju Das uint32_t *end_address); 51*b28c29d0SBiju Das uint32_t emmc_bit_field(uint8_t *data, uint32_t top, uint32_t bottom); 52*b28c29d0SBiju Das 53*b28c29d0SBiju Das /** @brief interrupt service 54*b28c29d0SBiju Das */ 55*b28c29d0SBiju Das uint32_t emmc_interrupt(void); 56*b28c29d0SBiju Das 57*b28c29d0SBiju Das /** @brief DMA 58*b28c29d0SBiju Das */ 59*b28c29d0SBiju Das 60*b28c29d0SBiju Das /** @brief send command API 61*b28c29d0SBiju Das */ 62*b28c29d0SBiju Das EMMC_ERROR_CODE emmc_exec_cmd(uint32_t error_mask, uint32_t *response); 63*b28c29d0SBiju Das void emmc_make_nontrans_cmd(HAL_MEMCARD_COMMAND cmd, uint32_t arg); 64*b28c29d0SBiju Das void emmc_make_trans_cmd(HAL_MEMCARD_COMMAND cmd, uint32_t arg, 65*b28c29d0SBiju Das uint32_t *buff_address_virtual, uint32_t len, 66*b28c29d0SBiju Das HAL_MEMCARD_OPERATION dir, 67*b28c29d0SBiju Das HAL_MEMCARD_DATA_TRANSFER_MODE transfer_mode); 68*b28c29d0SBiju Das EMMC_ERROR_CODE emmc_set_ext_csd(uint32_t arg); 69*b28c29d0SBiju Das 70*b28c29d0SBiju Das /** @brief for error information 71*b28c29d0SBiju Das */ 72*b28c29d0SBiju Das void emmc_write_error_info(uint16_t func_no, EMMC_ERROR_CODE error_code); 73*b28c29d0SBiju Das void emmc_write_error_info_func_no(uint16_t func_no); 74*b28c29d0SBiju Das 75*b28c29d0SBiju Das /* ********************************* CODE ********************************** */ 76*b28c29d0SBiju Das 77*b28c29d0SBiju Das #endif /* EMMC_DEF_H */ 78*b28c29d0SBiju Das /* ******************************** END ************************************ */ 79