1
2
3
4
5
6
7
8 #ifndef _IMR_H
9 #define _IMR_H
10
11 #include <linux/types.h>
12
13
14
15
16
17
18 #define IMR_ESRAM_FLUSH BIT(31)
19 #define IMR_CPU_SNOOP BIT(30)
20 #define IMR_RMU BIT(29)
21 #define IMR_VC1_SAI_ID3 BIT(15)
22 #define IMR_VC1_SAI_ID2 BIT(14)
23 #define IMR_VC1_SAI_ID1 BIT(13)
24 #define IMR_VC1_SAI_ID0 BIT(12)
25 #define IMR_VC0_SAI_ID3 BIT(11)
26 #define IMR_VC0_SAI_ID2 BIT(10)
27 #define IMR_VC0_SAI_ID1 BIT(9)
28 #define IMR_VC0_SAI_ID0 BIT(8)
29 #define IMR_CPU_0 BIT(1)
30 #define IMR_CPU BIT(0)
31 #define IMR_ACCESS_NONE 0
32
33
34
35
36
37
38
39
40 #define IMR_READ_ACCESS_ALL 0xBFFFFFFF
41 #define IMR_WRITE_ACCESS_ALL 0xFFFFFFFF
42
43
44 #define QUARK_X1000_IMR_MAX 0x08
45 #define QUARK_X1000_IMR_REGBASE 0x40
46
47
48 #define IMR_ALIGN 0x400
49 #define IMR_MASK (IMR_ALIGN - 1)
50
51 int imr_add_range(phys_addr_t base, size_t size,
52 unsigned int rmask, unsigned int wmask);
53
54 int imr_remove_range(phys_addr_t base, size_t size);
55
56 #endif