aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/linux/linux-mtx-2-2.4.27/27-idsel-cardbus.diff
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/linux/linux-mtx-2-2.4.27/27-idsel-cardbus.diff')
-rw-r--r--recipes/linux/linux-mtx-2-2.4.27/27-idsel-cardbus.diff115
1 files changed, 115 insertions, 0 deletions
diff --git a/recipes/linux/linux-mtx-2-2.4.27/27-idsel-cardbus.diff b/recipes/linux/linux-mtx-2-2.4.27/27-idsel-cardbus.diff
new file mode 100644
index 0000000000..0ec19ccee3
--- /dev/null
+++ b/recipes/linux/linux-mtx-2-2.4.27/27-idsel-cardbus.diff
@@ -0,0 +1,115 @@
+--- linux-org/arch/mips/au1000/mtx-2/board_setup.c 2006-05-01 13:23:16.491209000 +0200
++++ linux/arch/mips/au1000/mtx-2/board_setup.c 2006-04-30 20:35:58.000000000 +0200
+@@ -48,14 +48,45 @@
+
+ extern struct rtc_ops no_rtc_ops;
+
++void board_reset (void)
++{
++ /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
++ au_writel(0x00000000, 0xAE00001C);
++}
++
++
++#if 0
++static void au1x00_setpinfunc (u32 mask, char setbit)
++{
++ u32 pin_func = au_readl(SYS_PINFUNC);
++ au_sync();
++
++ if (setbit)
++ pin_func |= mask;
++ else
++ pin_func &= (u32)(~mask);
++
++ au_writel(pin_func, SYS_PINFUNC);
++}
++#endif
++
++
+ void __init board_setup(void)
+ {
+ rtc_ops = &no_rtc_ops;
+
++#if 0
++
++ /* Enable PSC1 SYNC for AC97. Normaly done in audio driver,
++ * but it is board specific code, so put it here.
++ */
++ au1x00_pinfunc (SYS_PF_MUST_BE_SET | SYS_PF_PSC1_S1, 1);
++
++
+ #if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
+ #ifdef CONFIG_AU1X00_USB_DEVICE
+ // 2nd USB port is USB device
+- au_writel(au_readl(SYS_PINFUNC) & (u32)(~0x8000), SYS_PINFUNC);
++ au1x00_setpinfunc (0x8000, 0); // USB On
+ #endif
+ // enable USB power switch
+ au_writel( au_readl(GPIO2_DIR) | 0x10, GPIO2_DIR );
+@@ -72,8 +103,7 @@
+
+ // initialize sys_pinfunc:
+ // disable second ethernet port (SYS_PF_NI2)
+- // set U3/GPIO23 to GPIO23 (SYS_PF_U3)
+- au_writel( SYS_PF_NI2 | SYS_PF_U3, SYS_PINFUNC );
++ au1x00_setpinfunc (SYS_PF_NI2, 0);
+
+ // initialize GPIO
+ au_writel( 0xFFFFFFFF, SYS_TRIOUTCLR );
+@@ -84,6 +114,6 @@
+ // enable LED and set it to green
+ au_writel( au_readl(GPIO2_DIR) | 0x1800, GPIO2_DIR );
+ au_writel( 0x18000800, GPIO2_OUTPUT );
+-
++#endif
+ printk("4G Systems MTX-2 Board\n");
+ }
+--- linux-org/arch/mips/au1000/mtx-2/irqmap.c 2006-05-01 13:23:27.219879500 +0200
++++ linux/arch/mips/au1000/mtx-2/irqmap.c 2006-04-30 20:35:58.000000000 +0200
+@@ -50,17 +50,24 @@
+ /* Need to define this.
+ */
+ au1xxx_irq_map_t au1xxx_irq_map[] = {
++
++ // SLIC DET pin
++ { AU1000_GPIO_9, INTC_INT_RISE_AND_FALL_EDGE, 0 },
++
++ // Push-Buttons at GPIO 211-215
++ { AU1500_GPIO_208_218, INTC_INT_RISE_AND_FALL_EDGE, 0 },
++
+ { 0, 0, 0}
+ };
+
+-int au1xxx_nr_irqs = 0;
++int au1xxx_nr_irqs = 2;
+
+ #ifdef CONFIG_PCI
+
+-#define INTA AU1000_PCI_INTA
+-#define INTB AU1000_PCI_INTB
+-#define INTC AU1000_PCI_INTC
+-#define INTD AU1000_PCI_INTD
++#define INTA AU1550_PCI_INTA
++#define INTB AU1550_PCI_INTB
++#define INTC AU1550_PCI_INTC
++#define INTD AU1550_PCI_INTD
+ #define INTX 0xFF /* not valid */
+
+ int __init
+@@ -72,12 +79,10 @@
+ * A B C D
+ */
+ {
+- {INTA, INTB, INTX, INTX}, /* IDSEL 0 */
+- {INTB, INTA, INTX, INTX}, /* IDSEL 1 */
+- {INTC, INTD, INTX, INTX}, /* IDSEL 2 */
+- {INTD, INTC, INTX, INTX}, /* IDSEL 3 */
++ {INTA, INTX, INTX, INTX}, /* IDSEL 0 */
++ {INTB, INTC, INTX, INTX}, /* IDSEL 1 */
+ };
+- const long min_idsel = 0, max_idsel = 3, irqs_per_slot = 4;
++ const long min_idsel = 0, max_idsel = 1, irqs_per_slot = 4;
+ return PCI_IRQ_TABLE_LOOKUP;
+ };
+ #endif