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