Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
arm
mach-footbridge
netwinder-pci.c
Go to the documentation of this file.
1
/*
2
* linux/arch/arm/mach-footbridge/netwinder-pci.c
3
*
4
* PCI bios-type initialisation for PCI machines
5
*
6
* Bits taken from various places.
7
*/
8
#include <linux/kernel.h>
9
#include <linux/pci.h>
10
#include <
linux/init.h
>
11
12
#include <asm/irq.h>
13
#include <
asm/mach/pci.h
>
14
#include <
asm/mach-types.h
>
15
16
/*
17
* We now use the slot ID instead of the device identifiers to select
18
* which interrupt is routed where.
19
*/
20
static
int
__init
netwinder_map_irq(
const
struct
pci_dev
*
dev
,
u8
slot
,
u8
pin
)
21
{
22
switch
(slot) {
23
case
0:
/* host bridge */
24
return
0;
25
26
case
9:
/* CyberPro */
27
return
IRQ_NETWINDER_VGA
;
28
29
case
10:
/* DC21143 */
30
return
IRQ_NETWINDER_ETHER100
;
31
32
case
12:
/* Winbond 553 */
33
return
IRQ_ISA_HARDDISK1
;
34
35
case
13:
/* Winbond 89C940F */
36
return
IRQ_NETWINDER_ETHER10
;
37
38
default
:
39
printk
(
KERN_ERR
"PCI: unknown device in slot %s\n"
,
40
pci_name(dev));
41
return
0;
42
}
43
}
44
45
static
struct
hw_pci
netwinder_pci
__initdata
= {
46
.map_irq = netwinder_map_irq,
47
.nr_controllers = 1,
48
.ops = &
dc21285_ops
,
49
.setup =
dc21285_setup
,
50
.preinit =
dc21285_preinit
,
51
.postinit =
dc21285_postinit
,
52
};
53
54
static
int
__init
netwinder_pci_init(
void
)
55
{
56
if
(
machine_is_netwinder
())
57
pci_common_init
(&netwinder_pci);
58
return
0;
59
}
60
61
subsys_initcall
(netwinder_pci_init);
Generated on Thu Jan 10 2013 12:59:06 for Linux Kernel by
1.8.2