Merge branch 'master' of git://www.denx.de/git/u-boot-imx
[platform/kernel/u-boot.git] / arch / arm / mach-s5pc1xx / cache.c
1 /*
2  * Copyright (C) 2014 Samsung Electronics
3  * Minkyu Kang <mk7.kang@samsung.com>
4  * Robert Baldyga <r.baldyga@samsung.com>
5  *
6  * based on arch/arm/cpu/armv7/omap3/cache.S
7  *
8  * SPDX-License-Identifier:     GPL-2.0+
9  */
10
11 #include <common.h>
12
13 #ifndef CONFIG_SYS_DCACHE_OFF
14 void enable_caches(void)
15 {
16         dcache_enable();
17 }
18
19 void disable_caches(void)
20 {
21         dcache_disable();
22 }
23 #endif
24
25 #ifndef CONFIG_SYS_L2CACHE_OFF
26 void v7_outer_cache_enable(void)
27 {
28         __asm(
29                 "push    {r0, r1, r2, lr}\n\t"
30                 "mrc     15, 0, r3, cr1, cr0, 1\n\t"
31                 "orr     r3, r3, #2\n\t"
32                 "mcr     15, 0, r3, cr1, cr0, 1\n\t"
33                 "pop     {r1, r2, r3, pc}"
34         );
35 }
36
37 void v7_outer_cache_disable(void)
38 {
39         __asm(
40                 "push    {r0, r1, r2, lr}\n\t"
41                 "mrc     15, 0, r3, cr1, cr0, 1\n\t"
42                 "bic     r3, r3, #2\n\t"
43                 "mcr     15, 0, r3, cr1, cr0, 1\n\t"
44                 "pop     {r1, r2, r3, pc}"
45         );
46 }
47 #endif