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-ixp4xx
coyote-pci.c
Go to the documentation of this file.
1
/*
2
* arch/arm/mach-ixp4xx/coyote-pci.c
3
*
4
* PCI setup routines for ADI Engineering Coyote platform
5
*
6
* Copyright (C) 2002 Jungo Software Technologies.
7
* Copyright (C) 2003 MontaVista Softwrae, Inc.
8
*
9
* Maintainer: Deepak Saxena <
[email protected]
>
10
*
11
* This program is free software; you can redistribute it and/or modify
12
* it under the terms of the GNU General Public License version 2 as
13
* published by the Free Software Foundation.
14
*
15
*/
16
17
#include <linux/kernel.h>
18
#include <linux/pci.h>
19
#include <
linux/init.h
>
20
#include <
linux/irq.h
>
21
#include <
asm/mach-types.h
>
22
#include <mach/hardware.h>
23
#include <asm/irq.h>
24
#include <
asm/mach/pci.h
>
25
26
#define SLOT0_DEVID 14
27
#define SLOT1_DEVID 15
28
29
/* PCI controller GPIO to IRQ pin mappings */
30
#define SLOT0_INTA 6
31
#define SLOT1_INTA 11
32
33
void
__init
coyote_pci_preinit
(
void
)
34
{
35
irq_set_irq_type
(
IXP4XX_GPIO_IRQ
(
SLOT0_INTA
),
IRQ_TYPE_LEVEL_LOW
);
36
irq_set_irq_type
(
IXP4XX_GPIO_IRQ
(
SLOT1_INTA
),
IRQ_TYPE_LEVEL_LOW
);
37
ixp4xx_pci_preinit
();
38
}
39
40
static
int
__init
coyote_map_irq(
const
struct
pci_dev
*
dev
,
u8
slot
,
u8
pin
)
41
{
42
if
(slot ==
SLOT0_DEVID
)
43
return
IXP4XX_GPIO_IRQ
(
SLOT0_INTA
);
44
else
if
(slot ==
SLOT1_DEVID
)
45
return
IXP4XX_GPIO_IRQ
(
SLOT1_INTA
);
46
else
return
-1;
47
}
48
49
struct
hw_pci
coyote_pci
__initdata
= {
50
.nr_controllers = 1,
51
.ops = &
ixp4xx_ops
,
52
.preinit =
coyote_pci_preinit
,
53
.setup =
ixp4xx_setup
,
54
.map_irq = coyote_map_irq,
55
};
56
57
int
__init
coyote_pci_init
(
void
)
58
{
59
if
(machine_is_adi_coyote())
60
pci_common_init
(&coyote_pci);
61
return
0;
62
}
63
64
subsys_initcall
(
coyote_pci_init
);
Generated on Thu Jan 10 2013 12:59:31 for Linux Kernel by
1.8.2