-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This adds support for the L-BOX RE2 router. http://www.nttcom.co.jp/l-box/ L-BOX RE2 is a SH7751R-based router. It has CF, Cardbus, serial, and LAN x2. This is one of the very few SH boards that a general person can obtain now. The L-BOX shipped with a 2.4.28 kernel, this is a rewritten patch adding it to current git. Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
- Loading branch information
Nobuhiro Iwamatsu
authored and
Paul Mundt
committed
May 7, 2007
1 parent
00e8c49
commit c86c5a9
Showing
11 changed files
with
1,536 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# | ||
# Makefile for the L-BOX RE2 specific parts of the kernel | ||
# Copyright (c) 2007 Nobuhiro Iwamatsu | ||
|
||
obj-y := setup.o irq.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
/* | ||
* linux/arch/sh/boards/lboxre2/irq.c | ||
* | ||
* Copyright (C) 2007 Nobuhiro Iwamatsu | ||
* | ||
* NTT COMWARE L-BOX RE2 Support. | ||
* | ||
* 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 <linux/init.h> | ||
#include <linux/interrupt.h> | ||
#include <linux/irq.h> | ||
#include <asm/irq.h> | ||
#include <asm/io.h> | ||
#include <asm/lboxre2.h> | ||
|
||
/* | ||
* Initialize IRQ setting | ||
*/ | ||
void __init init_lboxre2_IRQ(void) | ||
{ | ||
make_imask_irq(IRQ_CF1); | ||
make_imask_irq(IRQ_CF0); | ||
make_imask_irq(IRQ_INTD); | ||
make_imask_irq(IRQ_ETH1); | ||
make_imask_irq(IRQ_ETH0); | ||
make_imask_irq(IRQ_INTA); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
/* | ||
* linux/arch/sh/boards/lbox/setup.c | ||
* | ||
* Copyright (C) 2007 Nobuhiro Iwamatsu | ||
* | ||
* NTT COMWARE L-BOX RE2 Support | ||
* | ||
* 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 <linux/init.h> | ||
#include <linux/platform_device.h> | ||
#include <linux/pata_platform.h> | ||
#include <asm/machvec.h> | ||
#include <asm/lboxre2.h> | ||
#include <asm/io.h> | ||
|
||
static struct resource cf_ide_resources[] = { | ||
[0] = { | ||
.start = 0x1f0, | ||
.end = 0x1f0 + 8 , | ||
.flags = IORESOURCE_IO, | ||
}, | ||
[1] = { | ||
.start = 0x1f0 + 0x206, | ||
.end = 0x1f0 +8 + 0x206 + 8, | ||
.flags = IORESOURCE_IO, | ||
}, | ||
[2] = { | ||
.start = IRQ_CF0, | ||
.flags = IORESOURCE_IRQ, | ||
}, | ||
}; | ||
|
||
static struct platform_device cf_ide_device = { | ||
.name = "pata_platform", | ||
.id = -1, | ||
.num_resources = ARRAY_SIZE(cf_ide_resources), | ||
.resource = cf_ide_resources, | ||
}; | ||
|
||
static struct platform_device *lboxre2_devices[] __initdata = { | ||
&cf_ide_device, | ||
}; | ||
|
||
static int __init lboxre2_devices_setup(void) | ||
{ | ||
u32 cf0_io_base; /* Boot CF base address */ | ||
pgprot_t prot; | ||
unsigned long paddrbase, psize; | ||
|
||
/* open I/O area window */ | ||
paddrbase = virt_to_phys((void*)CONFIG_CF0_BASE_ADDR); | ||
psize = PAGE_SIZE; | ||
prot = PAGE_KERNEL_PCC( 1 , _PAGE_PCC_IO16); | ||
cf0_io_base = (u32)p3_ioremap(paddrbase, psize, prot.pgprot); | ||
if (!cf0_io_base) { | ||
printk(KERN_ERR "%s : can't open CF I/O window!\n" , __func__ ); | ||
return -ENOMEM; | ||
} | ||
|
||
cf_ide_resources[0].start += cf0_io_base ; | ||
cf_ide_resources[0].end += cf0_io_base ; | ||
cf_ide_resources[1].start += cf0_io_base ; | ||
cf_ide_resources[1].end += cf0_io_base ; | ||
|
||
return platform_add_devices(lboxre2_devices, | ||
ARRAY_SIZE(lboxre2_devices)); | ||
|
||
} | ||
device_initcall(lboxre2_devices_setup); | ||
|
||
/* | ||
* The Machine Vector | ||
*/ | ||
struct sh_machine_vector mv_lboxre2 __initmv = { | ||
.mv_name = "L-BOX RE2", | ||
.mv_nr_irqs = 72, | ||
.mv_init_irq = init_lboxre2_IRQ, | ||
}; | ||
ALIAS_MV(lboxre2) |
Oops, something went wrong.