diff options
Diffstat (limited to 'include/linux/fsl/bestcomm/sram.h')
-rw-r--r-- | include/linux/fsl/bestcomm/sram.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/include/linux/fsl/bestcomm/sram.h b/include/linux/fsl/bestcomm/sram.h new file mode 100644 index 000000000000..b6d668963cce --- /dev/null +++ b/include/linux/fsl/bestcomm/sram.h | |||
@@ -0,0 +1,54 @@ | |||
1 | /* | ||
2 | * Handling of a sram zone for bestcomm | ||
3 | * | ||
4 | * | ||
5 | * Copyright (C) 2007 Sylvain Munaut <tnt@246tNt.com> | ||
6 | * | ||
7 | * This file is licensed under the terms of the GNU General Public License | ||
8 | * version 2. This program is licensed "as is" without any warranty of any | ||
9 | * kind, whether express or implied. | ||
10 | */ | ||
11 | |||
12 | #ifndef __BESTCOMM_SRAM_H__ | ||
13 | #define __BESTCOMM_SRAM_H__ | ||
14 | |||
15 | #include <asm/rheap.h> | ||
16 | #include <asm/mmu.h> | ||
17 | #include <linux/spinlock.h> | ||
18 | |||
19 | |||
20 | /* Structure used internally */ | ||
21 | /* The internals are here for the inline functions | ||
22 | * sake, certainly not for the user to mess with ! | ||
23 | */ | ||
24 | struct bcom_sram { | ||
25 | phys_addr_t base_phys; | ||
26 | void *base_virt; | ||
27 | unsigned int size; | ||
28 | rh_info_t *rh; | ||
29 | spinlock_t lock; | ||
30 | }; | ||
31 | |||
32 | extern struct bcom_sram *bcom_sram; | ||
33 | |||
34 | |||
35 | /* Public API */ | ||
36 | extern int bcom_sram_init(struct device_node *sram_node, char *owner); | ||
37 | extern void bcom_sram_cleanup(void); | ||
38 | |||
39 | extern void* bcom_sram_alloc(int size, int align, phys_addr_t *phys); | ||
40 | extern void bcom_sram_free(void *ptr); | ||
41 | |||
42 | static inline phys_addr_t bcom_sram_va2pa(void *va) { | ||
43 | return bcom_sram->base_phys + | ||
44 | (unsigned long)(va - bcom_sram->base_virt); | ||
45 | } | ||
46 | |||
47 | static inline void *bcom_sram_pa2va(phys_addr_t pa) { | ||
48 | return bcom_sram->base_virt + | ||
49 | (unsigned long)(pa - bcom_sram->base_phys); | ||
50 | } | ||
51 | |||
52 | |||
53 | #endif /* __BESTCOMM_SRAM_H__ */ | ||
54 | |||