Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
0f2c15ce
Commit
0f2c15ce
authored
Nov 21, 2007
by
Paul Mundt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sh: Add onchip remap prototypes, kill old sh64 io.h.
Signed-off-by:
Paul Mundt
<
lethal@linux-sh.org
>
parent
1e1ed39f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
16 additions
and
197 deletions
+16
-197
include/asm-sh/io.h
include/asm-sh/io.h
+16
-1
include/asm-sh64/io.h
include/asm-sh64/io.h
+0
-196
No files found.
include/asm-sh/io.h
View file @
0f2c15ce
...
...
@@ -191,6 +191,8 @@ __BUILD_MEMORY_STRING(w, u16)
#define mmiowb() wmb()
/* synco on SH-4A, otherwise a nop */
#define IO_SPACE_LIMIT 0xffffffff
/*
* This function provides a method for the generic case where a board-specific
* ioport_map simply needs to return the port + some arbitrary port base.
...
...
@@ -226,6 +228,11 @@ static inline unsigned int ctrl_inl(unsigned long addr)
return
*
(
volatile
unsigned
long
*
)
addr
;
}
static
inline
unsigned
long
long
ctrl_inq
(
unsigned
long
addr
)
{
return
*
(
volatile
unsigned
long
long
*
)
addr
;
}
static
inline
void
ctrl_outb
(
unsigned
char
b
,
unsigned
long
addr
)
{
*
(
volatile
unsigned
char
*
)
addr
=
b
;
...
...
@@ -241,6 +248,11 @@ static inline void ctrl_outl(unsigned int b, unsigned long addr)
*
(
volatile
unsigned
long
*
)
addr
=
b
;
}
static
inline
void
ctrl_outq
(
unsigned
long
long
b
,
unsigned
long
addr
)
{
*
(
volatile
unsigned
long
long
*
)
addr
=
b
;
}
static
inline
void
ctrl_delay
(
void
)
{
#ifdef P2SEG
...
...
@@ -253,7 +265,10 @@ unsigned long long peek_real_address_q(unsigned long long addr);
unsigned
long
long
poke_real_address_q
(
unsigned
long
long
addr
,
unsigned
long
long
val
);
#define IO_SPACE_LIMIT 0xffffffff
/* arch/sh/mm/ioremap_64.c */
unsigned
long
onchip_remap
(
unsigned
long
addr
,
unsigned
long
size
,
const
char
*
name
);
extern
void
onchip_unmap
(
unsigned
long
vaddr
);
#if !defined(CONFIG_MMU)
#define virt_to_phys(address) ((unsigned long)(address))
...
...
include/asm-sh64/io.h
deleted
100644 → 0
View file @
1e1ed39f
#ifndef __ASM_SH64_IO_H
#define __ASM_SH64_IO_H
/*
* 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.
*
* include/asm-sh64/io.h
*
* Copyright (C) 2000, 2001 Paolo Alberelli
* Copyright (C) 2003 Paul Mundt
*
*/
/*
* Convention:
* read{b,w,l}/write{b,w,l} are for PCI,
* while in{b,w,l}/out{b,w,l} are for ISA
* These may (will) be platform specific function.
*
* In addition, we have
* ctrl_in{b,w,l}/ctrl_out{b,w,l} for SuperH specific I/O.
* which are processor specific. Address should be the result of
* onchip_remap();
*/
#include <linux/compiler.h>
#include <asm/cache.h>
#include <asm/system.h>
#include <asm/page.h>
#include <asm-generic/iomap.h>
/*
* Nothing overly special here.. instead of doing the same thing
* over and over again, we just define a set of sh64_in/out functions
* with an implicit size. The traditional read{b,w,l}/write{b,w,l}
* mess is wrapped to this, as are the SH-specific ctrl_in/out routines.
*/
static
inline
unsigned
char
sh64_in8
(
const
volatile
void
__iomem
*
addr
)
{
return
*
(
volatile
unsigned
char
__force
*
)
addr
;
}
static
inline
unsigned
short
sh64_in16
(
const
volatile
void
__iomem
*
addr
)
{
return
*
(
volatile
unsigned
short
__force
*
)
addr
;
}
static
inline
unsigned
int
sh64_in32
(
const
volatile
void
__iomem
*
addr
)
{
return
*
(
volatile
unsigned
int
__force
*
)
addr
;
}
static
inline
unsigned
long
long
sh64_in64
(
const
volatile
void
__iomem
*
addr
)
{
return
*
(
volatile
unsigned
long
long
__force
*
)
addr
;
}
static
inline
void
sh64_out8
(
unsigned
char
b
,
volatile
void
__iomem
*
addr
)
{
*
(
volatile
unsigned
char
__force
*
)
addr
=
b
;
wmb
();
}
static
inline
void
sh64_out16
(
unsigned
short
b
,
volatile
void
__iomem
*
addr
)
{
*
(
volatile
unsigned
short
__force
*
)
addr
=
b
;
wmb
();
}
static
inline
void
sh64_out32
(
unsigned
int
b
,
volatile
void
__iomem
*
addr
)
{
*
(
volatile
unsigned
int
__force
*
)
addr
=
b
;
wmb
();
}
static
inline
void
sh64_out64
(
unsigned
long
long
b
,
volatile
void
__iomem
*
addr
)
{
*
(
volatile
unsigned
long
long
__force
*
)
addr
=
b
;
wmb
();
}
#define readb(addr) sh64_in8(addr)
#define readw(addr) sh64_in16(addr)
#define readl(addr) sh64_in32(addr)
#define readb_relaxed(addr) sh64_in8(addr)
#define readw_relaxed(addr) sh64_in16(addr)
#define readl_relaxed(addr) sh64_in32(addr)
#define writeb(b, addr) sh64_out8(b, addr)
#define writew(b, addr) sh64_out16(b, addr)
#define writel(b, addr) sh64_out32(b, addr)
#define ctrl_inb(addr) sh64_in8(ioport_map(addr, 1))
#define ctrl_inw(addr) sh64_in16(ioport_map(addr, 2))
#define ctrl_inl(addr) sh64_in32(ioport_map(addr, 4))
#define ctrl_outb(b, addr) sh64_out8(b, ioport_map(addr, 1))
#define ctrl_outw(b, addr) sh64_out16(b, ioport_map(addr, 2))
#define ctrl_outl(b, addr) sh64_out32(b, ioport_map(addr, 4))
#define ioread8(addr) sh64_in8(addr)
#define ioread16(addr) sh64_in16(addr)
#define ioread32(addr) sh64_in32(addr)
#define iowrite8(b, addr) sh64_out8(b, addr)
#define iowrite16(b, addr) sh64_out16(b, addr)
#define iowrite32(b, addr) sh64_out32(b, addr)
#define inb(addr) ctrl_inb(addr)
#define inw(addr) ctrl_inw(addr)
#define inl(addr) ctrl_inl(addr)
#define outb(b, addr) ctrl_outb(b, addr)
#define outw(b, addr) ctrl_outw(b, addr)
#define outl(b, addr) ctrl_outl(b, addr)
void
outsw
(
unsigned
long
port
,
const
void
*
addr
,
unsigned
long
count
);
void
insw
(
unsigned
long
port
,
void
*
addr
,
unsigned
long
count
);
void
outsl
(
unsigned
long
port
,
const
void
*
addr
,
unsigned
long
count
);
void
insl
(
unsigned
long
port
,
void
*
addr
,
unsigned
long
count
);
#define inb_p(addr) inb(addr)
#define inw_p(addr) inw(addr)
#define inl_p(addr) inl(addr)
#define outb_p(x,addr) outb(x,addr)
#define outw_p(x,addr) outw(x,addr)
#define outl_p(x,addr) outl(x,addr)
#define __raw_readb readb
#define __raw_readw readw
#define __raw_readl readl
#define __raw_writeb writeb
#define __raw_writew writew
#define __raw_writel writel
void
memcpy_toio
(
void
__iomem
*
to
,
const
void
*
from
,
long
count
);
void
memcpy_fromio
(
void
*
to
,
void
__iomem
*
from
,
long
count
);
#define mmiowb()
#ifdef __KERNEL__
#ifdef CONFIG_SH_CAYMAN
extern
unsigned
long
smsc_superio_virt
;
#endif
#ifdef CONFIG_PCI
extern
unsigned
long
pciio_virt
;
#endif
#define IO_SPACE_LIMIT 0xffffffff
/*
* Change virtual addresses to physical addresses and vv.
* These are trivial on the 1:1 Linux/SuperH mapping
*/
static
inline
unsigned
long
virt_to_phys
(
volatile
void
*
address
)
{
return
__pa
(
address
);
}
static
inline
void
*
phys_to_virt
(
unsigned
long
address
)
{
return
__va
(
address
);
}
extern
void
*
__ioremap
(
unsigned
long
phys_addr
,
unsigned
long
size
,
unsigned
long
flags
);
static
inline
void
*
ioremap
(
unsigned
long
phys_addr
,
unsigned
long
size
)
{
return
__ioremap
(
phys_addr
,
size
,
1
);
}
static
inline
void
*
ioremap_nocache
(
unsigned
long
phys_addr
,
unsigned
long
size
)
{
return
__ioremap
(
phys_addr
,
size
,
0
);
}
extern
void
iounmap
(
void
*
addr
);
unsigned
long
onchip_remap
(
unsigned
long
addr
,
unsigned
long
size
,
const
char
*
name
);
extern
void
onchip_unmap
(
unsigned
long
vaddr
);
/*
* Convert a physical pointer to a virtual kernel pointer for /dev/mem
* access
*/
#define xlate_dev_mem_ptr(p) __va(p)
/*
* Convert a virtual cached pointer to an uncached pointer
*/
#define xlate_dev_kmem_ptr(p) p
#endif
/* __KERNEL__ */
#endif
/* __ASM_SH64_IO_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment