diff options
| -rw-r--r-- | arch/mips/au1000/mtx-1/board_setup.c | 29 | ||||
| -rw-r--r-- | arch/mips/au1000/mtx-1/irqmap.c | 2 |
2 files changed, 30 insertions, 1 deletions
diff --git a/arch/mips/au1000/mtx-1/board_setup.c b/arch/mips/au1000/mtx-1/board_setup.c index 7a3cf72c51aa..7bc5af8917da 100644 --- a/arch/mips/au1000/mtx-1/board_setup.c +++ b/arch/mips/au1000/mtx-1/board_setup.c | |||
| @@ -43,6 +43,9 @@ | |||
| 43 | #include <asm/pgtable.h> | 43 | #include <asm/pgtable.h> |
| 44 | #include <asm/mach-au1x00/au1000.h> | 44 | #include <asm/mach-au1x00/au1000.h> |
| 45 | 45 | ||
| 46 | extern int (*board_pci_idsel)(unsigned int devsel, int assert); | ||
| 47 | int mtx1_pci_idsel(unsigned int devsel, int assert); | ||
| 48 | |||
| 46 | void board_reset (void) | 49 | void board_reset (void) |
| 47 | { | 50 | { |
| 48 | /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ | 51 | /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ |
| @@ -72,11 +75,37 @@ void __init board_setup(void) | |||
| 72 | au_writel( 0xFFFFFFFF, SYS_TRIOUTCLR ); | 75 | au_writel( 0xFFFFFFFF, SYS_TRIOUTCLR ); |
| 73 | au_writel( 0x00000001, SYS_OUTPUTCLR ); // set M66EN (PCI 66MHz) to OFF | 76 | au_writel( 0x00000001, SYS_OUTPUTCLR ); // set M66EN (PCI 66MHz) to OFF |
| 74 | au_writel( 0x00000008, SYS_OUTPUTSET ); // set PCI CLKRUN# to OFF | 77 | au_writel( 0x00000008, SYS_OUTPUTSET ); // set PCI CLKRUN# to OFF |
| 78 | au_writel( 0x00000002, SYS_OUTPUTSET ); // set EXT_IO3 ON | ||
| 75 | au_writel( 0x00000020, SYS_OUTPUTCLR ); // set eth PHY TX_ER to OFF | 79 | au_writel( 0x00000020, SYS_OUTPUTCLR ); // set eth PHY TX_ER to OFF |
| 76 | 80 | ||
| 77 | // enable LED and set it to green | 81 | // enable LED and set it to green |
| 78 | au_writel( au_readl(GPIO2_DIR) | 0x1800, GPIO2_DIR ); | 82 | au_writel( au_readl(GPIO2_DIR) | 0x1800, GPIO2_DIR ); |
| 79 | au_writel( 0x18000800, GPIO2_OUTPUT ); | 83 | au_writel( 0x18000800, GPIO2_OUTPUT ); |
| 80 | 84 | ||
| 85 | board_pci_idsel = mtx1_pci_idsel; | ||
| 86 | |||
| 81 | printk("4G Systems MTX-1 Board\n"); | 87 | printk("4G Systems MTX-1 Board\n"); |
| 82 | } | 88 | } |
| 89 | |||
| 90 | int | ||
| 91 | mtx1_pci_idsel(unsigned int devsel, int assert) | ||
| 92 | { | ||
| 93 | #define MTX_IDSEL_ONLY_0_AND_3 0 | ||
| 94 | #if MTX_IDSEL_ONLY_0_AND_3 | ||
| 95 | if (devsel != 0 && devsel != 3) { | ||
| 96 | printk("*** not 0 or 3\n"); | ||
| 97 | return 0; | ||
| 98 | } | ||
| 99 | #endif | ||
| 100 | |||
| 101 | if (assert && devsel != 0) { | ||
| 102 | // supress signal to cardbus | ||
| 103 | au_writel( 0x00000002, SYS_OUTPUTCLR ); // set EXT_IO3 OFF | ||
| 104 | } | ||
| 105 | else { | ||
| 106 | au_writel( 0x00000002, SYS_OUTPUTSET ); // set EXT_IO3 ON | ||
| 107 | } | ||
| 108 | au_sync_udelay(1); | ||
| 109 | return 1; | ||
| 110 | } | ||
| 111 | |||
diff --git a/arch/mips/au1000/mtx-1/irqmap.c b/arch/mips/au1000/mtx-1/irqmap.c index 4693a4eb2b82..a4fa0f227e42 100644 --- a/arch/mips/au1000/mtx-1/irqmap.c +++ b/arch/mips/au1000/mtx-1/irqmap.c | |||
| @@ -48,7 +48,7 @@ | |||
| 48 | #include <asm/mach-au1x00/au1000.h> | 48 | #include <asm/mach-au1x00/au1000.h> |
| 49 | 49 | ||
| 50 | char irq_tab_alchemy[][5] __initdata = { | 50 | char irq_tab_alchemy[][5] __initdata = { |
| 51 | [0] = { -1, INTA, INTB, INTX, INTX}, /* IDSEL 00 - AdapterA-Slot0 (top) */ | 51 | [0] = { -1, INTA, INTA, INTX, INTX}, /* IDSEL 00 - AdapterA-Slot0 (top) */ |
| 52 | [1] = { -1, INTB, INTA, INTX, INTX}, /* IDSEL 01 - AdapterA-Slot1 (bottom) */ | 52 | [1] = { -1, INTB, INTA, INTX, INTX}, /* IDSEL 01 - AdapterA-Slot1 (bottom) */ |
| 53 | [2] = { -1, INTC, INTD, INTX, INTX}, /* IDSEL 02 - AdapterB-Slot0 (top) */ | 53 | [2] = { -1, INTC, INTD, INTX, INTX}, /* IDSEL 02 - AdapterB-Slot0 (top) */ |
| 54 | [3] = { -1, INTD, INTC, INTX, INTX}, /* IDSEL 03 - AdapterB-Slot1 (bottom) */ | 54 | [3] = { -1, INTD, INTC, INTX, INTX}, /* IDSEL 03 - AdapterB-Slot1 (bottom) */ |
