aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSimon Horman <horms@verge.net.au>2010-12-05 19:12:45 -0500
committerPaul Mundt <lethal@linux-sh.org>2010-12-08 02:24:28 -0500
commit54b384634f7083bcacf9a9ed2e6f4c3d0a246e49 (patch)
tree51a37b9fc454ff9e5fced781e433a23ccc3d11d7 /include
parent9f843706bb87837b823228467f4f83973fd110e9 (diff)
mmc, sh: Remove sh_mmcif_boot_slurp()
As the only caller of sh_mmcif_boot_do_read() is sh_mmcif_boot_slurp() the configuration portion of sh_mmcif_boot_slurp() can be merged into sh_mmcif_boot_do_read(). Once this is done sh_mmcif_boot_slurp() is only a call to sh_mmcif_boot_do_read() with platform specific information - the offset that images are stored on MMC. So make the sh_mmcif_boot_do_read() call directly from platform code and remove sh_mmcif_boot_slurp() altogether. Cc: Magnus Damm <magnus.damm@gmail.com> Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/mmc/sh_mmcif.h34
1 files changed, 11 insertions, 23 deletions
diff --git a/include/linux/mmc/sh_mmcif.h b/include/linux/mmc/sh_mmcif.h
index 6a98e97c49f8..cfcc6e320e2f 100644
--- a/include/linux/mmc/sh_mmcif.h
+++ b/include/linux/mmc/sh_mmcif.h
@@ -162,6 +162,17 @@ static inline int sh_mmcif_boot_do_read(void __iomem *base,
162 unsigned long k; 162 unsigned long k;
163 int ret = 0; 163 int ret = 0;
164 164
165 /* In data transfer mode: Set clock to Bus clock/4 (about 20Mhz) */
166 sh_mmcif_writel(base, MMCIF_CE_CLK_CTRL,
167 CLK_ENABLE | CLKDIV_4 | SRSPTO_256 |
168 SRBSYTO_29 | SRWDTO_29 | SCCSTO_29);
169
170 /* CMD9 - Get CSD */
171 sh_mmcif_boot_cmd(base, 0x09806000, 0x00010000);
172
173 /* CMD7 - Select the card */
174 sh_mmcif_boot_cmd(base, 0x07400000, 0x00010000);
175
165 /* CMD16 - Set the block size */ 176 /* CMD16 - Set the block size */
166 sh_mmcif_boot_cmd(base, 0x10400000, SH_MMCIF_BBS); 177 sh_mmcif_boot_cmd(base, 0x10400000, SH_MMCIF_BBS);
167 178
@@ -205,27 +216,4 @@ static inline void sh_mmcif_boot_init(void __iomem *base)
205 sh_mmcif_boot_cmd(base, 0x03400040, 0x00010000); 216 sh_mmcif_boot_cmd(base, 0x03400040, 0x00010000);
206} 217}
207 218
208static inline void sh_mmcif_boot_slurp(void __iomem *base,
209 unsigned char *buf,
210 unsigned long no_bytes)
211{
212 unsigned long tmp;
213
214 /* In data transfer mode: Set clock to Bus clock/4 (about 20Mhz) */
215 sh_mmcif_writel(base, MMCIF_CE_CLK_CTRL,
216 CLK_ENABLE | CLKDIV_4 | SRSPTO_256 |
217 SRBSYTO_29 | SRWDTO_29 | SCCSTO_29);
218
219 /* CMD9 - Get CSD */
220 sh_mmcif_boot_cmd(base, 0x09806000, 0x00010000);
221
222 /* CMD7 - Select the card */
223 sh_mmcif_boot_cmd(base, 0x07400000, 0x00010000);
224
225 tmp = no_bytes / SH_MMCIF_BBS;
226 tmp += (no_bytes % SH_MMCIF_BBS) ? 1 : 0;
227
228 sh_mmcif_boot_do_read(base, 512, tmp, buf);
229}
230
231#endif /* __SH_MMCIF_H__ */ 219#endif /* __SH_MMCIF_H__ */