Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
[pandora-kernel.git] / arch / sh / kernel / cpu / sh3 / setup-sh7705.c
index 1983fb7..ebd9d06 100644 (file)
@@ -48,7 +48,7 @@ static int __init sh7705_devices_setup(void)
 }
 __initcall(sh7705_devices_setup);
 
-static struct ipr_data sh7705_ipr_map[] = {
+static struct ipr_data ipr_irq_table[] = {
        /* IRQ, IPR-idx, shift, priority */
        { 16, 0, 12, 2 }, /* TMU0 TUNI*/
        { 17, 0,  8, 2 }, /* TMU1 TUNI */
@@ -70,25 +70,29 @@ static struct ipr_data sh7705_ipr_map[] = {
 };
 
 static unsigned long ipr_offsets[] = {
-       0xFFFFFEE2      /* 0: IPRA */
-,      0xFFFFFEE4      /* 1: IPRB */
-,      0xA4000016      /* 2: IPRC */
-,      0xA4000018      /* 3: IPRD */
-,      0xA400001A      /* 4: IPRE */
-,      0xA4080000      /* 5: IPRF */
-,      0xA4080002      /* 6: IPRG */
-,      0xA4080004      /* 7: IPRH */
+       0xFFFFFEE2,     /* 0: IPRA */
+       0xFFFFFEE4,     /* 1: IPRB */
+       0xA4000016,     /* 2: IPRC */
+       0xA4000018,     /* 3: IPRD */
+       0xA400001A,     /* 4: IPRE */
+       0xA4080000,     /* 5: IPRF */
+       0xA4080002,     /* 6: IPRG */
+       0xA4080004,     /* 7: IPRH */
 };
 
-/* given the IPR index return the address of the IPR register */
-unsigned int map_ipridx_to_addr(int idx)
-{
-       if (idx >= ARRAY_SIZE(ipr_offsets))
-               return 0;
-       return ipr_offsets[idx];
-}
+static struct ipr_desc ipr_irq_desc = {
+       .ipr_offsets    = ipr_offsets,
+       .nr_offsets     = ARRAY_SIZE(ipr_offsets),
+
+       .ipr_data       = ipr_irq_table,
+       .nr_irqs        = ARRAY_SIZE(ipr_irq_table),
+
+       .chip = {
+               .name   = "IPR-sh7705",
+       },
+};
 
-void __init init_IRQ_ipr()
+void __init plat_irq_setup(void)
 {
-       make_ipr_irq(sh7705_ipr_map, ARRAY_SIZE(sh7705_ipr_map));
+       register_ipr_controller(&ipr_irq_desc);
 }