1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef _KMAP_H 3 #define _KMAP_H 4 5 #ifdef CONFIG_MMU 6 7 /* Values for nocacheflag and cmode */ 8 #define IOMAP_FULL_CACHING 0 9 #define IOMAP_NOCACHE_SER 1 10 #define IOMAP_NOCACHE_NONSER 2 11 #define IOMAP_WRITETHROUGH 3 12 13 /* 14 * These functions exported by arch/m68k/mm/kmap.c. 15 * Only needed on MMU enabled systems. 16 */ 17 extern void __iomem *__ioremap(unsigned long physaddr, unsigned long size, 18 int cacheflag); 19 extern void iounmap(void __iomem *addr); 20 extern void __iounmap(void *addr, unsigned long size); 21 22 #define ioremap ioremap 23 static inline void __iomem *ioremap(unsigned long physaddr, unsigned long size) 24 { 25 return __ioremap(physaddr, size, IOMAP_NOCACHE_SER); 26 } 27 28 #define ioremap_nocache ioremap_nocache 29 static inline void __iomem *ioremap_nocache(unsigned long physaddr, 30 unsigned long size) 31 { 32 return __ioremap(physaddr, size, IOMAP_NOCACHE_SER); 33 } 34 35 #define ioremap_uc ioremap_nocache 36 static inline void __iomem *ioremap_wt(unsigned long physaddr, 37 unsigned long size) 38 { 39 return __ioremap(physaddr, size, IOMAP_WRITETHROUGH); 40 } 41 42 #define ioremap_fillcache ioremap_fullcache 43 static inline void __iomem *ioremap_fullcache(unsigned long physaddr, 44 unsigned long size) 45 { 46 return __ioremap(physaddr, size, IOMAP_FULL_CACHING); 47 } 48 49 static inline void memset_io(volatile void __iomem *addr, unsigned char val, 50 int count) 51 { 52 __builtin_memset((void __force *) addr, val, count); 53 } 54 55 static inline void memcpy_fromio(void *dst, const volatile void __iomem *src, 56 int count) 57 { 58 __builtin_memcpy(dst, (void __force *) src, count); 59 } 60 61 static inline void memcpy_toio(volatile void __iomem *dst, const void *src, 62 int count) 63 { 64 __builtin_memcpy((void __force *) dst, src, count); 65 } 66 67 #endif /* CONFIG_MMU */ 68 69 #define ioport_map ioport_map 70 static inline void __iomem *ioport_map(unsigned long port, unsigned int nr) 71 { 72 return (void __iomem *) port; 73 } 74 75 #define ioport_unmap ioport_unmap 76 static inline void ioport_unmap(void __iomem *p) 77 { 78 } 79 80 #endif /* _KMAP_H */ 81