-
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.
- Loading branch information
Daniel Silverstone
authored and
Ben Dooks
committed
Dec 14, 2008
1 parent
474df26
commit 279e92f
Showing
4 changed files
with
139 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: 7ef71320eba8933275be10bfa44e083bec95b3f1 | ||
refs/heads/master: 6174dee5146dc2c7eca8f103b85be168dc564ffb |
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,131 @@ | ||
/* | ||
* arch/arm/mach-ks8695/board-dsm320.c | ||
* | ||
* DSM-320 D-Link Wireless Media Player, board support. | ||
* | ||
* Copyright 2008 Simtec Electronics | ||
* Daniel Silverstone <dsilvers@simtec.co.uk> | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
*/ | ||
|
||
#include <linux/kernel.h> | ||
#include <linux/types.h> | ||
#include <linux/interrupt.h> | ||
#include <linux/init.h> | ||
#include <linux/platform_device.h> | ||
|
||
#include <linux/mtd/mtd.h> | ||
#include <linux/mtd/map.h> | ||
#include <linux/mtd/physmap.h> | ||
#include <linux/mtd/partitions.h> | ||
|
||
#include <asm/mach-types.h> | ||
|
||
#include <asm/mach/arch.h> | ||
#include <asm/mach/map.h> | ||
#include <asm/mach/irq.h> | ||
|
||
#include <mach/devices.h> | ||
#include <mach/gpio.h> | ||
|
||
#include "generic.h" | ||
|
||
#ifdef CONFIG_PCI | ||
static int dsm320_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | ||
{ | ||
switch (slot) { | ||
case 0: | ||
/* PCI-AHB bridge? */ | ||
return KS8695_IRQ_EXTERN0; | ||
case 18: | ||
/* Mini PCI slot */ | ||
return KS8695_IRQ_EXTERN2; | ||
case 20: | ||
/* RealMAGIC chip */ | ||
return KS8695_IRQ_EXTERN0; | ||
} | ||
BUG(); | ||
} | ||
|
||
static struct ks8695_pci_cfg __initdata dsm320_pci = { | ||
.mode = KS8695_MODE_MINIPCI, | ||
.map_irq = dsm320_pci_map_irq, | ||
}; | ||
|
||
static void __init dsm320_register_pci(void) | ||
{ | ||
/* Initialise the GPIO lines for interrupt mode */ | ||
/* RealMAGIC */ | ||
ks8695_gpio_interrupt(KS8695_GPIO_0, IRQ_TYPE_LEVEL_LOW); | ||
/* MiniPCI Slot */ | ||
ks8695_gpio_interrupt(KS8695_GPIO_2, IRQ_TYPE_LEVEL_LOW); | ||
|
||
ks8695_init_pci(&dsm320_pci); | ||
} | ||
|
||
#else | ||
static inline void __init dsm320_register_pci(void) { } | ||
#endif | ||
|
||
static struct physmap_flash_data dsm320_nor_pdata = { | ||
.width = 4, | ||
.nr_parts = 0, | ||
}; | ||
|
||
static struct resource dsm320_nor_resource[] = { | ||
[0] = { | ||
.start = SZ_32M, /* We expect the bootloader to map | ||
* the flash here. | ||
*/ | ||
.end = SZ_32M + SZ_4M - 1, | ||
.flags = IORESOURCE_MEM, | ||
} | ||
}; | ||
|
||
static struct platform_device dsm320_device_nor = { | ||
.name = "physmap-flash", | ||
.id = -1, | ||
.num_resources = ARRAY_SIZE(dsm320_nor_resource), | ||
.resource = dsm320_nor_resource, | ||
.dev = { | ||
.platform_data = &dsm320_nor_pdata, | ||
}, | ||
}; | ||
|
||
void __init dsm320_register_nor(void) | ||
{ | ||
int ret; | ||
|
||
ret = platform_device_register(&dsm320_device_nor); | ||
if (ret < 0) | ||
printk(KERN_ERR "failed to register physmap-flash device\n"); | ||
} | ||
|
||
static void __init dsm320_init(void) | ||
{ | ||
/* GPIO registration */ | ||
ks8695_register_gpios(); | ||
|
||
/* PCI registration */ | ||
dsm320_register_pci(); | ||
|
||
/* Network device */ | ||
ks8695_add_device_lan(); /* eth0 = LAN */ | ||
|
||
/* NOR devices */ | ||
dsm320_register_nor(); | ||
} | ||
|
||
MACHINE_START(DSM320, "D-Link DSM-320 Wireless Media Player") | ||
/* Maintainer: Simtec Electronics. */ | ||
.phys_io = KS8695_IO_PA, | ||
.io_pg_offst = (KS8695_IO_VA >> 18) & 0xfffc, | ||
.boot_params = KS8695_SDRAM_PA + 0x100, | ||
.map_io = ks8695_map_io, | ||
.init_irq = ks8695_init_irq, | ||
.init_machine = dsm320_init, | ||
.timer = &ks8695_timer, | ||
MACHINE_END |