Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 #include <linux/io.h>
0003 #include <ioremap.h>
0004 
0005 void __iomem *ioremap_prot(phys_addr_t offset, unsigned long size,
0006         unsigned long prot_val)
0007 {
0008     unsigned long flags = prot_val & _CACHE_MASK;
0009     u64 base = (flags == _CACHE_UNCACHED ? IO_BASE : UNCAC_BASE);
0010     void __iomem *addr;
0011 
0012     addr = plat_ioremap(offset, size, flags);
0013     if (!addr)
0014         addr = (void __iomem *)(unsigned long)(base + offset);
0015     return addr;
0016 }
0017 EXPORT_SYMBOL(ioremap_prot);
0018 
0019 void iounmap(const volatile void __iomem *addr)
0020 {
0021     plat_iounmap(addr);
0022 }
0023 EXPORT_SYMBOL(iounmap);