sh: rts7751r2d board updates.
This tidies up some of the rts7751r2d mess and gets it booting again. Update the defconfig, too. Signed-off-by: Masayuki Hosokawa <hosokawa@ace-jp.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
e65fa9f59e
commit
9c57548f17
12 changed files with 397 additions and 524 deletions
|
@ -2,4 +2,4 @@
|
|||
# Makefile for the RTS7751R2D specific parts of the kernel
|
||||
#
|
||||
|
||||
obj-y := setup.o io.o irq.o
|
||||
obj-y := setup.o irq.o
|
||||
|
|
|
@ -1,302 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2001 Ian da Silva, Jeremy Siegel
|
||||
* Based largely on io_se.c.
|
||||
*
|
||||
* I/O routine for Renesas Technology sales RTS7751R2D.
|
||||
*
|
||||
* Initial version only to support LAN access; some
|
||||
* placeholder code from io_rts7751r2d.c left in with the
|
||||
* expectation of later SuperIO and PCMCIA access.
|
||||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/io.h>
|
||||
#include <asm/rts7751r2d.h>
|
||||
#include <asm/addrspace.h>
|
||||
|
||||
/*
|
||||
* The 7751R RTS7751R2D uses the built-in PCI controller (PCIC)
|
||||
* of the 7751R processor, and has a SuperIO accessible via the PCI.
|
||||
* The board also includes a PCMCIA controller on its memory bus,
|
||||
* like the other Solution Engine boards.
|
||||
*/
|
||||
|
||||
static inline unsigned long port2adr(unsigned int port)
|
||||
{
|
||||
if ((0x1f0 <= port && port < 0x1f8) || port == 0x3f6)
|
||||
if (port == 0x3f6)
|
||||
return (PA_AREA5_IO + 0x80c);
|
||||
else
|
||||
return (PA_AREA5_IO + 0x1000 + ((port-0x1f0) << 1));
|
||||
else
|
||||
maybebadio((unsigned long)port);
|
||||
|
||||
return port;
|
||||
}
|
||||
|
||||
static inline unsigned long port88796l(unsigned int port, int flag)
|
||||
{
|
||||
unsigned long addr;
|
||||
|
||||
if (flag)
|
||||
addr = PA_AX88796L + ((port - AX88796L_IO_BASE) << 1);
|
||||
else
|
||||
addr = PA_AX88796L + ((port - AX88796L_IO_BASE) << 1) + 0x1000;
|
||||
|
||||
return addr;
|
||||
}
|
||||
|
||||
/* The 7751R RTS7751R2D seems to have everything hooked */
|
||||
/* up pretty normally (nothing on high-bytes only...) so this */
|
||||
/* shouldn't be needed */
|
||||
static inline int shifted_port(unsigned long port)
|
||||
{
|
||||
/* For IDE registers, value is not shifted */
|
||||
if ((0x1f0 <= port && port < 0x1f8) || port == 0x3f6)
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
|
||||
#if defined(CONFIG_NE2000) || defined(CONFIG_NE2000_MODULE)
|
||||
#define CHECK_AX88796L_PORT(port) \
|
||||
((port >= AX88796L_IO_BASE) && (port < (AX88796L_IO_BASE+0x20)))
|
||||
#else
|
||||
#define CHECK_AX88796L_PORT(port) (0)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* General outline: remap really low stuff [eventually] to SuperIO,
|
||||
* stuff in PCI IO space (at or above window at pci.h:PCIBIOS_MIN_IO)
|
||||
* is mapped through the PCI IO window. Stuff with high bits (PXSEG)
|
||||
* should be way beyond the window, and is used w/o translation for
|
||||
* compatibility.
|
||||
*/
|
||||
unsigned char rts7751r2d_inb(unsigned long port)
|
||||
{
|
||||
if (CHECK_AX88796L_PORT(port))
|
||||
return (*(volatile unsigned short *)port88796l(port, 0)) & 0xff;
|
||||
else if (PXSEG(port))
|
||||
return *(volatile unsigned char *)port;
|
||||
else if (is_pci_ioaddr(port) || shifted_port(port))
|
||||
return *(volatile unsigned char *)pci_ioaddr(port);
|
||||
else
|
||||
return (*(volatile unsigned short *)port2adr(port) & 0xff);
|
||||
}
|
||||
|
||||
unsigned char rts7751r2d_inb_p(unsigned long port)
|
||||
{
|
||||
unsigned char v;
|
||||
|
||||
if (CHECK_AX88796L_PORT(port))
|
||||
v = (*(volatile unsigned short *)port88796l(port, 0)) & 0xff;
|
||||
else if (PXSEG(port))
|
||||
v = *(volatile unsigned char *)port;
|
||||
else if (is_pci_ioaddr(port) || shifted_port(port))
|
||||
v = *(volatile unsigned char *)pci_ioaddr(port);
|
||||
else
|
||||
v = (*(volatile unsigned short *)port2adr(port) & 0xff);
|
||||
|
||||
ctrl_delay();
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
unsigned short rts7751r2d_inw(unsigned long port)
|
||||
{
|
||||
if (CHECK_AX88796L_PORT(port))
|
||||
maybebadio(port);
|
||||
else if (PXSEG(port))
|
||||
return *(volatile unsigned short *)port;
|
||||
else if (is_pci_ioaddr(port) || shifted_port(port))
|
||||
return *(volatile unsigned short *)pci_ioaddr(port);
|
||||
else
|
||||
maybebadio(port);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned int rts7751r2d_inl(unsigned long port)
|
||||
{
|
||||
if (CHECK_AX88796L_PORT(port))
|
||||
maybebadio(port);
|
||||
else if (PXSEG(port))
|
||||
return *(volatile unsigned long *)port;
|
||||
else if (is_pci_ioaddr(port) || shifted_port(port))
|
||||
return *(volatile unsigned long *)pci_ioaddr(port);
|
||||
else
|
||||
maybebadio(port);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void rts7751r2d_outb(unsigned char value, unsigned long port)
|
||||
{
|
||||
if (CHECK_AX88796L_PORT(port))
|
||||
*((volatile unsigned short *)port88796l(port, 0)) = value;
|
||||
else if (PXSEG(port))
|
||||
*(volatile unsigned char *)port = value;
|
||||
else if (is_pci_ioaddr(port) || shifted_port(port))
|
||||
*(volatile unsigned char *)pci_ioaddr(port) = value;
|
||||
else
|
||||
*(volatile unsigned short *)port2adr(port) = value;
|
||||
}
|
||||
|
||||
void rts7751r2d_outb_p(unsigned char value, unsigned long port)
|
||||
{
|
||||
if (CHECK_AX88796L_PORT(port))
|
||||
*((volatile unsigned short *)port88796l(port, 0)) = value;
|
||||
else if (PXSEG(port))
|
||||
*(volatile unsigned char *)port = value;
|
||||
else if (is_pci_ioaddr(port) || shifted_port(port))
|
||||
*(volatile unsigned char *)pci_ioaddr(port) = value;
|
||||
else
|
||||
*(volatile unsigned short *)port2adr(port) = value;
|
||||
|
||||
ctrl_delay();
|
||||
}
|
||||
|
||||
void rts7751r2d_outw(unsigned short value, unsigned long port)
|
||||
{
|
||||
if (CHECK_AX88796L_PORT(port))
|
||||
maybebadio(port);
|
||||
else if (PXSEG(port))
|
||||
*(volatile unsigned short *)port = value;
|
||||
else if (is_pci_ioaddr(port) || shifted_port(port))
|
||||
*(volatile unsigned short *)pci_ioaddr(port) = value;
|
||||
else
|
||||
maybebadio(port);
|
||||
}
|
||||
|
||||
void rts7751r2d_outl(unsigned int value, unsigned long port)
|
||||
{
|
||||
if (CHECK_AX88796L_PORT(port))
|
||||
maybebadio(port);
|
||||
else if (PXSEG(port))
|
||||
*(volatile unsigned long *)port = value;
|
||||
else if (is_pci_ioaddr(port) || shifted_port(port))
|
||||
*(volatile unsigned long *)pci_ioaddr(port) = value;
|
||||
else
|
||||
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;
|
||||
|
||||
if (CHECK_AX88796L_PORT(port)) {
|
||||
p = (volatile unsigned short *)port88796l(port, 0);
|
||||
while (count--)
|
||||
ctrl_outb(*p & 0xff, a++);
|
||||
} else if (PXSEG(port))
|
||||
while (count--)
|
||||
ctrl_outb(ctrl_inb(port), a++);
|
||||
else if (is_pci_ioaddr(port) || shifted_port(port)) {
|
||||
bp = (__u8 *)pci_ioaddr(port);
|
||||
while (count--)
|
||||
ctrl_outb(*bp, a++);
|
||||
} else {
|
||||
p = (volatile unsigned short *)port2adr(port);
|
||||
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;
|
||||
|
||||
if (CHECK_AX88796L_PORT(port))
|
||||
p = (volatile unsigned short *)port88796l(port, 1);
|
||||
else if (PXSEG(port))
|
||||
p = (volatile unsigned short *)port;
|
||||
else if (is_pci_ioaddr(port) || shifted_port(port))
|
||||
p = (volatile unsigned short *)pci_ioaddr(port);
|
||||
else
|
||||
p = (volatile unsigned short *)port2adr(port);
|
||||
while (count--)
|
||||
ctrl_outw(*p, a++);
|
||||
}
|
||||
|
||||
void rts7751r2d_insl(unsigned long port, void *addr, unsigned long count)
|
||||
{
|
||||
if (CHECK_AX88796L_PORT(port))
|
||||
maybebadio(port);
|
||||
else if (is_pci_ioaddr(port) || shifted_port(port)) {
|
||||
unsigned long a = (unsigned long)addr;
|
||||
|
||||
while (count--) {
|
||||
ctrl_outl(ctrl_inl(pci_ioaddr(port)), a);
|
||||
a += 4;
|
||||
}
|
||||
} else
|
||||
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;
|
||||
|
||||
if (CHECK_AX88796L_PORT(port)) {
|
||||
p = (volatile unsigned short *)port88796l(port, 0);
|
||||
while (count--)
|
||||
*p = ctrl_inb(a++);
|
||||
} else if (PXSEG(port))
|
||||
while (count--)
|
||||
ctrl_outb(a++, port);
|
||||
else if (is_pci_ioaddr(port) || shifted_port(port)) {
|
||||
bp = (__u8 *)pci_ioaddr(port);
|
||||
while (count--)
|
||||
*bp = ctrl_inb(a++);
|
||||
} else {
|
||||
p = (volatile unsigned short *)port2adr(port);
|
||||
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;
|
||||
|
||||
if (CHECK_AX88796L_PORT(port))
|
||||
p = (volatile unsigned short *)port88796l(port, 1);
|
||||
else if (PXSEG(port))
|
||||
p = (volatile unsigned short *)port;
|
||||
else if (is_pci_ioaddr(port) || shifted_port(port))
|
||||
p = (volatile unsigned short *)pci_ioaddr(port);
|
||||
else
|
||||
p = (volatile unsigned short *)port2adr(port);
|
||||
|
||||
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(port);
|
||||
else if (is_pci_ioaddr(port) || shifted_port(port)) {
|
||||
unsigned long a = (unsigned long)addr;
|
||||
|
||||
while (count--) {
|
||||
ctrl_outl(ctrl_inl(a), pci_ioaddr(port));
|
||||
a += 4;
|
||||
}
|
||||
} else
|
||||
maybebadio(port);
|
||||
}
|
||||
|
||||
unsigned long rts7751r2d_isa_port2addr(unsigned long offset)
|
||||
{
|
||||
return port2adr(offset);
|
||||
}
|
|
@ -9,7 +9,9 @@
|
|||
* Atom Create Engineering Co., Ltd. 2002.
|
||||
*/
|
||||
#include <linux/init.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/io.h>
|
||||
#include <asm/rts7751r2d.h>
|
||||
|
||||
|
@ -22,79 +24,31 @@ static int mask_pos[] = {6, 11, 9, 8, 12, 10, 5, 4, 7, 14, 13, 0, 0, 0, 0};
|
|||
extern int voyagergx_irq_demux(int irq);
|
||||
extern void setup_voyagergx_irq(void);
|
||||
|
||||
static void enable_rts7751r2d_irq(unsigned int irq);
|
||||
static void disable_rts7751r2d_irq(unsigned int irq);
|
||||
|
||||
/* shutdown is same as "disable" */
|
||||
#define shutdown_rts7751r2d_irq disable_rts7751r2d_irq
|
||||
|
||||
static void ack_rts7751r2d_irq(unsigned int irq);
|
||||
static void end_rts7751r2d_irq(unsigned int irq);
|
||||
|
||||
static unsigned int startup_rts7751r2d_irq(unsigned int irq)
|
||||
static void enable_rts7751r2d_irq(unsigned int irq)
|
||||
{
|
||||
enable_rts7751r2d_irq(irq);
|
||||
return 0; /* never anything pending */
|
||||
/* Set priority in IPR back to original value */
|
||||
ctrl_outw(ctrl_inw(IRLCNTR1) | (1 << mask_pos[irq]), IRLCNTR1);
|
||||
}
|
||||
|
||||
static void disable_rts7751r2d_irq(unsigned int irq)
|
||||
{
|
||||
unsigned short val;
|
||||
unsigned short mask = 0xffff ^ (0x0001 << mask_pos[irq]);
|
||||
|
||||
/* Set the priority in IPR to 0 */
|
||||
val = ctrl_inw(IRLCNTR1);
|
||||
val &= mask;
|
||||
ctrl_outw(val, IRLCNTR1);
|
||||
}
|
||||
|
||||
static void enable_rts7751r2d_irq(unsigned int irq)
|
||||
{
|
||||
unsigned short val;
|
||||
unsigned short value = (0x0001 << mask_pos[irq]);
|
||||
|
||||
/* Set priority in IPR back to original value */
|
||||
val = ctrl_inw(IRLCNTR1);
|
||||
val |= value;
|
||||
ctrl_outw(val, IRLCNTR1);
|
||||
ctrl_outw(ctrl_inw(IRLCNTR1) & (0xffff ^ (1 << mask_pos[irq])),
|
||||
IRLCNTR1);
|
||||
}
|
||||
|
||||
int rts7751r2d_irq_demux(int irq)
|
||||
{
|
||||
int demux_irq;
|
||||
|
||||
demux_irq = voyagergx_irq_demux(irq);
|
||||
return demux_irq;
|
||||
return voyagergx_irq_demux(irq);
|
||||
}
|
||||
|
||||
static void ack_rts7751r2d_irq(unsigned int irq)
|
||||
{
|
||||
disable_rts7751r2d_irq(irq);
|
||||
}
|
||||
|
||||
static void end_rts7751r2d_irq(unsigned int irq)
|
||||
{
|
||||
if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
|
||||
enable_rts7751r2d_irq(irq);
|
||||
}
|
||||
|
||||
static struct hw_interrupt_type rts7751r2d_irq_type = {
|
||||
.typename = "RTS7751R2D IRQ",
|
||||
.startup = startup_rts7751r2d_irq,
|
||||
.shutdown = shutdown_rts7751r2d_irq,
|
||||
.enable = enable_rts7751r2d_irq,
|
||||
.disable = disable_rts7751r2d_irq,
|
||||
.ack = ack_rts7751r2d_irq,
|
||||
.end = end_rts7751r2d_irq,
|
||||
static struct irq_chip rts7751r2d_irq_chip __read_mostly = {
|
||||
.name = "rts7751r2d",
|
||||
.mask = disable_rts7751r2d_irq,
|
||||
.unmask = enable_rts7751r2d_irq,
|
||||
.mask_ack = disable_rts7751r2d_irq,
|
||||
};
|
||||
|
||||
static void make_rts7751r2d_irq(unsigned int irq)
|
||||
{
|
||||
disable_irq_nosync(irq);
|
||||
irq_desc[irq].chip = &rts7751r2d_irq_type;
|
||||
disable_rts7751r2d_irq(irq);
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize IRQ setting
|
||||
*/
|
||||
|
@ -119,8 +73,12 @@ void __init init_rts7751r2d_IRQ(void)
|
|||
* IRL14=Extention #3
|
||||
*/
|
||||
|
||||
for (i=0; i<15; i++)
|
||||
make_rts7751r2d_irq(i);
|
||||
for (i=0; i<15; i++) {
|
||||
disable_irq_nosync(i);
|
||||
set_irq_chip_and_handler_name(i, &rts7751r2d_irq_chip,
|
||||
handle_level_irq, "level");
|
||||
enable_rts7751r2d_irq(i);
|
||||
}
|
||||
|
||||
setup_voyagergx_irq();
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
* Renesas Technology Sales RTS7751R2D Support.
|
||||
*
|
||||
* Copyright (C) 2002 Atom Create Engineering Co., Ltd.
|
||||
* Copyright (C) 2004 - 2006 Paul Mundt
|
||||
* Copyright (C) 2002 - 2006 Atom Create Engineering Co., Ltd.
|
||||
* Copyright (C) 2004 - 2007 Paul Mundt
|
||||
*
|
||||
* 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
|
||||
|
@ -10,33 +10,13 @@
|
|||
*/
|
||||
#include <linux/init.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pata_platform.h>
|
||||
#include <linux/serial_8250.h>
|
||||
#include <linux/pm.h>
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/mach/rts7751r2d.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/rts7751r2d.h>
|
||||
#include <asm/voyagergx.h>
|
||||
|
||||
extern void heartbeat_rts7751r2d(void);
|
||||
extern void init_rts7751r2d_IRQ(void);
|
||||
extern int rts7751r2d_irq_demux(int irq);
|
||||
|
||||
extern void *voyagergx_consistent_alloc(struct device *, size_t, dma_addr_t *, gfp_t);
|
||||
extern int voyagergx_consistent_free(struct device *, size_t, void *, dma_addr_t);
|
||||
|
||||
static struct plat_serial8250_port uart_platform_data[] = {
|
||||
{
|
||||
.membase = (void *)VOYAGER_UART_BASE,
|
||||
.mapbase = VOYAGER_UART_BASE,
|
||||
.iotype = UPIO_MEM,
|
||||
.irq = VOYAGER_UART0_IRQ,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.regshift = 2,
|
||||
.uartclk = (9600 * 16),
|
||||
}, {
|
||||
.flags = 0,
|
||||
},
|
||||
};
|
||||
#include <asm/io.h>
|
||||
|
||||
static void __init voyagergx_serial_init(void)
|
||||
{
|
||||
|
@ -45,25 +25,72 @@ static void __init voyagergx_serial_init(void)
|
|||
/*
|
||||
* GPIO Control
|
||||
*/
|
||||
val = inl(GPIO_MUX_HIGH);
|
||||
val = readl((void __iomem *)GPIO_MUX_HIGH);
|
||||
val |= 0x00001fe0;
|
||||
outl(val, GPIO_MUX_HIGH);
|
||||
writel(val, (void __iomem *)GPIO_MUX_HIGH);
|
||||
|
||||
/*
|
||||
* Power Mode Gate
|
||||
*/
|
||||
val = inl(POWER_MODE0_GATE);
|
||||
val = readl((void __iomem *)POWER_MODE0_GATE);
|
||||
val |= (POWER_MODE0_GATE_U0 | POWER_MODE0_GATE_U1);
|
||||
outl(val, POWER_MODE0_GATE);
|
||||
writel(val, (void __iomem *)POWER_MODE0_GATE);
|
||||
|
||||
val = inl(POWER_MODE1_GATE);
|
||||
val = readl((void __iomem *)POWER_MODE1_GATE);
|
||||
val |= (POWER_MODE1_GATE_U0 | POWER_MODE1_GATE_U1);
|
||||
outl(val, POWER_MODE1_GATE);
|
||||
writel(val, (void __iomem *)POWER_MODE1_GATE);
|
||||
}
|
||||
|
||||
static struct resource cf_ide_resources[] = {
|
||||
[0] = {
|
||||
.start = PA_AREA5_IO + 0x1000,
|
||||
.end = PA_AREA5_IO + 0x1000 + 0x08 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.start = PA_AREA5_IO + 0x80c,
|
||||
.end = PA_AREA5_IO + 0x80c + 0x16 - 1,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[2] = {
|
||||
#ifdef CONFIG_RTS7751R2D_REV11
|
||||
.start = 1,
|
||||
#else
|
||||
.start = 2,
|
||||
#endif
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
static struct pata_platform_info pata_info = {
|
||||
.ioport_shift = 1,
|
||||
};
|
||||
|
||||
static struct platform_device cf_ide_device = {
|
||||
.name = "pata_platform",
|
||||
.id = -1,
|
||||
.num_resources = ARRAY_SIZE(cf_ide_resources),
|
||||
.resource = cf_ide_resources,
|
||||
.dev = {
|
||||
.platform_data = &pata_info,
|
||||
},
|
||||
};
|
||||
|
||||
static struct plat_serial8250_port uart_platform_data[] = {
|
||||
{
|
||||
.membase = (void __iomem *)VOYAGER_UART_BASE,
|
||||
.mapbase = VOYAGER_UART_BASE,
|
||||
.iotype = UPIO_MEM,
|
||||
.irq = VOYAGER_UART0_IRQ,
|
||||
.flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
|
||||
.regshift = 2,
|
||||
.uartclk = (9600 * 16),
|
||||
}
|
||||
};
|
||||
|
||||
static struct platform_device uart_device = {
|
||||
.name = "serial8250",
|
||||
.id = -1,
|
||||
.id = PLAT8250_DEV_PLATFORM,
|
||||
.dev = {
|
||||
.platform_data = uart_platform_data,
|
||||
},
|
||||
|
@ -87,6 +114,7 @@ static struct platform_device heartbeat_device = {
|
|||
static struct platform_device *rts7751r2d_devices[] __initdata = {
|
||||
&uart_device,
|
||||
&heartbeat_device,
|
||||
&cf_ide_device,
|
||||
};
|
||||
|
||||
static int __init rts7751r2d_devices_setup(void)
|
||||
|
@ -94,6 +122,7 @@ static int __init rts7751r2d_devices_setup(void)
|
|||
return platform_add_devices(rts7751r2d_devices,
|
||||
ARRAY_SIZE(rts7751r2d_devices));
|
||||
}
|
||||
__initcall(rts7751r2d_devices_setup);
|
||||
|
||||
static void rts7751r2d_power_off(void)
|
||||
{
|
||||
|
@ -105,14 +134,17 @@ static void rts7751r2d_power_off(void)
|
|||
*/
|
||||
static void __init rts7751r2d_setup(char **cmdline_p)
|
||||
{
|
||||
device_initcall(rts7751r2d_devices_setup);
|
||||
u16 ver = ctrl_inw(PA_VERREG);
|
||||
|
||||
printk(KERN_INFO "Renesas Technology Sales RTS7751R2D support.\n");
|
||||
|
||||
printk(KERN_INFO "FPGA version:%d (revision:%d)\n",
|
||||
(ver >> 4) & 0xf, ver & 0xf);
|
||||
|
||||
ctrl_outw(0x0000, PA_OUTPORT);
|
||||
pm_power_off = rts7751r2d_power_off;
|
||||
|
||||
voyagergx_serial_init();
|
||||
|
||||
printk(KERN_INFO "Renesas Technology Sales RTS7751R2D support.\n");
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -123,27 +155,6 @@ struct sh_machine_vector mv_rts7751r2d __initmv = {
|
|||
.mv_setup = rts7751r2d_setup,
|
||||
.mv_nr_irqs = 72,
|
||||
|
||||
.mv_inb = rts7751r2d_inb,
|
||||
.mv_inw = rts7751r2d_inw,
|
||||
.mv_inl = rts7751r2d_inl,
|
||||
.mv_outb = rts7751r2d_outb,
|
||||
.mv_outw = rts7751r2d_outw,
|
||||
.mv_outl = rts7751r2d_outl,
|
||||
|
||||
.mv_inb_p = rts7751r2d_inb_p,
|
||||
.mv_inw_p = rts7751r2d_inw,
|
||||
.mv_inl_p = rts7751r2d_inl,
|
||||
.mv_outb_p = rts7751r2d_outb_p,
|
||||
.mv_outw_p = rts7751r2d_outw,
|
||||
.mv_outl_p = rts7751r2d_outl,
|
||||
|
||||
.mv_insb = rts7751r2d_insb,
|
||||
.mv_insw = rts7751r2d_insw,
|
||||
.mv_insl = rts7751r2d_insl,
|
||||
.mv_outsb = rts7751r2d_outsb,
|
||||
.mv_outsw = rts7751r2d_outsw,
|
||||
.mv_outsl = rts7751r2d_outsl,
|
||||
|
||||
.mv_init_irq = init_rts7751r2d_IRQ,
|
||||
.mv_irq_demux = rts7751r2d_irq_demux,
|
||||
|
||||
|
|
|
@ -28,21 +28,21 @@ static void disable_voyagergx_irq(unsigned int irq)
|
|||
unsigned long val;
|
||||
unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);
|
||||
|
||||
pr_debug("disable_voyagergx_irq(%d): mask=%lx\n", irq, mask);
|
||||
val = inl(VOYAGER_INT_MASK);
|
||||
val &= ~mask;
|
||||
outl(val, VOYAGER_INT_MASK);
|
||||
pr_debug("disable_voyagergx_irq(%d): mask=%x\n", irq, mask);
|
||||
val = readl((void __iomem *)VOYAGER_INT_MASK);
|
||||
val &= ~mask;
|
||||
writel(val, (void __iomem *)VOYAGER_INT_MASK);
|
||||
}
|
||||
|
||||
static void enable_voyagergx_irq(unsigned int irq)
|
||||
{
|
||||
unsigned long val;
|
||||
unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);
|
||||
unsigned long val;
|
||||
unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);
|
||||
|
||||
pr_debug("disable_voyagergx_irq(%d): mask=%lx\n", irq, mask);
|
||||
val = inl(VOYAGER_INT_MASK);
|
||||
val |= mask;
|
||||
outl(val, VOYAGER_INT_MASK);
|
||||
pr_debug("disable_voyagergx_irq(%d): mask=%x\n", irq, mask);
|
||||
val = readl((void __iomem *)VOYAGER_INT_MASK);
|
||||
val |= mask;
|
||||
writel(val, (void __iomem *)VOYAGER_INT_MASK);
|
||||
}
|
||||
|
||||
static void mask_and_ack_voyagergx(unsigned int irq)
|
||||
|
@ -68,20 +68,20 @@ static void shutdown_voyagergx_irq(unsigned int irq)
|
|||
}
|
||||
|
||||
static struct hw_interrupt_type voyagergx_irq_type = {
|
||||
.typename = "VOYAGERGX-IRQ",
|
||||
.startup = startup_voyagergx_irq,
|
||||
.shutdown = shutdown_voyagergx_irq,
|
||||
.enable = enable_voyagergx_irq,
|
||||
.disable = disable_voyagergx_irq,
|
||||
.ack = mask_and_ack_voyagergx,
|
||||
.end = end_voyagergx_irq,
|
||||
.typename = "VOYAGERGX-IRQ",
|
||||
.startup = startup_voyagergx_irq,
|
||||
.shutdown = shutdown_voyagergx_irq,
|
||||
.enable = enable_voyagergx_irq,
|
||||
.disable = disable_voyagergx_irq,
|
||||
.ack = mask_and_ack_voyagergx,
|
||||
.end = end_voyagergx_irq,
|
||||
};
|
||||
|
||||
static irqreturn_t voyagergx_interrupt(int irq, void *dev_id)
|
||||
{
|
||||
printk(KERN_INFO
|
||||
"VoyagerGX: spurious interrupt, status: 0x%x\n",
|
||||
inl(INT_STATUS));
|
||||
(unsigned int)readl((void __iomem *)INT_STATUS));
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
|
@ -93,13 +93,13 @@ static struct {
|
|||
void voyagergx_register_irq_demux(int irq,
|
||||
int (*demux)(int irq, void *dev), void *dev)
|
||||
{
|
||||
voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = demux;
|
||||
voyagergx_demux[irq - VOYAGER_IRQ_BASE].dev = dev;
|
||||
voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = demux;
|
||||
voyagergx_demux[irq - VOYAGER_IRQ_BASE].dev = dev;
|
||||
}
|
||||
|
||||
void voyagergx_unregister_irq_demux(int irq)
|
||||
{
|
||||
voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = 0;
|
||||
voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = 0;
|
||||
}
|
||||
|
||||
int voyagergx_irq_demux(int irq)
|
||||
|
@ -107,31 +107,25 @@ int voyagergx_irq_demux(int irq)
|
|||
|
||||
if (irq == IRQ_VOYAGER ) {
|
||||
unsigned long i = 0, bit __attribute__ ((unused));
|
||||
unsigned long val = inl(INT_STATUS);
|
||||
#if 1
|
||||
if ( val & ( 1 << 1 )){
|
||||
unsigned long val = readl((void __iomem *)INT_STATUS);
|
||||
|
||||
if (val & (1 << 1))
|
||||
i = 1;
|
||||
} else if ( val & ( 1 << 2 )){
|
||||
else if (val & (1 << 2))
|
||||
i = 2;
|
||||
} else if ( val & ( 1 << 6 )){
|
||||
else if (val & (1 << 6))
|
||||
i = 6;
|
||||
} else if( val & ( 1 << 10 )){
|
||||
else if (val & (1 << 10))
|
||||
i = 10;
|
||||
} else if( val & ( 1 << 11 )){
|
||||
else if (val & (1 << 11))
|
||||
i = 11;
|
||||
} else if( val & ( 1 << 12 )){
|
||||
else if (val & (1 << 12))
|
||||
i = 12;
|
||||
} else if( val & ( 1 << 17 )){
|
||||
else if (val & (1 << 17))
|
||||
i = 17;
|
||||
} else {
|
||||
else
|
||||
printk("Unexpected IRQ irq = %d status = 0x%08lx\n", irq, val);
|
||||
}
|
||||
pr_debug("voyagergx_irq_demux %ld\n", i);
|
||||
#else
|
||||
for (bit = 1, i = 0 ; i < VOYAGER_IRQ_NUM ; bit <<= 1, i++)
|
||||
if (val & bit)
|
||||
break;
|
||||
#endif
|
||||
pr_debug("voyagergx_irq_demux %d \n", i);
|
||||
if (i < VOYAGER_IRQ_NUM) {
|
||||
irq = VOYAGER_IRQ_BASE + i;
|
||||
if (voyagergx_demux[i].func != 0)
|
||||
|
|
|
@ -19,7 +19,7 @@ static int __init setup_voyagergx(void)
|
|||
{
|
||||
unsigned long val;
|
||||
|
||||
val = inl(DRAM_CTRL);
|
||||
val = readl((void __iomem *)DRAM_CTRL);
|
||||
val |= (DRAM_CTRL_CPU_COLUMN_SIZE_256 |
|
||||
DRAM_CTRL_CPU_ACTIVE_PRECHARGE |
|
||||
DRAM_CTRL_CPU_RESET |
|
||||
|
@ -29,7 +29,7 @@ static int __init setup_voyagergx(void)
|
|||
DRAM_CTRL_ACTIVE_PRECHARGE |
|
||||
DRAM_CTRL_RESET |
|
||||
DRAM_CTRL_REMAIN_ACTIVE);
|
||||
outl(val, DRAM_CTRL);
|
||||
writel(val, (void __iomem *)DRAM_CTRL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1,15 +1,21 @@
|
|||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.18
|
||||
# Tue Oct 3 11:38:36 2006
|
||||
# Linux kernel version: 2.6.20
|
||||
# Thu Feb 15 17:17:29 2007
|
||||
#
|
||||
CONFIG_SUPERH=y
|
||||
CONFIG_RWSEM_GENERIC_SPINLOCK=y
|
||||
CONFIG_GENERIC_FIND_NEXT_BIT=y
|
||||
CONFIG_GENERIC_HWEIGHT=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||
CONFIG_GENERIC_IRQ_PROBE=y
|
||||
CONFIG_GENERIC_CALIBRATE_DELAY=y
|
||||
# CONFIG_GENERIC_TIME is not set
|
||||
CONFIG_STACKTRACE_SUPPORT=y
|
||||
CONFIG_LOCKDEP_SUPPORT=y
|
||||
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
|
||||
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
|
||||
#
|
||||
|
@ -33,8 +39,8 @@ CONFIG_SYSVIPC=y
|
|||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_AUDIT is not set
|
||||
# CONFIG_IKCONFIG is not set
|
||||
CONFIG_SYSFS_DEPRECATED=y
|
||||
# CONFIG_RELAY is not set
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||
CONFIG_SYSCTL=y
|
||||
CONFIG_EMBEDDED=y
|
||||
|
@ -97,10 +103,8 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
|
|||
# CONFIG_SH_73180_SOLUTION_ENGINE is not set
|
||||
# CONFIG_SH_7751_SYSTEMH is not set
|
||||
# CONFIG_SH_HP6XX is not set
|
||||
# CONFIG_SH_EC3104 is not set
|
||||
# CONFIG_SH_SATURN is not set
|
||||
# CONFIG_SH_DREAMCAST is not set
|
||||
# CONFIG_SH_BIGSUR is not set
|
||||
# CONFIG_SH_MPC1211 is not set
|
||||
# CONFIG_SH_SH03 is not set
|
||||
# CONFIG_SH_SECUREEDGE5410 is not set
|
||||
|
@ -113,6 +117,9 @@ CONFIG_SH_RTS7751R2D=y
|
|||
# CONFIG_SH_LANDISK is not set
|
||||
# CONFIG_SH_TITAN is not set
|
||||
# CONFIG_SH_SHMIN is not set
|
||||
# CONFIG_SH_7206_SOLUTION_ENGINE is not set
|
||||
# CONFIG_SH_7619_SOLUTION_ENGINE is not set
|
||||
# CONFIG_SH_ASDAP310 is not set
|
||||
# CONFIG_SH_UNKNOWN is not set
|
||||
|
||||
#
|
||||
|
@ -124,6 +131,12 @@ CONFIG_CPU_SH4=y
|
|||
# SH-2 Processor Support
|
||||
#
|
||||
# CONFIG_CPU_SUBTYPE_SH7604 is not set
|
||||
# CONFIG_CPU_SUBTYPE_SH7619 is not set
|
||||
|
||||
#
|
||||
# SH-2A Processor Support
|
||||
#
|
||||
# CONFIG_CPU_SUBTYPE_SH7206 is not set
|
||||
|
||||
#
|
||||
# SH-3 Processor Support
|
||||
|
@ -159,12 +172,14 @@ CONFIG_CPU_SUBTYPE_SH7751R=y
|
|||
#
|
||||
# CONFIG_CPU_SUBTYPE_SH7770 is not set
|
||||
# CONFIG_CPU_SUBTYPE_SH7780 is not set
|
||||
# CONFIG_CPU_SUBTYPE_SH7785 is not set
|
||||
|
||||
#
|
||||
# SH4AL-DSP Processor Support
|
||||
#
|
||||
# CONFIG_CPU_SUBTYPE_SH73180 is not set
|
||||
# CONFIG_CPU_SUBTYPE_SH7343 is not set
|
||||
# CONFIG_CPU_SUBTYPE_SH7722 is not set
|
||||
|
||||
#
|
||||
# Memory management options
|
||||
|
@ -174,6 +189,9 @@ CONFIG_PAGE_OFFSET=0x80000000
|
|||
CONFIG_MEMORY_START=0x0c000000
|
||||
CONFIG_MEMORY_SIZE=0x04000000
|
||||
CONFIG_VSYSCALL=y
|
||||
CONFIG_PAGE_SIZE_4KB=y
|
||||
# CONFIG_PAGE_SIZE_8KB is not set
|
||||
# CONFIG_PAGE_SIZE_64KB is not set
|
||||
CONFIG_SELECT_MEMORY_MODEL=y
|
||||
CONFIG_FLATMEM_MANUAL=y
|
||||
# CONFIG_DISCONTIGMEM_MANUAL is not set
|
||||
|
@ -183,6 +201,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
|
|||
# CONFIG_SPARSEMEM_STATIC is not set
|
||||
CONFIG_SPLIT_PTLOCK_CPUS=4
|
||||
# CONFIG_RESOURCES_64BIT is not set
|
||||
CONFIG_ZONE_DMA_FLAG=0
|
||||
|
||||
#
|
||||
# Cache configuration
|
||||
|
@ -195,11 +214,14 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
|
|||
# Processor features
|
||||
#
|
||||
CONFIG_CPU_LITTLE_ENDIAN=y
|
||||
# CONFIG_CPU_BIG_ENDIAN is not set
|
||||
CONFIG_SH_FPU=y
|
||||
# CONFIG_SH_DSP is not set
|
||||
# CONFIG_SH_STORE_QUEUES is not set
|
||||
CONFIG_CPU_HAS_INTEVT=y
|
||||
CONFIG_CPU_HAS_IPR_IRQ=y
|
||||
CONFIG_CPU_HAS_SR_RB=y
|
||||
CONFIG_CPU_HAS_PTEA=y
|
||||
|
||||
#
|
||||
# Timer support
|
||||
|
@ -210,6 +232,8 @@ CONFIG_SH_TMU=y
|
|||
# RTS7751R2D options
|
||||
#
|
||||
CONFIG_RTS7751R2D_REV11=y
|
||||
CONFIG_SH_TIMER_IRQ=16
|
||||
# CONFIG_NO_IDLE_HZ is not set
|
||||
CONFIG_SH_PCLK_FREQ=60000000
|
||||
|
||||
#
|
||||
|
@ -231,11 +255,17 @@ CONFIG_VOYAGERGX=y
|
|||
# CONFIG_HD6446X_SERIES is not set
|
||||
CONFIG_HEARTBEAT=y
|
||||
|
||||
#
|
||||
# Additional SuperH Device Drivers
|
||||
#
|
||||
# CONFIG_PUSH_SWITCH is not set
|
||||
|
||||
#
|
||||
# Kernel features
|
||||
#
|
||||
# CONFIG_HZ_100 is not set
|
||||
CONFIG_HZ_250=y
|
||||
# CONFIG_HZ_300 is not set
|
||||
# CONFIG_HZ_1000 is not set
|
||||
CONFIG_HZ=250
|
||||
# CONFIG_KEXEC is not set
|
||||
|
@ -251,7 +281,7 @@ CONFIG_ZERO_PAGE_OFFSET=0x00010000
|
|||
CONFIG_BOOT_LINK_OFFSET=0x00800000
|
||||
# CONFIG_UBC_WAKEUP is not set
|
||||
CONFIG_CMDLINE_BOOL=y
|
||||
CONFIG_CMDLINE="mem=64M console=ttySC0,115200 root=/dev/hda1"
|
||||
CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1"
|
||||
|
||||
#
|
||||
# Bus options
|
||||
|
@ -260,7 +290,6 @@ CONFIG_PCI=y
|
|||
CONFIG_SH_PCIDMA_NONCOHERENT=y
|
||||
CONFIG_PCI_AUTO=y
|
||||
CONFIG_PCI_AUTO_UPDATE_RESOURCES=y
|
||||
# CONFIG_PCI_MULTITHREAD_PROBE is not set
|
||||
|
||||
#
|
||||
# PCCARD (PCMCIA/CardBus) support
|
||||
|
@ -302,6 +331,7 @@ CONFIG_UNIX=y
|
|||
CONFIG_XFRM=y
|
||||
# CONFIG_XFRM_USER is not set
|
||||
# CONFIG_XFRM_SUB_POLICY is not set
|
||||
# CONFIG_XFRM_MIGRATE is not set
|
||||
# CONFIG_NET_KEY is not set
|
||||
CONFIG_INET=y
|
||||
# CONFIG_IP_MULTICAST is not set
|
||||
|
@ -319,11 +349,13 @@ CONFIG_IP_FIB_HASH=y
|
|||
# CONFIG_INET_TUNNEL is not set
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=y
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=y
|
||||
CONFIG_INET_XFRM_MODE_BEET=y
|
||||
CONFIG_INET_DIAG=y
|
||||
CONFIG_INET_TCP_DIAG=y
|
||||
# CONFIG_TCP_CONG_ADVANCED is not set
|
||||
CONFIG_TCP_CONG_CUBIC=y
|
||||
CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||
# CONFIG_TCP_MD5SIG is not set
|
||||
# CONFIG_IPV6 is not set
|
||||
# CONFIG_INET6_XFRM_TUNNEL is not set
|
||||
# CONFIG_INET6_TUNNEL is not set
|
||||
|
@ -380,7 +412,7 @@ CONFIG_WIRELESS_EXT=y
|
|||
#
|
||||
CONFIG_STANDALONE=y
|
||||
CONFIG_PREVENT_FIRMWARE_BUILD=y
|
||||
# CONFIG_FW_LOADER is not set
|
||||
CONFIG_FW_LOADER=m
|
||||
# CONFIG_SYS_HYPERVISOR is not set
|
||||
|
||||
#
|
||||
|
@ -421,45 +453,146 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
|
|||
# CONFIG_CDROM_PKTCDVD is not set
|
||||
# CONFIG_ATA_OVER_ETH is not set
|
||||
|
||||
#
|
||||
# Misc devices
|
||||
#
|
||||
# CONFIG_SGI_IOC4 is not set
|
||||
# CONFIG_TIFM_CORE is not set
|
||||
|
||||
#
|
||||
# ATA/ATAPI/MFM/RLL support
|
||||
#
|
||||
CONFIG_IDE=y
|
||||
CONFIG_IDE_MAX_HWIFS=4
|
||||
CONFIG_BLK_DEV_IDE=y
|
||||
|
||||
#
|
||||
# Please see Documentation/ide.txt for help/info on IDE drives
|
||||
#
|
||||
# CONFIG_BLK_DEV_IDE_SATA is not set
|
||||
CONFIG_BLK_DEV_IDEDISK=y
|
||||
# CONFIG_IDEDISK_MULTI_MODE is not set
|
||||
# CONFIG_BLK_DEV_IDECD is not set
|
||||
# CONFIG_BLK_DEV_IDETAPE is not set
|
||||
# CONFIG_BLK_DEV_IDEFLOPPY is not set
|
||||
# CONFIG_IDE_TASK_IOCTL is not set
|
||||
|
||||
#
|
||||
# IDE chipset support/bugfixes
|
||||
#
|
||||
CONFIG_IDE_GENERIC=y
|
||||
# CONFIG_BLK_DEV_IDEPCI is not set
|
||||
# CONFIG_IDE_ARM is not set
|
||||
# CONFIG_BLK_DEV_IDEDMA is not set
|
||||
# CONFIG_IDEDMA_AUTO is not set
|
||||
# CONFIG_BLK_DEV_HD is not set
|
||||
# CONFIG_IDE is not set
|
||||
|
||||
#
|
||||
# SCSI device support
|
||||
#
|
||||
# CONFIG_RAID_ATTRS is not set
|
||||
# CONFIG_SCSI is not set
|
||||
CONFIG_SCSI=y
|
||||
# CONFIG_SCSI_TGT is not set
|
||||
# CONFIG_SCSI_NETLINK is not set
|
||||
CONFIG_SCSI_PROC_FS=y
|
||||
|
||||
#
|
||||
# SCSI support type (disk, tape, CD-ROM)
|
||||
#
|
||||
CONFIG_BLK_DEV_SD=y
|
||||
# CONFIG_CHR_DEV_ST is not set
|
||||
# CONFIG_CHR_DEV_OSST is not set
|
||||
# CONFIG_BLK_DEV_SR is not set
|
||||
# CONFIG_CHR_DEV_SG is not set
|
||||
# CONFIG_CHR_DEV_SCH is not set
|
||||
|
||||
#
|
||||
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
|
||||
#
|
||||
# CONFIG_SCSI_MULTI_LUN is not set
|
||||
# CONFIG_SCSI_CONSTANTS is not set
|
||||
# CONFIG_SCSI_LOGGING is not set
|
||||
# CONFIG_SCSI_SCAN_ASYNC is not set
|
||||
|
||||
#
|
||||
# SCSI Transports
|
||||
#
|
||||
# CONFIG_SCSI_SPI_ATTRS is not set
|
||||
# CONFIG_SCSI_FC_ATTRS is not set
|
||||
# CONFIG_SCSI_ISCSI_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_ATTRS is not set
|
||||
# CONFIG_SCSI_SAS_LIBSAS is not set
|
||||
|
||||
#
|
||||
# SCSI low-level drivers
|
||||
#
|
||||
# CONFIG_ISCSI_TCP is not set
|
||||
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
|
||||
# CONFIG_SCSI_3W_9XXX is not set
|
||||
# CONFIG_SCSI_ACARD is not set
|
||||
# CONFIG_SCSI_AACRAID is not set
|
||||
# CONFIG_SCSI_AIC7XXX is not set
|
||||
# CONFIG_SCSI_AIC7XXX_OLD is not set
|
||||
# CONFIG_SCSI_AIC79XX is not set
|
||||
# CONFIG_SCSI_AIC94XX is not set
|
||||
# CONFIG_SCSI_DPT_I2O is not set
|
||||
# CONFIG_SCSI_ARCMSR is not set
|
||||
# CONFIG_MEGARAID_NEWGEN is not set
|
||||
# CONFIG_MEGARAID_LEGACY is not set
|
||||
# CONFIG_MEGARAID_SAS is not set
|
||||
# CONFIG_SCSI_HPTIOP is not set
|
||||
# CONFIG_SCSI_DMX3191D is not set
|
||||
# CONFIG_SCSI_FUTURE_DOMAIN is not set
|
||||
# CONFIG_SCSI_IPS is not set
|
||||
# CONFIG_SCSI_INITIO is not set
|
||||
# CONFIG_SCSI_INIA100 is not set
|
||||
# CONFIG_SCSI_STEX is not set
|
||||
# CONFIG_SCSI_SYM53C8XX_2 is not set
|
||||
# CONFIG_SCSI_IPR is not set
|
||||
# CONFIG_SCSI_QLOGIC_1280 is not set
|
||||
# CONFIG_SCSI_QLA_FC is not set
|
||||
# CONFIG_SCSI_QLA_ISCSI is not set
|
||||
# CONFIG_SCSI_LPFC is not set
|
||||
# CONFIG_SCSI_DC395x is not set
|
||||
# CONFIG_SCSI_DC390T is not set
|
||||
# CONFIG_SCSI_NSP32 is not set
|
||||
# CONFIG_SCSI_DEBUG is not set
|
||||
# CONFIG_SCSI_SRP is not set
|
||||
|
||||
#
|
||||
# Serial ATA (prod) and Parallel ATA (experimental) drivers
|
||||
#
|
||||
# CONFIG_ATA is not set
|
||||
CONFIG_ATA=y
|
||||
# CONFIG_ATA_NONSTANDARD is not set
|
||||
# CONFIG_SATA_AHCI is not set
|
||||
# CONFIG_SATA_SVW is not set
|
||||
# CONFIG_ATA_PIIX is not set
|
||||
# CONFIG_SATA_MV is not set
|
||||
# CONFIG_SATA_NV is not set
|
||||
# CONFIG_PDC_ADMA is not set
|
||||
# CONFIG_SATA_QSTOR is not set
|
||||
# CONFIG_SATA_PROMISE is not set
|
||||
# CONFIG_SATA_SX4 is not set
|
||||
# CONFIG_SATA_SIL is not set
|
||||
# CONFIG_SATA_SIL24 is not set
|
||||
# CONFIG_SATA_SIS is not set
|
||||
# CONFIG_SATA_ULI is not set
|
||||
# CONFIG_SATA_VIA is not set
|
||||
# CONFIG_SATA_VITESSE is not set
|
||||
# CONFIG_SATA_INIC162X is not set
|
||||
# CONFIG_PATA_ALI is not set
|
||||
# CONFIG_PATA_AMD is not set
|
||||
# CONFIG_PATA_ARTOP is not set
|
||||
# CONFIG_PATA_ATIIXP is not set
|
||||
# CONFIG_PATA_CMD64X is not set
|
||||
# CONFIG_PATA_CS5520 is not set
|
||||
# CONFIG_PATA_CS5530 is not set
|
||||
# CONFIG_PATA_CYPRESS is not set
|
||||
# CONFIG_PATA_EFAR is not set
|
||||
# CONFIG_ATA_GENERIC is not set
|
||||
# CONFIG_PATA_HPT366 is not set
|
||||
# CONFIG_PATA_HPT37X is not set
|
||||
# CONFIG_PATA_HPT3X2N is not set
|
||||
# CONFIG_PATA_HPT3X3 is not set
|
||||
# CONFIG_PATA_IT821X is not set
|
||||
# CONFIG_PATA_IT8213 is not set
|
||||
# CONFIG_PATA_JMICRON is not set
|
||||
# CONFIG_PATA_TRIFLEX is not set
|
||||
# CONFIG_PATA_MARVELL is not set
|
||||
# CONFIG_PATA_MPIIX is not set
|
||||
# CONFIG_PATA_OLDPIIX is not set
|
||||
# CONFIG_PATA_NETCELL is not set
|
||||
# CONFIG_PATA_NS87410 is not set
|
||||
# CONFIG_PATA_OPTI is not set
|
||||
# CONFIG_PATA_OPTIDMA is not set
|
||||
# CONFIG_PATA_PDC_OLD is not set
|
||||
# CONFIG_PATA_RADISYS is not set
|
||||
# CONFIG_PATA_RZ1000 is not set
|
||||
# CONFIG_PATA_SC1200 is not set
|
||||
# CONFIG_PATA_SERVERWORKS is not set
|
||||
# CONFIG_PATA_PDC2027X is not set
|
||||
# CONFIG_PATA_SIL680 is not set
|
||||
# CONFIG_PATA_SIS is not set
|
||||
# CONFIG_PATA_VIA is not set
|
||||
# CONFIG_PATA_WINBOND is not set
|
||||
CONFIG_PATA_PLATFORM=y
|
||||
|
||||
#
|
||||
# Multi-device support (RAID and LVM)
|
||||
|
@ -470,6 +603,9 @@ CONFIG_IDE_GENERIC=y
|
|||
# Fusion MPT device support
|
||||
#
|
||||
# CONFIG_FUSION is not set
|
||||
# CONFIG_FUSION_SPI is not set
|
||||
# CONFIG_FUSION_FC is not set
|
||||
# CONFIG_FUSION_SAS is not set
|
||||
|
||||
#
|
||||
# IEEE 1394 (FireWire) support
|
||||
|
@ -540,6 +676,7 @@ CONFIG_8139TOO=y
|
|||
# CONFIG_SUNDANCE is not set
|
||||
# CONFIG_TLAN is not set
|
||||
# CONFIG_VIA_RHINE is not set
|
||||
# CONFIG_SC92031 is not set
|
||||
|
||||
#
|
||||
# Ethernet (1000 Mbit)
|
||||
|
@ -559,14 +696,17 @@ CONFIG_8139TOO=y
|
|||
# CONFIG_TIGON3 is not set
|
||||
# CONFIG_BNX2 is not set
|
||||
# CONFIG_QLA3XXX is not set
|
||||
# CONFIG_ATL1 is not set
|
||||
|
||||
#
|
||||
# Ethernet (10000 Mbit)
|
||||
#
|
||||
# CONFIG_CHELSIO_T1 is not set
|
||||
# CONFIG_CHELSIO_T3 is not set
|
||||
# CONFIG_IXGB is not set
|
||||
# CONFIG_S2IO is not set
|
||||
# CONFIG_MYRI10GE is not set
|
||||
# CONFIG_NETXEN_NIC is not set
|
||||
|
||||
#
|
||||
# Token Ring devices
|
||||
|
@ -611,6 +751,7 @@ CONFIG_NET_WIRELESS=y
|
|||
# CONFIG_HIPPI is not set
|
||||
# CONFIG_PPP is not set
|
||||
# CONFIG_SLIP is not set
|
||||
# CONFIG_NET_FC is not set
|
||||
# CONFIG_SHAPER is not set
|
||||
# CONFIG_NETCONSOLE is not set
|
||||
# CONFIG_NETPOLL is not set
|
||||
|
@ -646,14 +787,23 @@ CONFIG_NET_WIRELESS=y
|
|||
#
|
||||
# Serial drivers
|
||||
#
|
||||
# CONFIG_SERIAL_8250 is not set
|
||||
CONFIG_SERIAL_8250=y
|
||||
# CONFIG_SERIAL_8250_CONSOLE is not set
|
||||
CONFIG_SERIAL_8250_PCI=y
|
||||
CONFIG_SERIAL_8250_NR_UARTS=4
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
|
||||
# CONFIG_SERIAL_8250_EXTENDED is not set
|
||||
|
||||
#
|
||||
# Non-8250 serial port support
|
||||
#
|
||||
# CONFIG_SERIAL_SH_SCI is not set
|
||||
CONFIG_SERIAL_SH_SCI=y
|
||||
CONFIG_SERIAL_SH_SCI_NR_UARTS=1
|
||||
CONFIG_SERIAL_SH_SCI_CONSOLE=y
|
||||
CONFIG_SERIAL_CORE=y
|
||||
CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_JSM is not set
|
||||
# CONFIG_UNIX98_PTYS is not set
|
||||
CONFIG_UNIX98_PTYS=y
|
||||
CONFIG_LEGACY_PTYS=y
|
||||
CONFIG_LEGACY_PTY_COUNT=256
|
||||
|
||||
|
@ -671,10 +821,6 @@ CONFIG_HW_RANDOM=y
|
|||
# CONFIG_DTLK is not set
|
||||
# CONFIG_R3964 is not set
|
||||
# CONFIG_APPLICOM is not set
|
||||
|
||||
#
|
||||
# Ftape, the floppy tape device driver
|
||||
#
|
||||
# CONFIG_DRM is not set
|
||||
# CONFIG_RAW_DRIVER is not set
|
||||
|
||||
|
@ -682,7 +828,6 @@ CONFIG_HW_RANDOM=y
|
|||
# TPM devices
|
||||
#
|
||||
# CONFIG_TCG_TPM is not set
|
||||
# CONFIG_TELCLOCK is not set
|
||||
|
||||
#
|
||||
# I2C support
|
||||
|
@ -698,6 +843,7 @@ CONFIG_HW_RANDOM=y
|
|||
#
|
||||
# Dallas's 1-wire bus
|
||||
#
|
||||
# CONFIG_W1 is not set
|
||||
|
||||
#
|
||||
# Hardware Monitoring support
|
||||
|
@ -706,18 +852,14 @@ CONFIG_HWMON=y
|
|||
# CONFIG_HWMON_VID is not set
|
||||
# CONFIG_SENSORS_ABITUGURU is not set
|
||||
# CONFIG_SENSORS_F71805F is not set
|
||||
# CONFIG_SENSORS_PC87427 is not set
|
||||
# CONFIG_SENSORS_VT1211 is not set
|
||||
# CONFIG_HWMON_DEBUG_CHIP is not set
|
||||
|
||||
#
|
||||
# Misc devices
|
||||
#
|
||||
|
||||
#
|
||||
# Multimedia devices
|
||||
#
|
||||
# CONFIG_VIDEO_DEV is not set
|
||||
CONFIG_VIDEO_V4L2=y
|
||||
|
||||
#
|
||||
# Digital Video Broadcasting Devices
|
||||
|
@ -759,7 +901,6 @@ CONFIG_SND_VERBOSE_PROCFS=y
|
|||
CONFIG_SND_MPU401_UART=m
|
||||
CONFIG_SND_OPL3_LIB=m
|
||||
CONFIG_SND_AC97_CODEC=m
|
||||
CONFIG_SND_AC97_BUS=m
|
||||
# CONFIG_SND_DUMMY is not set
|
||||
# CONFIG_SND_MTPAV is not set
|
||||
# CONFIG_SND_SERIAL_U16550 is not set
|
||||
|
@ -782,6 +923,18 @@ CONFIG_SND_AC97_BUS=m
|
|||
# CONFIG_SND_CMIPCI is not set
|
||||
# CONFIG_SND_CS4281 is not set
|
||||
# CONFIG_SND_CS46XX is not set
|
||||
# CONFIG_SND_DARLA20 is not set
|
||||
# CONFIG_SND_GINA20 is not set
|
||||
# CONFIG_SND_LAYLA20 is not set
|
||||
# CONFIG_SND_DARLA24 is not set
|
||||
# CONFIG_SND_GINA24 is not set
|
||||
# CONFIG_SND_LAYLA24 is not set
|
||||
# CONFIG_SND_MONA is not set
|
||||
# CONFIG_SND_MIA is not set
|
||||
# CONFIG_SND_ECHO3G is not set
|
||||
# CONFIG_SND_INDIGO is not set
|
||||
# CONFIG_SND_INDIGOIO is not set
|
||||
# CONFIG_SND_INDIGODJ is not set
|
||||
# CONFIG_SND_EMU10K1 is not set
|
||||
# CONFIG_SND_EMU10K1X is not set
|
||||
# CONFIG_SND_ENS1370 is not set
|
||||
|
@ -801,6 +954,7 @@ CONFIG_SND_AC97_BUS=m
|
|||
# CONFIG_SND_MIXART is not set
|
||||
# CONFIG_SND_NM256 is not set
|
||||
# CONFIG_SND_PCXHR is not set
|
||||
# CONFIG_SND_RIPTIDE is not set
|
||||
# CONFIG_SND_RME32 is not set
|
||||
# CONFIG_SND_RME96 is not set
|
||||
# CONFIG_SND_RME9652 is not set
|
||||
|
@ -812,18 +966,23 @@ CONFIG_SND_AC97_BUS=m
|
|||
CONFIG_SND_YMFPCI=m
|
||||
# CONFIG_SND_AC97_POWER_SAVE is not set
|
||||
|
||||
#
|
||||
# SoC audio support
|
||||
#
|
||||
# CONFIG_SND_SOC is not set
|
||||
|
||||
#
|
||||
# Open Sound System
|
||||
#
|
||||
CONFIG_SOUND_PRIME=m
|
||||
# CONFIG_OSS_OBSOLETE_DRIVER is not set
|
||||
# CONFIG_OBSOLETE_OSS is not set
|
||||
# CONFIG_SOUND_BT878 is not set
|
||||
# CONFIG_SOUND_ES1371 is not set
|
||||
# CONFIG_SOUND_ICH is not set
|
||||
# CONFIG_SOUND_TRIDENT is not set
|
||||
# CONFIG_SOUND_MSNDCLAS is not set
|
||||
# CONFIG_SOUND_MSNDPIN is not set
|
||||
# CONFIG_SOUND_VIA82CXXX is not set
|
||||
CONFIG_AC97_BUS=m
|
||||
|
||||
#
|
||||
# USB support
|
||||
|
@ -872,7 +1031,29 @@ CONFIG_USB_ARCH_HAS_EHCI=y
|
|||
#
|
||||
# Real Time Clock
|
||||
#
|
||||
# CONFIG_RTC_CLASS is not set
|
||||
CONFIG_RTC_LIB=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_HCTOSYS=y
|
||||
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
|
||||
# CONFIG_RTC_DEBUG is not set
|
||||
|
||||
#
|
||||
# RTC interfaces
|
||||
#
|
||||
CONFIG_RTC_INTF_SYSFS=y
|
||||
CONFIG_RTC_INTF_PROC=y
|
||||
CONFIG_RTC_INTF_DEV=y
|
||||
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
|
||||
|
||||
#
|
||||
# RTC drivers
|
||||
#
|
||||
# CONFIG_RTC_DRV_DS1553 is not set
|
||||
# CONFIG_RTC_DRV_DS1742 is not set
|
||||
# CONFIG_RTC_DRV_M48T86 is not set
|
||||
CONFIG_RTC_DRV_SH=y
|
||||
# CONFIG_RTC_DRV_TEST is not set
|
||||
# CONFIG_RTC_DRV_V3020 is not set
|
||||
|
||||
#
|
||||
# DMA Engine support
|
||||
|
@ -887,6 +1068,14 @@ CONFIG_USB_ARCH_HAS_EHCI=y
|
|||
# DMA Devices
|
||||
#
|
||||
|
||||
#
|
||||
# Auxiliary Display support
|
||||
#
|
||||
|
||||
#
|
||||
# Virtualization
|
||||
#
|
||||
|
||||
#
|
||||
# File systems
|
||||
#
|
||||
|
@ -894,10 +1083,12 @@ CONFIG_EXT2_FS=y
|
|||
# CONFIG_EXT2_FS_XATTR is not set
|
||||
# CONFIG_EXT2_FS_XIP is not set
|
||||
# CONFIG_EXT3_FS is not set
|
||||
# CONFIG_EXT4DEV_FS is not set
|
||||
# CONFIG_REISERFS_FS is not set
|
||||
# CONFIG_JFS_FS is not set
|
||||
# CONFIG_FS_POSIX_ACL is not set
|
||||
# CONFIG_XFS_FS is not set
|
||||
# CONFIG_GFS2_FS is not set
|
||||
# CONFIG_OCFS2_FS is not set
|
||||
CONFIG_MINIX_FS=y
|
||||
# CONFIG_ROMFS_FS is not set
|
||||
|
@ -932,7 +1123,8 @@ CONFIG_PROC_FS=y
|
|||
CONFIG_PROC_KCORE=y
|
||||
CONFIG_PROC_SYSCTL=y
|
||||
CONFIG_SYSFS=y
|
||||
# CONFIG_TMPFS is not set
|
||||
CONFIG_TMPFS=y
|
||||
# CONFIG_TMPFS_POSIX_ACL is not set
|
||||
# CONFIG_HUGETLBFS is not set
|
||||
# CONFIG_HUGETLB_PAGE is not set
|
||||
CONFIG_RAMFS=y
|
||||
|
@ -1017,6 +1209,11 @@ CONFIG_NLS_CODEPAGE_932=y
|
|||
# CONFIG_NLS_KOI8_U is not set
|
||||
# CONFIG_NLS_UTF8 is not set
|
||||
|
||||
#
|
||||
# Distributed Lock Manager
|
||||
#
|
||||
# CONFIG_DLM is not set
|
||||
|
||||
#
|
||||
# Profiling support
|
||||
#
|
||||
|
@ -1026,16 +1223,20 @@ CONFIG_OPROFILE=y
|
|||
#
|
||||
# Kernel hacking
|
||||
#
|
||||
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
|
||||
# CONFIG_PRINTK_TIME is not set
|
||||
CONFIG_ENABLE_MUST_CHECK=y
|
||||
# CONFIG_MAGIC_SYSRQ is not set
|
||||
# CONFIG_UNUSED_SYMBOLS is not set
|
||||
# CONFIG_DEBUG_FS is not set
|
||||
# CONFIG_HEADERS_CHECK is not set
|
||||
# CONFIG_DEBUG_KERNEL is not set
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||
# CONFIG_DEBUG_FS is not set
|
||||
# CONFIG_SH_STANDARD_BIOS is not set
|
||||
# CONFIG_EARLY_SCIF_CONSOLE is not set
|
||||
CONFIG_EARLY_SCIF_CONSOLE=y
|
||||
CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
# CONFIG_KGDB is not set
|
||||
|
||||
#
|
||||
|
@ -1052,8 +1253,11 @@ CONFIG_LOG_BUF_SHIFT=14
|
|||
#
|
||||
# Library routines
|
||||
#
|
||||
CONFIG_BITREVERSE=y
|
||||
# CONFIG_CRC_CCITT is not set
|
||||
# CONFIG_CRC16 is not set
|
||||
CONFIG_CRC32=y
|
||||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_PLIST=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
|
|
|
@ -46,11 +46,13 @@ static struct platform_device rtc_device = {
|
|||
|
||||
static struct plat_sci_port sci_platform_data[] = {
|
||||
{
|
||||
#ifndef CONFIG_SH_RTS7751R2D
|
||||
.mapbase = 0xffe00000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCI,
|
||||
.irqs = { 23, 24, 25, 0 },
|
||||
}, {
|
||||
#endif
|
||||
.mapbase = 0xffe80000,
|
||||
.flags = UPF_BOOT_AUTOCONF,
|
||||
.type = PORT_SCIF,
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
/* $Id: io_generic.c,v 1.2 2003/05/04 19:29:53 lethal Exp $
|
||||
*
|
||||
* linux/arch/sh/kernel/io_generic.c
|
||||
/*
|
||||
* arch/sh/kernel/io_generic.c
|
||||
*
|
||||
* Copyright (C) 2000 Niibe Yutaka
|
||||
* Copyright (C) 2005 Paul Mundt
|
||||
* Copyright (C) 2005 - 2007 Paul Mundt
|
||||
*
|
||||
* Generic I/O routine. These can be used where a machine specific version
|
||||
* is not required.
|
||||
|
@ -13,8 +12,9 @@
|
|||
* for more details.
|
||||
*/
|
||||
#include <linux/module.h>
|
||||
#include <asm/io.h>
|
||||
#include <linux/io.h>
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/cacheflush.h>
|
||||
|
||||
#ifdef CONFIG_CPU_SH3
|
||||
/* SH3 has a PCMCIA bug that needs a dummy read from area 6 for a
|
||||
|
@ -96,6 +96,7 @@ void generic_insw(unsigned long port, void *dst, unsigned long count)
|
|||
while (count--)
|
||||
*buf++ = *port_addr;
|
||||
|
||||
flush_dcache_all();
|
||||
dummy_read();
|
||||
}
|
||||
|
||||
|
@ -170,6 +171,7 @@ void generic_outsw(unsigned long port, const void *src, unsigned long count)
|
|||
while (count--)
|
||||
*port_addr = *buf++;
|
||||
|
||||
flush_dcache_all();
|
||||
dummy_read();
|
||||
}
|
||||
|
||||
|
|
|
@ -68,6 +68,10 @@
|
|||
#define IRQ_PCISLOT2 10 /* PCI Slot #2 IRQ */
|
||||
#define IRQ_EXTENTION 11 /* EXTn IRQ */
|
||||
|
||||
/* arch/sh/boards/renesas/rts7751r2d/irq.c */
|
||||
void init_rts7751r2d_IRQ(void);
|
||||
int rts7751r2d_irq_demux(int);
|
||||
|
||||
#define __IO_PREFIX rts7751r2d
|
||||
#include <asm/io_generic.h>
|
||||
|
||||
|
|
|
@ -29,10 +29,7 @@
|
|||
|
||||
#else
|
||||
|
||||
#define SERIAL_PORT_DFNS \
|
||||
/* UART CLK PORT IRQ FLAGS */ \
|
||||
{ 0, BASE_BAUD, 0x3F8, 4, STD_COM_FLAGS }, /* ttyS0 */ \
|
||||
{ 0, BASE_BAUD, 0x2F8, 3, STD_COM_FLAGS } /* ttyS1 */
|
||||
#define SERIAL_PORT_DFNS
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -308,6 +308,9 @@
|
|||
#define AC97C_READ (1 << 19)
|
||||
#define AC97C_WD_BIT (1 << 2)
|
||||
#define AC97C_INDEX_MASK 0x7f
|
||||
/* -------------------------------------------------------------------- */
|
||||
|
||||
/* arch/sh/cchips/voyagergx/consistent.c */
|
||||
void *voyagergx_consistent_alloc(struct device *, size_t, dma_addr_t *, gfp_t);
|
||||
int voyagergx_consistent_free(struct device *, size_t, void *, dma_addr_t);
|
||||
|
||||
#endif /* _VOYAGER_GX_REG_H */
|
||||
|
|
Loading…
Reference in a new issue