1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2022-2023, Intel Corporation. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef SDMMC_H 8*91f16700Schasinglulu #define SDMMC_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu #include <lib/mmio.h> 11*91f16700Schasinglulu #include "socfpga_handoff.h" 12*91f16700Schasinglulu 13*91f16700Schasinglulu #define PERIPHERAL_SDMMC_MASK 0x60 14*91f16700Schasinglulu #define PERIPHERAL_SDMMC_OFFSET 6 15*91f16700Schasinglulu 16*91f16700Schasinglulu #define DEFAULT_SDMMC_MAX_RETRIES 5 17*91f16700Schasinglulu #define SEND_SDMMC_OP_COND_MAX_RETRIES 100 18*91f16700Schasinglulu #define SDMMC_MULT_BY_512K_SHIFT 19 19*91f16700Schasinglulu 20*91f16700Schasinglulu static const unsigned char tran_speed_base[16] = { 21*91f16700Schasinglulu 0, 10, 12, 13, 15, 20, 26, 30, 35, 40, 45, 52, 55, 60, 70, 80 22*91f16700Schasinglulu }; 23*91f16700Schasinglulu 24*91f16700Schasinglulu static const unsigned char sd_tran_speed_base[16] = { 25*91f16700Schasinglulu 0, 10, 12, 13, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 70, 80 26*91f16700Schasinglulu }; 27*91f16700Schasinglulu 28*91f16700Schasinglulu 29*91f16700Schasinglulu /* FUNCTION DEFINATION */ 30*91f16700Schasinglulu /* 31*91f16700Schasinglulu * @brief SDMMC controller initialization function 32*91f16700Schasinglulu * 33*91f16700Schasinglulu * @hoff_ptr: Pointer to the hand-off data 34*91f16700Schasinglulu * Return: 0 on success, a negative errno on failure 35*91f16700Schasinglulu */ 36*91f16700Schasinglulu int sdmmc_init(handoff *hoff_ptr, struct cdns_sdmmc_params *params, 37*91f16700Schasinglulu struct mmc_device_info *info); 38*91f16700Schasinglulu int sd_or_mmc_init(const struct mmc_ops *ops_ptr, unsigned int clk, 39*91f16700Schasinglulu unsigned int width, unsigned int flags, 40*91f16700Schasinglulu struct mmc_device_info *device_info); 41*91f16700Schasinglulu void sdmmc_pin_config(void); 42*91f16700Schasinglulu #endif 43