Merge tag 'regulator-fix-v6.5-merge-window' of git://git.kernel.org/pub/scm/linux...
[sfrench/cifs-2.6.git] / arch / arm / include / asm / mach / map.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  *  arch/arm/include/asm/map.h
4  *
5  *  Copyright (C) 1999-2000 Russell King
6  *
7  *  Page table mapping constructs and function prototypes
8  */
9 #ifndef __ASM_MACH_MAP_H
10 #define __ASM_MACH_MAP_H
11
12 #include <asm/io.h>
13
14 struct map_desc {
15         unsigned long virtual;
16         unsigned long pfn;
17         unsigned long length;
18         unsigned int type;
19 };
20
21 /* types 0-3 are defined in asm/io.h */
22 enum {
23         MT_UNCACHED = 4,
24         MT_CACHECLEAN,
25         MT_MINICLEAN,
26         MT_LOW_VECTORS,
27         MT_HIGH_VECTORS,
28         MT_MEMORY_RWX,
29         MT_MEMORY_RW,
30         MT_MEMORY_RO,
31         MT_ROM,
32         MT_MEMORY_RWX_NONCACHED,
33         MT_MEMORY_RW_DTCM,
34         MT_MEMORY_RWX_ITCM,
35         MT_MEMORY_RW_SO,
36         MT_MEMORY_DMA_READY,
37 };
38
39 #ifdef CONFIG_MMU
40 extern void iotable_init(struct map_desc *, int);
41 extern void vm_reserve_area_early(unsigned long addr, unsigned long size,
42                                   void *caller);
43 extern void create_mapping_late(struct mm_struct *mm, struct map_desc *md,
44                                 bool ng);
45
46 #ifdef CONFIG_DEBUG_LL
47 extern void debug_ll_addr(unsigned long *paddr, unsigned long *vaddr);
48 extern void debug_ll_io_init(void);
49 #else
50 static inline void debug_ll_io_init(void) {}
51 #endif
52
53 struct mem_type;
54 extern const struct mem_type *get_mem_type(unsigned int type);
55 /*
56  * external interface to remap single page with appropriate type
57  */
58 extern int ioremap_page(unsigned long virt, unsigned long phys,
59                         const struct mem_type *mtype);
60 #else
61 #define iotable_init(map,num)   do { } while (0)
62 #define vm_reserve_area_early(a,s,c)    do { } while (0)
63 #endif
64
65 #endif