aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/boards/se/770x/irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/boards/se/770x/irq.c')
-rw-r--r--arch/sh/boards/se/770x/irq.c57
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
57static struct ipr_data se770x_ipr_map[] = { 57static 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 */
101void __init init_se_IRQ(void) 114void __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}