1*da61fa5fSPaul Burton /* 2*da61fa5fSPaul Burton * Copyright 2008,2010 Freescale Semiconductor, Inc 3*da61fa5fSPaul Burton * Andy Fleming 4*da61fa5fSPaul Burton * 5*da61fa5fSPaul Burton * Based (loosely) on the Linux code 6*da61fa5fSPaul Burton * 7*da61fa5fSPaul Burton * SPDX-License-Identifier: GPL-2.0+ 8*da61fa5fSPaul Burton */ 9*da61fa5fSPaul Burton 10*da61fa5fSPaul Burton #ifndef _MMC_PRIVATE_H_ 11*da61fa5fSPaul Burton #define _MMC_PRIVATE_H_ 12*da61fa5fSPaul Burton 13*da61fa5fSPaul Burton #include <mmc.h> 14*da61fa5fSPaul Burton 15*da61fa5fSPaul Burton extern int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, 16*da61fa5fSPaul Burton struct mmc_data *data); 17*da61fa5fSPaul Burton extern int mmc_send_status(struct mmc *mmc, int timeout); 18*da61fa5fSPaul Burton extern int mmc_set_blocklen(struct mmc *mmc, int len); 19*da61fa5fSPaul Burton 20*da61fa5fSPaul Burton #ifndef CONFIG_SPL_BUILD 21*da61fa5fSPaul Burton 22*da61fa5fSPaul Burton extern unsigned long mmc_berase(int dev_num, lbaint_t start, lbaint_t blkcnt); 23*da61fa5fSPaul Burton 24*da61fa5fSPaul Burton extern ulong mmc_bwrite(int dev_num, lbaint_t start, lbaint_t blkcnt, 25*da61fa5fSPaul Burton const void *src); 26*da61fa5fSPaul Burton 27*da61fa5fSPaul Burton #else /* CONFIG_SPL_BUILD */ 28*da61fa5fSPaul Burton 29*da61fa5fSPaul Burton /* SPL will never write or erase, declare dummies to reduce code size. */ 30*da61fa5fSPaul Burton 31*da61fa5fSPaul Burton static inline unsigned long mmc_berase(int dev_num, lbaint_t start, 32*da61fa5fSPaul Burton lbaint_t blkcnt) 33*da61fa5fSPaul Burton { 34*da61fa5fSPaul Burton return 0; 35*da61fa5fSPaul Burton } 36*da61fa5fSPaul Burton 37*da61fa5fSPaul Burton static inline ulong mmc_bwrite(int dev_num, lbaint_t start, lbaint_t blkcnt, 38*da61fa5fSPaul Burton const void *src) 39*da61fa5fSPaul Burton { 40*da61fa5fSPaul Burton return 0; 41*da61fa5fSPaul Burton } 42*da61fa5fSPaul Burton 43*da61fa5fSPaul Burton #endif /* CONFIG_SPL_BUILD */ 44*da61fa5fSPaul Burton 45*da61fa5fSPaul Burton #endif /* _MMC_PRIVATE_H_ */ 46