Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 36238
b: refs/heads/master
c: 36efc35
h: refs/heads/master
v: v3
  • Loading branch information
Paul Mundt committed Sep 27, 2006
1 parent 170f1f8 commit a45e092
Show file tree
Hide file tree
Showing 8 changed files with 69 additions and 82 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e8fb67f8e05bb1f4c07c3585967cfc6d44822ab0
refs/heads/master: 36efc35447154317f9ffc5163a1793b5f7ff3de1
2 changes: 1 addition & 1 deletion trunk/arch/sh/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@ endmenu

source "arch/sh/boards/renesas/hs7751rvoip/Kconfig"

#source "arch/sh/boards/renesas/rts7751r2d/Kconfig"
source "arch/sh/boards/renesas/rts7751r2d/Kconfig"

config SH_PCLK_FREQ
int "Peripheral clock frequency (in Hz)"
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sh/boards/renesas/hs7751rvoip/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Makefile for the HS7751RVoIP specific parts of the kernel
#

obj-y := setup.o io.o irq.o led.o
obj-y := setup.o io.o irq.o

obj-$(CONFIG_PCI) += pci.o

26 changes: 0 additions & 26 deletions trunk/arch/sh/boards/renesas/hs7751rvoip/led.c

This file was deleted.

12 changes: 12 additions & 0 deletions trunk/arch/sh/boards/renesas/rts7751r2d/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
if SH_RTS7751R2D

menu "RTS7751R2D options"

config RTS7751R2D_REV11
bool "RTS7751R2D Rev. 1.1 board support"
help
Selecting this option will support version rev. 1.1.
endmenu

endif

95 changes: 53 additions & 42 deletions trunk/arch/sh/boards/renesas/rts7751r2d/io.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,11 @@

#include <linux/kernel.h>
#include <linux/types.h>
#include <asm/io.h>
#include <asm/rts7751r2d/rts7751r2d.h>
#include <asm/addrspace.h>

#include <linux/module.h>
#include <linux/pci.h>
#include "../../../drivers/pci/pci-sh7751.h"
#include <asm/rts7751r2d/rts7751r2d.h>
#include <asm/io.h>
#include <asm/addrspace.h>

