~ubuntu-branches/ubuntu/saucy/u-boot/saucy

« back to all changes in this revision

Viewing changes to arch/openrisc/include/asm/io.h

  • Committer: Package Import Robot
  • Author(s): Clint Adams
  • Date: 2012-05-01 18:07:19 UTC
  • mfrom: (16.1.23 sid)
  • Revision ID: package-import@ubuntu.com-20120501180719-rjntk3287im4a0ns
Tags: 2012.04.01-1
* New upstream version.
  - Update mipsel-native-endianness.diff.
  - Update no-error-on-set-but-unused-variables.diff (partially merged).
  - Drop kirkwood_spi-irq_mask.diff (merged).
  - Drop kirkwood-disable-l2c.diff (merged).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * (C) Copyright 2011, Julius Baxter <julius@opencores.org>
 
3
 *
 
4
 * This program is free software; you can redistribute it and/or
 
5
 * modify it under the terms of the GNU General Public License as
 
6
 * published by the Free Software Foundation; either version 2 of
 
7
 * the License, or (at your option) any later version.
 
8
 *
 
9
 * This program is distributed in the hope that it will be useful,
 
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
 * GNU General Public License for more details.
 
13
 *
 
14
 * You should have received a copy of the GNU General Public License
 
15
 * along with this program; if not, write to the Free Software
 
16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 
17
 * MA 02111-1307 USA
 
18
 */
 
19
 
 
20
#ifndef __ASM_OPENRISC_IO_H
 
21
#define __ASM_OPENRISC_IO_H
 
22
 
 
23
/*
 
24
 * Given a physical address and a length, return a virtual address
 
25
 * that can be used to access the memory range with the caching
 
26
 * properties specified by "flags".
 
27
 */
 
28
#define MAP_NOCACHE     (0)
 
29
#define MAP_WRCOMBINE   (0)
 
30
#define MAP_WRBACK      (0)
 
31
#define MAP_WRTHROUGH   (0)
 
32
 
 
33
static inline void *
 
34
map_physmem(phys_addr_t paddr, unsigned long len, unsigned long flags)
 
35
{
 
36
        return (void *)paddr;
 
37
}
 
38
 
 
39
/*
 
40
 * Take down a mapping set up by map_physmem().
 
41
 */
 
42
static inline void unmap_physmem(void *vaddr, unsigned long flags)
 
43
{
 
44
 
 
45
}
 
46
 
 
47
/*
 
48
 * Change virtual addresses to physical addresses
 
49
 */
 
50
static inline phys_addr_t virt_to_phys(void *vaddr)
 
51
{
 
52
        return (phys_addr_t)(vaddr);
 
53
}
 
54
 
 
55
 
 
56
/*
 
57
 * readX/writeX() are used to access memory mapped devices. On some
 
58
 * architectures the memory mapped IO stuff needs to be accessed
 
59
 * differently. On the openrisc architecture, we just read/write the
 
60
 * memory location directly.
 
61
 */
 
62
#define readb(addr) (*(volatile unsigned char *) (addr))
 
63
#define readw(addr) (*(volatile unsigned short *) (addr))
 
64
#define readl(addr) (*(volatile unsigned int *) (addr))
 
65
#define __raw_readb readb
 
66
#define __raw_readw readw
 
67
#define __raw_readl readl
 
68
 
 
69
#define writeb(b, addr) ((*(volatile unsigned char *) (addr)) = (b))
 
70
#define writew(b, addr) ((*(volatile unsigned short *) (addr)) = (b))
 
71
#define writel(b, addr) ((*(volatile unsigned int *) (addr)) = (b))
 
72
#define __raw_writeb writeb
 
73
#define __raw_writew writew
 
74
#define __raw_writel writel
 
75
 
 
76
#define memset_io(a, b, c)      memset((void *)(a), (b), (c))
 
77
#define memcpy_fromio(a, b, c)  memcpy((a), (void *)(b), (c))
 
78
#define memcpy_toio(a, b, c)    memcpy((void *)(a), (b), (c))
 
79
 
 
80
/*
 
81
 * Again, OpenRISC does not require mem IO specific function.
 
82
 */
 
83
 
 
84
 
 
85
#define IO_BASE                 0x0
 
86
#define IO_SPACE_LIMIT          0xffffffff
 
87
 
 
88
#define inb(port)               readb((port + IO_BASE))
 
89
#define outb(value, port)       writeb((value), (port + IO_BASE))
 
90
#define inb_p(port)             inb((port))
 
91
#define outb_p(value, port)     outb((value), (port))
 
92
 
 
93
/*
 
94
 * Convert a physical pointer to a virtual kernel pointer for /dev/mem
 
95
 * access
 
96
 */
 
97
#define xlate_dev_mem_ptr(p)    __va(p)
 
98
 
 
99
/*
 
100
 * Convert a virtual cached pointer to an uncached pointer
 
101
 */
 
102
#define xlate_dev_kmem_ptr(p)   p
 
103
 
 
104
#define ioread8(addr)           readb(addr)
 
105
#define ioread16(addr)          readw(addr)
 
106
#define ioread32(addr)          readl(addr)
 
107
 
 
108
#define iowrite8(v, addr)       writeb((v), (addr))
 
109
#define iowrite16(v, addr)      writew((v), (addr))
 
110
#define iowrite32(v, addr)      writel((v), (addr))
 
111
 
 
112
#endif