diff options
Diffstat (limited to 'arch/sh/boards/se/770x/irq.c')
-rw-r--r-- | arch/sh/boards/se/770x/irq.c | 57 |
1 files changed, 29 insertions, 28 deletions
diff --git a/arch/sh/boards/se/770x/irq.c b/arch/sh/boards/se/770x/irq.c index 307ca5da6232..c8eccff77a04 100644 --- a/arch/sh/boards/se/770x/irq.c +++ b/arch/sh/boards/se/770x/irq.c | |||
@@ -55,23 +55,34 @@ void make_se770x_irq(struct ipr_data *table, unsigned int nr_irqs) | |||
55 | } | 55 | } |
56 | 56 | ||
57 | static struct ipr_data se770x_ipr_map[] = { | 57 | static struct ipr_data se770x_ipr_map[] = { |
58 | /* | ||
59 | * Super I/O (Just mimic PC): | ||
60 | * 1: keyboard | ||
61 | * 3: serial 0 | ||
62 | * 4: serial 1 | ||
63 | * 5: printer | ||
64 | * 6: floppy | ||
65 | * 8: rtc | ||
66 | * 12: mouse | ||
67 | * 14: ide0 | ||
68 | */ | ||
58 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) | 69 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) |
59 | /* This is default value */ | 70 | /* This is default value */ |
60 | { 0xf-0x2, 0, 8, 0x2 , BCR_ILCRA}, | 71 | { 13, 0, 8, 0x0f-13 ,BCR_ILCRA}, |
61 | { 0xf-0xa, 0, 4, 0xa , BCR_ILCRA}, | 72 | { 5 , 0, 4, 0x0f- 5 ,BCR_ILCRA}, |
62 | { 0xf-0x5, 0, 0, 0x5 , BCR_ILCRB}, | 73 | { 10, 0, 0, 0x0f-10, BCR_ILCRB}, |
63 | { 0xf-0x8, 0, 4, 0x8 , BCR_ILCRC}, | 74 | { 7 , 0, 4, 0x0f- 7, BCR_ILCRC}, |
64 | { 0xf-0xc, 0, 0, 0xc , BCR_ILCRC}, | 75 | { 3 , 0, 0, 0x0f- 3, BCR_ILCRC}, |
65 | { 0xf-0xe, 0, 12, 0xe , BCR_ILCRD}, | 76 | { 1 , 0, 12, 0x0f- 1, BCR_ILCRD}, |
66 | { 0xf-0x3, 0, 4, 0x3 , BCR_ILCRD}, /* LAN */ | 77 | { 12, 0, 4, 0x0f-12, BCR_ILCRD}, /* LAN */ |
67 | { 0xf-0xd, 0, 8, 0xd , BCR_ILCRE}, | 78 | { 2 , 0, 8, 0x0f- 2, BCR_ILCRE}, /* PCIRQ2 */ |
68 | { 0xf-0x9, 0, 4, 0x9 , BCR_ILCRE}, | 79 | { 6 , 0, 4, 0x0f- 6, BCR_ILCRE}, /* PCIRQ1 */ |
69 | { 0xf-0x1, 0, 0, 0x1 , BCR_ILCRE}, | 80 | { 14, 0, 0, 0x0f-14, BCR_ILCRE}, /* PCIRQ0 */ |
70 | { 0xf-0xf, 0, 12, 0xf , BCR_ILCRF}, | 81 | { 0 , 0, 12, 0x0f , BCR_ILCRF}, |
71 | { 0xf-0xb, 0, 4, 0xb , BCR_ILCRF}, | 82 | { 4 , 0, 4, 0x0f- 4, BCR_ILCRF}, |
72 | { 0xf-0x7, 0, 12, 0x7 , BCR_ILCRG}, | 83 | { 8 , 0, 12, 0x0f- 8, BCR_ILCRG}, |
73 | { 0xf-0x6, 0, 8, 0x6 , BCR_ILCRG}, | 84 | { 9 , 0, 8, 0x0f- 9, BCR_ILCRG}, |
74 | { 0xf-0x4, 0, 4, 0x4 , BCR_ILCRG}, | 85 | { 11, 0, 4, 0x0f-11, BCR_ILCRG}, |
75 | #else | 86 | #else |
76 | { 14, 0, 8, 0x0f-14 ,BCR_ILCRA}, | 87 | { 14, 0, 8, 0x0f-14 ,BCR_ILCRA}, |
77 | { 12, 0, 4, 0x0f-12 ,BCR_ILCRA}, | 88 | { 12, 0, 4, 0x0f-12 ,BCR_ILCRA}, |
@@ -81,8 +92,10 @@ static struct ipr_data se770x_ipr_map[] = { | |||
81 | { 4, 0, 4, 0x0f- 4 ,BCR_ILCRC}, | 92 | { 4, 0, 4, 0x0f- 4 ,BCR_ILCRC}, |
82 | { 3, 0, 0, 0x0f- 3 ,BCR_ILCRC}, | 93 | { 3, 0, 0, 0x0f- 3 ,BCR_ILCRC}, |
83 | { 1, 0, 12, 0x0f- 1 ,BCR_ILCRD}, | 94 | { 1, 0, 12, 0x0f- 1 ,BCR_ILCRD}, |
95 | #if defined(CONFIG_STNIC) | ||
84 | /* ST NIC */ | 96 | /* ST NIC */ |
85 | { 10, 0, 4, 0x0f-10 ,BCR_ILCRD}, /* LAN */ | 97 | { 10, 0, 4, 0x0f-10 ,BCR_ILCRD}, /* LAN */ |
98 | #endif | ||
86 | /* MRSHPC IRQs setting */ | 99 | /* MRSHPC IRQs setting */ |
87 | { 0, 0, 12, 0x0f- 0 ,BCR_ILCRE}, /* PCIRQ3 */ | 100 | { 0, 0, 12, 0x0f- 0 ,BCR_ILCRE}, /* PCIRQ3 */ |
88 | { 11, 0, 8, 0x0f-11 ,BCR_ILCRE}, /* PCIRQ2 */ | 101 | { 11, 0, 8, 0x0f-11 ,BCR_ILCRE}, /* PCIRQ2 */ |
@@ -100,18 +113,6 @@ static struct ipr_data se770x_ipr_map[] = { | |||
100 | */ | 113 | */ |
101 | void __init init_se_IRQ(void) | 114 | void __init init_se_IRQ(void) |
102 | { | 115 | { |
103 | /* | ||
104 | * Super I/O (Just mimic PC): | ||
105 | * 1: keyboard | ||
106 | * 3: serial 0 | ||
107 | * 4: serial 1 | ||
108 | * 5: printer | ||
109 | * 6: floppy | ||
110 | * 8: rtc | ||
111 | * 12: mouse | ||
112 | * 14: ide0 | ||
113 | */ | ||
114 | #if defined(CONFIG_CPU_SUBTYPE_SH7705) | ||
115 | /* Disable all interrupts */ | 116 | /* Disable all interrupts */ |
116 | ctrl_outw(0, BCR_ILCRA); | 117 | ctrl_outw(0, BCR_ILCRA); |
117 | ctrl_outw(0, BCR_ILCRB); | 118 | ctrl_outw(0, BCR_ILCRB); |
@@ -120,6 +121,6 @@ void __init init_se_IRQ(void) | |||
120 | ctrl_outw(0, BCR_ILCRE); | 121 | ctrl_outw(0, BCR_ILCRE); |
121 | ctrl_outw(0, BCR_ILCRF); | 122 | ctrl_outw(0, BCR_ILCRF); |
122 | ctrl_outw(0, BCR_ILCRG); | 123 | ctrl_outw(0, BCR_ILCRG); |
123 | #endif | 124 | |
124 | make_se770x_irq(se770x_ipr_map, ARRAY_SIZE(se770x_ipr_map)); | 125 | make_se770x_irq(se770x_ipr_map, ARRAY_SIZE(se770x_ipr_map)); |
125 | } | 126 | } |