162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef _KMAP_H 362306a36Sopenharmony_ci#define _KMAP_H 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#ifdef CONFIG_MMU 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci/* Values for nocacheflag and cmode */ 862306a36Sopenharmony_ci#define IOMAP_FULL_CACHING 0 962306a36Sopenharmony_ci#define IOMAP_NOCACHE_SER 1 1062306a36Sopenharmony_ci#define IOMAP_NOCACHE_NONSER 2 1162306a36Sopenharmony_ci#define IOMAP_WRITETHROUGH 3 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci/* 1462306a36Sopenharmony_ci * These functions exported by arch/m68k/mm/kmap.c. 1562306a36Sopenharmony_ci * Only needed on MMU enabled systems. 1662306a36Sopenharmony_ci */ 1762306a36Sopenharmony_ciextern void __iomem *__ioremap(unsigned long physaddr, unsigned long size, 1862306a36Sopenharmony_ci int cacheflag); 1962306a36Sopenharmony_ci#define iounmap iounmap 2062306a36Sopenharmony_ciextern void iounmap(void __iomem *addr); 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci#define ioremap ioremap 2362306a36Sopenharmony_cistatic inline void __iomem *ioremap(unsigned long physaddr, unsigned long size) 2462306a36Sopenharmony_ci{ 2562306a36Sopenharmony_ci return __ioremap(physaddr, size, IOMAP_NOCACHE_SER); 2662306a36Sopenharmony_ci} 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci#define ioremap_uc ioremap 2962306a36Sopenharmony_ci#define ioremap_wt ioremap_wt 3062306a36Sopenharmony_cistatic inline void __iomem *ioremap_wt(unsigned long physaddr, 3162306a36Sopenharmony_ci unsigned long size) 3262306a36Sopenharmony_ci{ 3362306a36Sopenharmony_ci return __ioremap(physaddr, size, IOMAP_WRITETHROUGH); 3462306a36Sopenharmony_ci} 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci#define memset_io memset_io 3762306a36Sopenharmony_cistatic inline void memset_io(volatile void __iomem *addr, unsigned char val, 3862306a36Sopenharmony_ci int count) 3962306a36Sopenharmony_ci{ 4062306a36Sopenharmony_ci __builtin_memset((void __force *) addr, val, count); 4162306a36Sopenharmony_ci} 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci#define memcpy_fromio memcpy_fromio 4462306a36Sopenharmony_cistatic inline void memcpy_fromio(void *dst, const volatile void __iomem *src, 4562306a36Sopenharmony_ci int count) 4662306a36Sopenharmony_ci{ 4762306a36Sopenharmony_ci __builtin_memcpy(dst, (void __force *) src, count); 4862306a36Sopenharmony_ci} 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci#define memcpy_toio memcpy_toio 5162306a36Sopenharmony_cistatic inline void memcpy_toio(volatile void __iomem *dst, const void *src, 5262306a36Sopenharmony_ci int count) 5362306a36Sopenharmony_ci{ 5462306a36Sopenharmony_ci __builtin_memcpy((void __force *) dst, src, count); 5562306a36Sopenharmony_ci} 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci#endif /* CONFIG_MMU */ 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci#define ioport_map ioport_map 6062306a36Sopenharmony_cistatic inline void __iomem *ioport_map(unsigned long port, unsigned int nr) 6162306a36Sopenharmony_ci{ 6262306a36Sopenharmony_ci return (void __iomem *) port; 6362306a36Sopenharmony_ci} 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci#define ioport_unmap ioport_unmap 6662306a36Sopenharmony_cistatic inline void ioport_unmap(void __iomem *p) 6762306a36Sopenharmony_ci{ 6862306a36Sopenharmony_ci} 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci#endif /* _KMAP_H */ 71