]> git.ipfire.org Git - people/ms/u-boot.git/blame - drivers/mmc/mmc_private.h
dm: mmc: Fix up mmc_bread/bwrite() prototypes for SPL
[people/ms/u-boot.git] / drivers / mmc / mmc_private.h
CommitLineData
da61fa5f
PB
1/*
2 * Copyright 2008,2010 Freescale Semiconductor, Inc
3 * Andy Fleming
4 *
5 * Based (loosely) on the Linux code
6 *
7 * SPDX-License-Identifier: GPL-2.0+
8 */
9
10#ifndef _MMC_PRIVATE_H_
11#define _MMC_PRIVATE_H_
12
13#include <mmc.h>
14
15extern int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd,
16 struct mmc_data *data);
17extern int mmc_send_status(struct mmc *mmc, int timeout);
18extern int mmc_set_blocklen(struct mmc *mmc, int len);
5a8dbdc6
YL
19#ifdef CONFIG_FSL_ESDHC_ADAPTER_IDENT
20void mmc_adapter_card_type_ident(void);
21#endif
da61fa5f
PB
22
23#ifndef CONFIG_SPL_BUILD
24
4101f687 25unsigned long mmc_berase(struct blk_desc *block_dev, lbaint_t start,
7c4213f6 26 lbaint_t blkcnt);
da61fa5f 27
33fb211d
SG
28#ifdef CONFIG_BLK
29ulong mmc_bwrite(struct udevice *dev, lbaint_t start, lbaint_t blkcnt,
30 const void *src);
31#else
32ulong mmc_bwrite(struct blk_desc *block_dev, lbaint_t start, lbaint_t blkcnt,
33 const void *src);
34#endif
da61fa5f
PB
35
36#else /* CONFIG_SPL_BUILD */
37
38/* SPL will never write or erase, declare dummies to reduce code size. */
39
e419a3ec
SG
40#ifdef CONFIG_BLK
41static inline unsigned long mmc_berase(struct udevice *dev,
42 lbaint_t start, lbaint_t blkcnt)
43{
44 return 0;
45}
46
47static inline ulong mmc_bwrite(struct udevice *dev, lbaint_t start,
48 lbaint_t blkcnt, const void *src)
49{
50 return 0;
51}
52#else
4101f687 53static inline unsigned long mmc_berase(struct blk_desc *block_dev,
7c4213f6 54 lbaint_t start, lbaint_t blkcnt)
da61fa5f
PB
55{
56 return 0;
57}
58
4101f687 59static inline ulong mmc_bwrite(struct blk_desc *block_dev, lbaint_t start,
7c4213f6 60 lbaint_t blkcnt, const void *src)
da61fa5f
PB
61{
62 return 0;
63}
e419a3ec 64#endif
da61fa5f
PB
65
66#endif /* CONFIG_SPL_BUILD */
67
c40fdca6
SG
68/**
69 * mmc_get_next_devnum() - Get the next available MMC device number
70 *
71 * @return next available device number (0 = first), or -ve on error
72 */
73int mmc_get_next_devnum(void);
74
75/**
76 * mmc_do_preinit() - Get an MMC device ready for use
77 */
78void mmc_do_preinit(void);
79
80/**
81 * mmc_list_init() - Set up the list of MMC devices
82 */
83void mmc_list_init(void);
84
85/**
86 * mmc_list_add() - Add a new MMC device to the list of devices
87 *
88 * @mmc: Device to add
89 */
90void mmc_list_add(struct mmc *mmc);
91
da61fa5f 92#endif /* _MMC_PRIVATE_H_ */