浏览代码

sh: Wire up more IRQs for SH7709.

hp6xx requires some additional IRQs that aren't currently enabled in
the SH7709 setup code. Wire them up.

Signed-off-by: Takashi YOSHII <takashi.yoshii.ze@hitachi.com>
Signed-off-by: Kristoffer Ericson <kristoffer.ericson@gmail.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Takashi YOSHII 18 年之前
父节点
当前提交
70fe4d87bf
共有 1 个文件被更改,包括 19 次插入10 次删除
  1. 19 10
      arch/sh/kernel/cpu/sh3/setup-sh7709.c

+ 19 - 10
arch/sh/kernel/cpu/sh3/setup-sh7709.c

@@ -48,24 +48,33 @@ static struct platform_device *sh7709_devices[] __initdata = {
 static int __init sh7709_devices_setup(void)
 static int __init sh7709_devices_setup(void)
 {
 {
 	return platform_add_devices(sh7709_devices,
 	return platform_add_devices(sh7709_devices,
-				    ARRAY_SIZE(sh7709_devices));
+		ARRAY_SIZE(sh7709_devices));
 }
 }
 __initcall(sh7709_devices_setup);
 __initcall(sh7709_devices_setup);
 
 
-#define IPRx(A,N) .addr=A, .shift=0*N*-1
+#define IPRx(A,N)	.addr=A, .shift=N
 #define IPRA(N)	IPRx(0xfffffee2UL,N)
 #define IPRA(N)	IPRx(0xfffffee2UL,N)
 #define IPRB(N)	IPRx(0xfffffee4UL,N)
 #define IPRB(N)	IPRx(0xfffffee4UL,N)
+#define IPRC(N)	IPRx(0xa4000016UL,N)
+#define IPRD(N)	IPRx(0xa4000018UL,N)
 #define IPRE(N)	IPRx(0xa400001aUL,N)
 #define IPRE(N)	IPRx(0xa400001aUL,N)
 
 
 static struct ipr_data sh7709_ipr_map[] = {
 static struct ipr_data sh7709_ipr_map[] = {
-	[16]		= { IPRA(15-12), 2 }, /* TMU TUNI0 */
-	[17]		= { IPRA(11-8),  4 }, /* TMU TUNI1 */
-	[22]		= { IPRA(3-0),   2 }, /* RTC CUI */
-	[23 ... 26]	= { IPRB(7-4),   3 }, /* SCI */
-	[27]		= { IPRB(15-12), 2 }, /* WDT ITI */
-	[48 ... 51]	= { IPRE(15-12), 7 }, /* DMA */
-	[52 ... 55]	= { IPRE(11-8),  3 }, /* IRDA */
-	[56 ... 59]	= { IPRE(7-4),   3 }, /* SCIF */
+	[16]		= { IPRA(12), 2 }, /* TMU TUNI0 */
+	[17]		= { IPRA(8),  4 }, /* TMU TUNI1 */
+	[18 ... 19]	= { IPRA(4),  1 }, /* TMU TUNI1 */
+	[20 ... 22]	= { IPRA(0),  2 }, /* RTC CUI */
+	[23 ... 26]	= { IPRB(4),  3 }, /* SCI */
+	[27]		= { IPRB(12), 2 }, /* WDT ITI */
+	[32]		= { IPRC(0),  1 }, /* IRQ 0 */
+	[33]		= { IPRC(4),  1 }, /* IRQ 1 */
+	[34]		= { IPRC(8),  1 }, /* IRQ 2 APM */
+	[35]		= { IPRC(12), 1 }, /* IRQ 3 TOUCHSCREEN */
+	[36]		= { IPRD(0),  1 }, /* IRQ 4 */
+	[37]		= { IPRD(4),  1 }, /* IRQ 5 */
+	[48 ... 51]	= { IPRE(12), 7 }, /* DMA */
+	[52 ... 55]	= { IPRE(8),  3 }, /* IRDA */
+	[56 ... 59]	= { IPRE(4),  3 }, /* SCIF */
 };
 };
 
 
 void __init init_IRQ_ipr()
 void __init init_IRQ_ipr()