/*
* The 7751R RTS7751R2D uses the built-in PCI controller (PCIC)
Expand All @@ -35,10 +33,6 @@

#define PCI_IOMAP(adr) (PCI_IO_AREA + (adr & ~SH7751_PCIIOBR_MASK))

#define maybebadio(name,port) \
printk("bad PC-like io %s for port 0x%lx at 0x%08x\n", \
#name, (port), (__u32) __builtin_return_address(0))

static inline void delay(void)
{
ctrl_inw(0xa0000000);
Expand All @@ -52,7 +46,7 @@ static inline unsigned long port2adr(unsigned int port)
else
return (PA_AREA5_IO + 0x1000 + ((port-0x1f0) << 1));
else
maybebadio(port2adr, (unsigned long)port);
maybebadio((unsigned long)port);

return port;
}
Expand Down Expand Up @@ -138,27 +132,27 @@ unsigned char rts7751r2d_inb_p(unsigned long port)
unsigned short rts7751r2d_inw(unsigned long port)
{
if (CHECK_AX88796L_PORT(port))
maybebadio(inw, port);
maybebadio(port);
else if (PXSEG(port))
return *(volatile unsigned short *)port;
else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
return *(volatile unsigned short *)PCI_IOMAP(port);
else
maybebadio(inw, port);
maybebadio(port);

return 0;
}

unsigned int rts7751r2d_inl(unsigned long port)
{
if (CHECK_AX88796L_PORT(port))
maybebadio(inl, port);
maybebadio(port);
else if (PXSEG(port))
return *(volatile unsigned long *)port;
else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
return *(volatile unsigned long *)PCI_IOMAP(port);
else
maybebadio(inl, port);
maybebadio(port);

return 0;
}
Expand Down Expand Up @@ -191,51 +185,55 @@ void rts7751r2d_outb_p(unsigned char value, unsigned long port)
void rts7751r2d_outw(unsigned short value, unsigned long port)
{
if (CHECK_AX88796L_PORT(port))
maybebadio(outw, port);
maybebadio(port);
else if (PXSEG(port))
*(volatile unsigned short *)port = value;
else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
*(volatile unsigned short *)PCI_IOMAP(port) = value;
else
maybebadio(outw, port);
maybebadio(port);
}

void rts7751r2d_outl(unsigned int value, unsigned long port)
{
if (CHECK_AX88796L_PORT(port))
maybebadio(outl, port);
maybebadio(port);
else if (PXSEG(port))
*(volatile unsigned long *)port = value;
else if (CHECK_SH7751_PCIIO(port) || shifted_port(port))
*(volatile unsigned long *)PCI_IOMAP(port) = value;
else
maybebadio(outl, port);
maybebadio(port);
}

void rts7751r2d_insb(unsigned long port, void *addr, unsigned long count)
{
unsigned long a = (unsigned long)addr;
volatile __u8 *bp;
volatile __u16 *p;
unsigned char *s = addr;

if (CHECK_AX88796L_PORT(port)) {
p = (volatile unsigned short *)port88796l(port, 0);
while (count--) *s++ = *p & 0xff;
while (count--)
ctrl_outb(*p & 0xff, a++);
} else if (PXSEG(port))
while (count--) *s++ = *(volatile unsigned char *)port;
while (count--)
ctrl_outb(ctrl_inb(port), a++);
else if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {
bp = (__u8 *)PCI_IOMAP(port);
while (count--) *s++ = *bp;
while (count--)
ctrl_outb(*bp, a++);
} else {
p = (volatile unsigned short *)port2adr(port);
while (count--) *s++ = *p & 0xff;
while (count--)
ctrl_outb(*p & 0xff, a++);
}
}

void rts7751r2d_insw(unsigned long port, void *addr, unsigned long count)
{
unsigned long a = (unsigned long)addr;
volatile __u16 *p;
__u16 *s = addr;

if (CHECK_AX88796L_PORT(port))
p = (volatile unsigned short *)port88796l(port, 1);
Expand All @@ -245,46 +243,53 @@ void rts7751r2d_insw(unsigned long port, void *addr, unsigned long count)
p = (volatile unsigned short *)PCI_IOMAP(port);
else
p = (volatile unsigned short *)port2adr(port);
while (count--) *s++ = *p;
while (count--)
ctrl_outw(*p, a++);
}

void rts7751r2d_insl(unsigned long port, void *addr, unsigned long count)
{
if (CHECK_AX88796L_PORT(port))
maybebadio(insl, port);
maybebadio(port);
else if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {
volatile __u32 *p = (__u32 *)PCI_IOMAP(port);
__u32 *s = addr;
unsigned long a = (unsigned long)addr;

while (count--) *s++ = *p;
while (count--) {
ctrl_outl(ctrl_inl(PCI_IOMAP(port)), a);
a += 4;
}
} else
maybebadio(insl, port);
maybebadio(port);
}

void rts7751r2d_outsb(unsigned long port, const void *addr, unsigned long count)
{
unsigned long a = (unsigned long)addr;
volatile __u8 *bp;
volatile __u16 *p;
const __u8 *s = addr;

if (CHECK_AX88796L_PORT(port)) {
p = (volatile unsigned short *)port88796l(port, 0);
while (count--) *p = *s++;
while (count--)
*p = ctrl_inb(a++);
} else if (PXSEG(port))
while (count--) *(volatile unsigned char *)port = *s++;
while (count--)
ctrl_outb(a++, port);
else if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {
bp = (__u8 *)PCI_IOMAP(port);
while (count--) *bp = *s++;
while (count--)
*bp = ctrl_inb(a++);
} else {
p = (volatile unsigned short *)port2adr(port);
while (count--) *p = *s++;
while (count--)
*p = ctrl_inb(a++);
}
}

void rts7751r2d_outsw(unsigned long port, const void *addr, unsigned long count)
{
unsigned long a = (unsigned long)addr;
volatile __u16 *p;
const __u16 *s = addr;

if (CHECK_AX88796L_PORT(port))
p = (volatile unsigned short *)port88796l(port, 1);
Expand All @@ -294,20 +299,26 @@ void rts7751r2d_outsw(unsigned long port, const void *addr, unsigned long count)
p = (volatile unsigned short *)PCI_IOMAP(port);
else
p = (volatile unsigned short *)port2adr(port);
while (count--) *p = *s++;

while (count--) {
ctrl_outw(*p, a);
a += 2;
}
}

void rts7751r2d_outsl(unsigned long port, const void *addr, unsigned long count)
{
if (CHECK_AX88796L_PORT(port))
maybebadio(outsl, port);
maybebadio(port);
else if (CHECK_SH7751_PCIIO(port) || shifted_port(port)) {
volatile __u32 *p = (__u32 *)PCI_IOMAP(port);
const __u32 *s = addr;
unsigned long a = (unsigned long)addr;

while (count--) *p = *s++;
while (count--) {
ctrl_outl(ctrl_inl(a), PCI_IOMAP(port));
a += 4;
}
} else
maybebadio(outsl, port);
maybebadio(port);
}

void *rts7751r2d_ioremap(unsigned long offset, unsigned long size)
Expand Down
9 changes: 0 additions & 9 deletions trunk/arch/sh/boards/renesas/rts7751r2d/led.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,3 @@ void rts7751r2d_led(unsigned short value)
ctrl_outw(value, PA_OUTPORT);
}

void debug_led_disp(void)
{
unsigned short value;

value = (unsigned short)debug_counter++;
rts7751r2d_led(value);
if (value == 0xff)
debug_counter = 0;
}
3 changes: 1 addition & 2 deletions trunk/arch/sh/boards/renesas/rts7751r2d/mach.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
#include <asm/machvec.h>
#include <asm/rtc.h>
#include <asm/irq.h>
#include <asm/rts7751r2d/io.h>
#include <asm/mach/rts7751r2d.h>

extern void heartbeat_rts7751r2d(void);
extern void init_rts7751r2d_IRQ(void);
Expand Down Expand Up @@ -54,7 +54,6 @@ struct sh_machine_vector mv_rts7751r2d __initmv = {
.mv_outsl = rts7751r2d_outsl,

.mv_ioremap = rts7751r2d_ioremap,
.mv_isa_port2addr = rts7751r2d_isa_port2addr,
.mv_init_irq = init_rts7751r2d_IRQ,
#ifdef CONFIG_HEARTBEAT
.mv_heartbeat = heartbeat_rts7751r2d,
Expand Down

0 comments on commit a45e092

Please sign in to comment.