static struct resource s3c_dm9k_resource0[] = {
[0] = {
.start = S3C2410_CS4,
.end = S3C2410_CS4 + 3,
.flags = IORESOURCE_MEM
},
[1] = {
.start = S3C2410_CS4 + 4,
.end = S3C2410_CS4 + 7,
.flags = IORESOURCE_MEM
},
[2] = {
.start = IRQ_EINT7,
.end = IRQ_EINT7,
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE,
}
};
static struct dm9000_plat_data s3c_device_dm9k_pdata0 = {
.flags = DM9000_PLATF_16BITONLY
};
static struct platform_device s3c_device_eth0 = {
.name = "dm9000",
.id = -1,
.num_resources = ARRAY_SIZE(s3c_dm9k_resource0),
.resource = s3c_dm9k_resource0,
.dev = {
.platform_data = &s3c_device_dm9k_pdata0,
},
};
static struct resource s3c_dm9k_resource1[] = {
[0] = {
.start = S3C2410_CS3,
.end = S3C2410_CS3+ 3,
.flags = IORESOURCE_MEM
},
[1] = {
.start = S3C2410_CS3+ 4,
.end = S3C2410_CS3+ 7,
.flags = IORESOURCE_MEM
},
[2] = {
.start = IRQ_EINT8,
.end = IRQ_EINT8,
.flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWEDGE,
}
};
static struct dm9000_plat_data s3c_device_dm9k_pdata1 = {
.flags = DM9000_PLATF_16BITONLY
};
static struct platform_device s3c_device_eth1 = {
.name = "dm9000",
.id = 1,
.num_resources = ARRAY_SIZE(s3c_dm9k_resource1),
.resource = s3c_dm9k_resource1,
.dev = {
.platform_data = &s3c_device_dm9k_pdata1,
},
};
static void s3c_dm9k_bus_init(void)
{
unsigned int oldval_bwscon = *(volatile unsigned int *)S3C2410_BWSCON;
*((volatile unsigned int *)S3C2410_BWSCON) =
(oldval_bwscon & ~(0x33<<12)) | S3C2410_BWSCON_DW3_16|S3C2410_BWSCON_DW4_16;
}
void __init sbc2440_init(void)
{
......
s3c_dm9k_bus_init();//koujinqiao
......
}