ckfwq/linux-3.0.4/arch/mips/include/asm/mach-loongson/ioremap.h

42 lines
1.2 KiB
C

/*
* include/asm-mips/mach-generic/ioremap.h
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#ifndef __ASM_MACH_LOONGSON_IOREMAP_H
#define __ASM_MACH_LOONGSON_IOREMAP_H
#include <linux/types.h>
/*
* Allow physical addresses to be fixed up to help peripherals located
* outside the low 32-bit range -- generic pass-through version.
*/
static inline phys_t fixup_bigphys_addr(phys_t phys_addr, phys_t size)
{
return phys_addr;
}
static inline void __iomem *plat_ioremap(phys_t offset, unsigned long size,
unsigned long flags)
{
/*gsc3280 1c000000~1fffffff, On-chip peripheral*/
if ((KSEGX(offset) == KSEG1) && (KSEGX(offset+size-1) == KSEG1) && (flags == _CACHE_UNCACHED))
return (void *)offset;
if ((KSEGX(offset) == KSEG0) && (KSEGX(offset+size-1) == KSEG0) && (flags == _CACHE_UNCACHED))
return (void *)KSEG1ADDR(offset);
return NULL;
}
static inline int plat_iounmap(const volatile void __iomem *addr)
{
return 0;
}
#endif /* __ASM_MACH_LOONGSON_IOREMAP_H */