io.h 1.8 KB
Newer Older
L
Ley Foon Tan 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13
/*
 * Copyright (C) 2014 Altera Corporation
 * Copyright (C) 2010 Tobias Klauser <tklauser@distanz.ch>
 * Copyright (C) 2004 Microtronix Datacom Ltd.
 *
 * This file is subject to the terms and conditions of the GNU General Public
 * License. See the file "COPYING" in the main directory of this archive
 * for more details.
 */

#ifndef _ASM_NIOS2_IO_H
#define _ASM_NIOS2_IO_H

L
Ley Foon Tan 已提交
14
#include <linux/types.h>
L
Ley Foon Tan 已提交
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
#include <asm/pgtable-bits.h>

/* PCI is not supported in nios2, set this to 0. */
#define IO_SPACE_LIMIT 0

#define readb_relaxed(addr)	readb(addr)
#define readw_relaxed(addr)	readw(addr)
#define readl_relaxed(addr)	readl(addr)

#define writeb_relaxed(x, addr)	writeb(x, addr)
#define writew_relaxed(x, addr)	writew(x, addr)
#define writel_relaxed(x, addr)	writel(x, addr)

extern void __iomem *__ioremap(unsigned long physaddr, unsigned long size,
			unsigned long cacheflag);
extern void __iounmap(void __iomem *addr);

static inline void __iomem *ioremap(unsigned long physaddr, unsigned long size)
{
	return __ioremap(physaddr, size, 0);
}

static inline void __iomem *ioremap_nocache(unsigned long physaddr,
						unsigned long size)
{
	return __ioremap(physaddr, size, 0);
}

static inline void iounmap(void __iomem *addr)
{
	__iounmap(addr);
}

48
#define ioremap_wc ioremap_nocache
49
#define ioremap_wt ioremap_nocache
50

L
Ley Foon Tan 已提交
51
/* Pages to physical address... */
52 53
#define page_to_phys(page)	virt_to_phys(page_to_virt(page))
#define page_to_bus(page)	page_to_virt(page)
L
Ley Foon Tan 已提交
54 55

/* Macros used for converting between virtual and physical mappings. */
56
#define phys_to_virt(vaddr)	\
L
Ley Foon Tan 已提交
57 58
	((void *)((unsigned long)(vaddr) | CONFIG_NIOS2_KERNEL_REGION_BASE))
/* Clear top 3 bits */
59
#define virt_to_phys(vaddr)	\
L
Ley Foon Tan 已提交
60 61
	((unsigned long)((unsigned long)(vaddr) & ~0xE0000000))

62 63
#include <asm-generic/io.h>

L
Ley Foon Tan 已提交
64
#endif /* _ASM_NIOS2_IO_H */