Path: blob/master/arch/arm/mach-kirkwood/include/mach/io.h
10820 views
/*1* arch/arm/mach-kirkwood/include/mach/io.h2*3* This file is licensed under the terms of the GNU General Public4* License version 2. This program is licensed "as is" without any5* warranty of any kind, whether express or implied.6*/78#ifndef __ASM_ARCH_IO_H9#define __ASM_ARCH_IO_H1011#include "kirkwood.h"1213#define IO_SPACE_LIMIT 0xffffffff1415static inline void __iomem *__io(unsigned long addr)16{17return (void __iomem *)((addr - KIRKWOOD_PCIE_IO_BUS_BASE)18+ KIRKWOOD_PCIE_IO_VIRT_BASE);19}2021static inline void __iomem *22__arch_ioremap(unsigned long paddr, size_t size, unsigned int mtype)23{24void __iomem *retval;25unsigned long offs = paddr - KIRKWOOD_REGS_PHYS_BASE;26if (mtype == MT_DEVICE && size && offs < KIRKWOOD_REGS_SIZE &&27size <= KIRKWOOD_REGS_SIZE && offs + size <= KIRKWOOD_REGS_SIZE) {28retval = (void __iomem *)KIRKWOOD_REGS_VIRT_BASE + offs;29} else {30retval = __arm_ioremap(paddr, size, mtype);31}3233return retval;34}3536static inline void37__arch_iounmap(void __iomem *addr)38{39if (addr < (void __iomem *)KIRKWOOD_REGS_VIRT_BASE ||40addr >= (void __iomem *)(KIRKWOOD_REGS_VIRT_BASE + KIRKWOOD_REGS_SIZE))41__iounmap(addr);42}4344#define __arch_ioremap __arch_ioremap45#define __arch_iounmap __arch_iounmap46#define __io(a) __io(a)47#define __mem_pci(a) (a)484950#endif515253