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
h8300
platform
h8300h
irq.c
Go to the documentation of this file.
1
/*
2
* Interrupt handling H8/300H depend.
3
* Yoshinori Sato <
[email protected]
>
4
*
5
*/
6
7
#include <
linux/init.h
>
8
#include <linux/errno.h>
9
10
#include <asm/ptrace.h>
11
#include <asm/traps.h>
12
#include <asm/irq.h>
13
#include <asm/io.h>
14
#include <
asm/gpio-internal.h
>
15
#include <
asm/regs306x.h
>
16
17
const
int
__initconst
h8300_saved_vectors
[] = {
18
#if defined(CONFIG_GDB_DEBUG)
19
TRAP3_VEC
,
/* TRAPA #3 is GDB breakpoint */
20
#endif
21
-1,
22
};
23
24
const
h8300_vector
__initconst
h8300_trap_table
[] = {
25
0, 0, 0, 0, 0, 0, 0, 0,
26
system_call
,
27
0,
28
0,
29
trace_break
,
30
};
31
32
int
h8300_enable_irq_pin
(
unsigned
int
irq)
33
{
34
int
bitmask
;
35
if
(irq < EXT_IRQ0 || irq > EXT_IRQ5)
36
return
0;
37
38
/* initialize IRQ pin */
39
bitmask = 1 << (irq - EXT_IRQ0);
40
switch
(irq) {
41
case
EXT_IRQ0:
42
case
EXT_IRQ1:
43
case
EXT_IRQ2:
44
case
EXT_IRQ3:
45
if
(
H8300_GPIO_RESERVE
(
H8300_GPIO_P8
, bitmask) == 0)
46
return
-
EBUSY
;
47
H8300_GPIO_DDR
(
H8300_GPIO_P8
, bitmask,
H8300_GPIO_INPUT
);
48
break
;
49
case
EXT_IRQ4:
50
case
EXT_IRQ5:
51
if
(
H8300_GPIO_RESERVE
(
H8300_GPIO_P9
, bitmask) == 0)
52
return
-
EBUSY
;
53
H8300_GPIO_DDR
(
H8300_GPIO_P9
, bitmask,
H8300_GPIO_INPUT
);
54
break
;
55
}
56
57
return
0;
58
}
59
60
void
h8300_disable_irq_pin
(
unsigned
int
irq)
61
{
62
int
bitmask
;
63
if
(irq < EXT_IRQ0 || irq > EXT_IRQ5)
64
return
;
65
66
/* disable interrupt & release IRQ pin */
67
bitmask = 1 << (irq - EXT_IRQ0);
68
switch
(irq) {
69
case
EXT_IRQ0:
70
case
EXT_IRQ1:
71
case
EXT_IRQ2:
72
case
EXT_IRQ3:
73
*(
volatile
unsigned
char
*)
IER
&= ~bitmask;
74
H8300_GPIO_FREE
(
H8300_GPIO_P8
, bitmask);
75
break ;
76
case
EXT_IRQ4:
77
case
EXT_IRQ5:
78
*(
volatile
unsigned
char
*)
IER
&= ~bitmask;
79
H8300_GPIO_FREE
(
H8300_GPIO_P9
, bitmask);
80
break
;
81
}
82
}
Generated on Thu Jan 10 2013 12:51:26 for Linux Kernel by
1.8.2