aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh
diff options
context:
space:
mode:
authorMagnus Damm <damm@opensource.se>2010-02-09 01:49:56 -0500
committerPaul Mundt <lethal@linux-sh.org>2010-02-09 04:24:30 -0500
commite3e80046e0ce2a595e607a62b650a9b4efea6558 (patch)
tree05cd4e1c960a113d5b0aacca84a584e0a57026c9 /arch/sh
parent8d9adabac3a3a3742c7a47da9e456108a0fd2efb (diff)
sh: sh7723/AP325 SDHI vector merge
Merge the SDHI vectors in the sh7723 INTC table and update the SDHI platform data for AP325. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh')
-rw-r--r--arch/sh/boards/mach-ap325rxa/setup.c4
-rw-r--r--arch/sh/kernel/cpu/sh4a/setup-sh7723.c32
2 files changed, 19 insertions, 17 deletions
diff --git a/arch/sh/boards/mach-ap325rxa/setup.c b/arch/sh/boards/mach-ap325rxa/setup.c
index 27277cbdb636..b5980696abbe 100644
--- a/arch/sh/boards/mach-ap325rxa/setup.c
+++ b/arch/sh/boards/mach-ap325rxa/setup.c
@@ -420,7 +420,7 @@ static struct resource sdhi0_cn3_resources[] = {
420 .flags = IORESOURCE_MEM, 420 .flags = IORESOURCE_MEM,
421 }, 421 },
422 [1] = { 422 [1] = {
423 .start = 101, 423 .start = 100,
424 .flags = IORESOURCE_IRQ, 424 .flags = IORESOURCE_IRQ,
425 }, 425 },
426}; 426};
@@ -443,7 +443,7 @@ static struct resource sdhi1_cn7_resources[] = {
443 .flags = IORESOURCE_MEM, 443 .flags = IORESOURCE_MEM,
444 }, 444 },
445 [1] = { 445 [1] = {
446 .start = 24, 446 .start = 23,
447 .flags = IORESOURCE_IRQ, 447 .flags = IORESOURCE_IRQ,
448 }, 448 },
449}; 449};
diff --git a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
index 9e8620e3ad3e..7b90ebcfa20e 100644
--- a/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
+++ b/arch/sh/kernel/cpu/sh4a/setup-sh7723.c
@@ -601,6 +601,7 @@ void l2_cache_init(void)
601 601
602enum { 602enum {
603 UNUSED=0, 603 UNUSED=0,
604 ENABLED,
604 605
605 /* interrupt sources */ 606 /* interrupt sources */
606 IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7, 607 IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7,
@@ -623,7 +624,6 @@ enum {
623 SCIFA_SCIFA1, 624 SCIFA_SCIFA1,
624 FLCTL_FLSTEI,FLCTL_FLTENDI,FLCTL_FLTREQ0I,FLCTL_FLTREQ1I, 625 FLCTL_FLSTEI,FLCTL_FLTENDI,FLCTL_FLTREQ0I,FLCTL_FLTREQ1I,
625 I2C_ALI,I2C_TACKI,I2C_WAITI,I2C_DTEI, 626 I2C_ALI,I2C_TACKI,I2C_WAITI,I2C_DTEI,
626 SDHI0_SDHII0,SDHI0_SDHII1,SDHI0_SDHII2,
627 CMT_CMTI, 627 CMT_CMTI,
628 TSIF_TSIFI, 628 TSIF_TSIFI,
629 SIU_SIUI, 629 SIU_SIUI,
@@ -631,7 +631,6 @@ enum {
631 TMU0_TUNI0, TMU0_TUNI1, TMU0_TUNI2, 631 TMU0_TUNI0, TMU0_TUNI1, TMU0_TUNI2,
632 IRDA_IRDAI, 632 IRDA_IRDAI,
633 ATAPI_ATAPII, 633 ATAPI_ATAPII,
634 SDHI1_SDHII0,SDHI1_SDHII1,SDHI1_SDHII2,
635 VEU2H1_VEU2HI, 634 VEU2H1_VEU2HI,
636 LCDC_LCDCI, 635 LCDC_LCDCI,
637 TMU1_TUNI0,TMU1_TUNI1,TMU1_TUNI2, 636 TMU1_TUNI0,TMU1_TUNI1,TMU1_TUNI2,
@@ -702,9 +701,9 @@ static struct intc_vect vectors[] __initdata = {
702 INTC_VECT(I2C_WAITI,0xE40), 701 INTC_VECT(I2C_WAITI,0xE40),
703 INTC_VECT(I2C_DTEI,0xE60), 702 INTC_VECT(I2C_DTEI,0xE60),
704 703
705 INTC_VECT(SDHI0_SDHII0,0xE80), 704 INTC_VECT(SDHI0, 0xE80),
706 INTC_VECT(SDHI0_SDHII1,0xEA0), 705 INTC_VECT(SDHI0, 0xEA0),
707 INTC_VECT(SDHI0_SDHII2,0xEC0), 706 INTC_VECT(SDHI0, 0xEC0),
708 707
709 INTC_VECT(CMT_CMTI,0xF00), 708 INTC_VECT(CMT_CMTI,0xF00),
710 INTC_VECT(TSIF_TSIFI,0xF20), 709 INTC_VECT(TSIF_TSIFI,0xF20),
@@ -718,9 +717,9 @@ static struct intc_vect vectors[] __initdata = {
718 INTC_VECT(IRDA_IRDAI,0x480), 717 INTC_VECT(IRDA_IRDAI,0x480),
719 INTC_VECT(ATAPI_ATAPII,0x4A0), 718 INTC_VECT(ATAPI_ATAPII,0x4A0),
720 719
721 INTC_VECT(SDHI1_SDHII0,0x4E0), 720 INTC_VECT(SDHI1, 0x4E0),
722 INTC_VECT(SDHI1_SDHII1,0x500), 721 INTC_VECT(SDHI1, 0x500),
723 INTC_VECT(SDHI1_SDHII2,0x520), 722 INTC_VECT(SDHI1, 0x520),
724 723
725 INTC_VECT(VEU2H1_VEU2HI,0x560), 724 INTC_VECT(VEU2H1_VEU2HI,0x560),
726 INTC_VECT(LCDC_LCDCI,0x580), 725 INTC_VECT(LCDC_LCDCI,0x580),
@@ -739,15 +738,14 @@ static struct intc_group groups[] __initdata = {
739 INTC_GROUP(FLCTL,FLCTL_FLSTEI,FLCTL_FLTENDI,FLCTL_FLTREQ0I,FLCTL_FLTREQ1I), 738 INTC_GROUP(FLCTL,FLCTL_FLSTEI,FLCTL_FLTENDI,FLCTL_FLTREQ0I,FLCTL_FLTREQ1I),
740 INTC_GROUP(I2C,I2C_ALI,I2C_TACKI,I2C_WAITI,I2C_DTEI), 739 INTC_GROUP(I2C,I2C_ALI,I2C_TACKI,I2C_WAITI,I2C_DTEI),
741 INTC_GROUP(_2DG, _2DG_TRI,_2DG_INI,_2DG_CEI), 740 INTC_GROUP(_2DG, _2DG_TRI,_2DG_INI,_2DG_CEI),
742 INTC_GROUP(SDHI1, SDHI1_SDHII0,SDHI1_SDHII1,SDHI1_SDHII2),
743 INTC_GROUP(RTC, RTC_ATI,RTC_PRI,RTC_CUI), 741 INTC_GROUP(RTC, RTC_ATI,RTC_PRI,RTC_CUI),
744 INTC_GROUP(DMAC1B, DMAC1B_DEI4,DMAC1B_DEI5,DMAC1B_DADERR), 742 INTC_GROUP(DMAC1B, DMAC1B_DEI4,DMAC1B_DEI5,DMAC1B_DADERR),
745 INTC_GROUP(SDHI0,SDHI0_SDHII0,SDHI0_SDHII1,SDHI0_SDHII2),
746}; 743};
747 744
748static struct intc_mask_reg mask_registers[] __initdata = { 745static struct intc_mask_reg mask_registers[] __initdata = {
749 { 0xa4080080, 0xa40800c0, 8, /* IMR0 / IMCR0 */ 746 { 0xa4080080, 0xa40800c0, 8, /* IMR0 / IMCR0 */
750 { 0, TMU1_TUNI2,TMU1_TUNI1,TMU1_TUNI0,0,SDHI1_SDHII2,SDHI1_SDHII1,SDHI1_SDHII0} }, 747 { 0, TMU1_TUNI2, TMU1_TUNI1, TMU1_TUNI0,
748 0, 0, ENABLED, ENABLED } },
751 { 0xa4080084, 0xa40800c4, 8, /* IMR1 / IMCR1 */ 749 { 0xa4080084, 0xa40800c4, 8, /* IMR1 / IMCR1 */
752 { VIO_VOUI, VIO_VEU2HI,VIO_BEUI,VIO_CEUI,DMAC0A_DEI3,DMAC0A_DEI2,DMAC0A_DEI1,DMAC0A_DEI0 } }, 750 { VIO_VOUI, VIO_VEU2HI,VIO_BEUI,VIO_CEUI,DMAC0A_DEI3,DMAC0A_DEI2,DMAC0A_DEI1,DMAC0A_DEI0 } },
753 { 0xa4080088, 0xa40800c8, 8, /* IMR2 / IMCR2 */ 751 { 0xa4080088, 0xa40800c8, 8, /* IMR2 / IMCR2 */
@@ -764,7 +762,8 @@ static struct intc_mask_reg mask_registers[] __initdata = {
764 { I2C_DTEI, I2C_WAITI, I2C_TACKI, I2C_ALI, 762 { I2C_DTEI, I2C_WAITI, I2C_TACKI, I2C_ALI,
765 FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } }, 763 FLCTL_FLTREQ1I, FLCTL_FLTREQ0I, FLCTL_FLTENDI, FLCTL_FLSTEI } },
766 { 0xa40800a0, 0xa40800e0, 8, /* IMR8 / IMCR8 */ 764 { 0xa40800a0, 0xa40800e0, 8, /* IMR8 / IMCR8 */
767 { 0,SDHI0_SDHII2,SDHI0_SDHII1,SDHI0_SDHII0,0,0,SCIFA_SCIFA2,SIU_SIUI } }, 765 { 0, 0, ENABLED, ENABLED,
766 0, 0, SCIFA_SCIFA2, SIU_SIUI } },
768 { 0xa40800a4, 0xa40800e4, 8, /* IMR9 / IMCR9 */ 767 { 0xa40800a4, 0xa40800e4, 8, /* IMR9 / IMCR9 */
769 { 0, 0, 0, CMT_CMTI, 0, 0, USB_USI0,0 } }, 768 { 0, 0, 0, CMT_CMTI, 0, 0, USB_USI0,0 } },
770 { 0xa40800a8, 0xa40800e8, 8, /* IMR10 / IMCR10 */ 769 { 0xa40800a8, 0xa40800e8, 8, /* IMR10 / IMCR10 */
@@ -804,9 +803,12 @@ static struct intc_mask_reg ack_registers[] __initdata = {
804 { IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7 } }, 803 { IRQ0, IRQ1, IRQ2, IRQ3, IRQ4, IRQ5, IRQ6, IRQ7 } },
805}; 804};
806 805
807static DECLARE_INTC_DESC_ACK(intc_desc, "sh7723", vectors, groups, 806static struct intc_desc intc_desc __initdata = {
808 mask_registers, prio_registers, sense_registers, 807 .name = "sh7723",
809 ack_registers); 808 .force_enable = ENABLED,
809 .hw = INTC_HW_DESC(vectors, groups, mask_registers,
810 prio_registers, sense_registers, ack_registers),
811};
810 812
811void __init plat_irq_setup(void) 813void __init plat_irq_setup(void)
812{ 814{