-
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 patch series adds support for ITO Co., Ltd.'s SH-2007 reference platform (A PC-104 based SH7780 platform). This is a direct port of the out-of-tree board support from the vendor's kernel, originally located at: http://ms-n.org/sh-linux/kernel/ More information on the board and the vendor can be obtained from the vendor's site at: http://www.itonet.co.jp/ Presently supported peripherals are CF and ethernet, with support for the on-board IDE still pending further testing. Reviewed-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> Reviewed-by: Magnus Damm <magnus.damm@gmail.com> Signed-off-by: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
- Loading branch information
Hitoshi Mitake
authored and
Paul Mundt
committed
Jun 21, 2010
1 parent
dcac0d9
commit 3a59826
Showing
7 changed files
with
1,633 additions
and
4 deletions.
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,133 @@ | ||
/* | ||
* SH-2007 board support. | ||
* | ||
* Copyright (C) 2003, 2004 SUGIOKA Toshinobu | ||
* Copyright (C) 2010 Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp> | ||
*/ | ||
#include <linux/init.h> | ||
#include <linux/irq.h> | ||
#include <linux/smsc911x.h> | ||
#include <linux/platform_device.h> | ||
#include <linux/ata_platform.h> | ||
#include <linux/io.h> | ||
#include <asm/machvec.h> | ||
#include <mach/sh2007.h> | ||
|
||
struct smsc911x_platform_config smc911x_info = { | ||
.flags = SMSC911X_USE_32BIT, | ||
.irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, | ||
.irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL, | ||
}; | ||
|
||
static struct resource smsc9118_0_resources[] = { | ||
[0] = { | ||
.start = SMC0_BASE, | ||
.end = SMC0_BASE + 0xff, | ||
.flags = IORESOURCE_MEM, | ||
}, | ||
[1] = { | ||
.start = evt2irq(0x240), | ||
.end = evt2irq(0x240), | ||
.flags = IORESOURCE_IRQ, | ||
} | ||
}; | ||
|
||
static struct resource smsc9118_1_resources[] = { | ||
[0] = { | ||
.start = SMC1_BASE, | ||
.end = SMC1_BASE + 0xff, | ||
.flags = IORESOURCE_MEM, | ||
}, | ||
[1] = { | ||
.start = evt2irq(0x280), | ||
.end = evt2irq(0x280), | ||
.flags = IORESOURCE_IRQ, | ||
} | ||
}; | ||
|
||
static struct platform_device smsc9118_0_device = { | ||
.name = "smsc911x", | ||
.id = 0, | ||
.num_resources = ARRAY_SIZE(smsc9118_0_resources), | ||
.resource = smsc9118_0_resources, | ||
.dev = { | ||
.platform_data = &smc911x_info, | ||
}, | ||
}; | ||
|
||
static struct platform_device smsc9118_1_device = { | ||
.name = "smsc911x", | ||
.id = 1, | ||
.num_resources = ARRAY_SIZE(smsc9118_1_resources), | ||
.resource = smsc9118_1_resources, | ||
.dev = { | ||
.platform_data = &smc911x_info, | ||
}, | ||
}; | ||
|
||
static struct resource cf_resources[] = { | ||
[0] = { | ||
.start = CF_BASE + CF_OFFSET, | ||
.end = CF_BASE + CF_OFFSET + 0x0f, | ||
.flags = IORESOURCE_MEM, | ||
}, | ||
[1] = { | ||
.start = CF_BASE + CF_OFFSET + 0x206, | ||
.end = CF_BASE + CF_OFFSET + 0x20f, | ||
.flags = IORESOURCE_MEM, | ||
}, | ||
[2] = { | ||
.start = evt2irq(0x2c0), | ||
.end = evt2irq(0x2c0), | ||
.flags = IORESOURCE_IRQ, | ||
}, | ||
}; | ||
|
||
static struct platform_device cf_device = { | ||
.name = "pata_platform", | ||
.id = 0, | ||
.num_resources = ARRAY_SIZE(cf_resources), | ||
.resource = cf_resources, | ||
}; | ||
|
||
static struct platform_device *sh2007_devices[] __initdata = { | ||
&smsc9118_0_device, | ||
&smsc9118_1_device, | ||
&cf_device, | ||
}; | ||
|
||
static int __init sh2007_io_init(void) | ||
{ | ||
platform_add_devices(sh2007_devices, ARRAY_SIZE(sh2007_devices)); | ||
return 0; | ||
} | ||
subsys_initcall(sh2007_io_init); | ||
|
||
static void __init sh2007_init_irq(void) | ||
{ | ||
plat_irq_setup_pins(IRQ_MODE_IRQ); | ||
} | ||
|
||
/* | ||
* Initialize the board | ||
*/ | ||
static void __init sh2007_setup(char **cmdline_p) | ||
{ | ||
printk(KERN_INFO "SH-2007 Setup..."); | ||
|
||
/* setup wait control registers for area 5 */ | ||
__raw_writel(CS5BCR_D, CS5BCR); | ||
__raw_writel(CS5WCR_D, CS5WCR); | ||
__raw_writel(CS5PCR_D, CS5PCR); | ||
|
||
printk(KERN_INFO " done.\n"); | ||
} | ||
|
||
/* | ||
* The Machine Vector | ||
*/ | ||
struct sh_machine_vector mv_sh2007 __initmv = { | ||
.mv_setup = sh2007_setup, | ||
.mv_name = "sh2007", | ||
.mv_init_irq = sh2007_init_irq, | ||
}; |
Oops, something went wrong.