Update of /cvsroot/linux-mips/linux/arch/mips/au1000/pb1000
In directory usw-pr-cvs1:/tmp/cvs-serv25362/arch/mips/au1000/pb1000
Modified Files:
setup.c
Log Message:
* Added pcmcia ide support.
* fixed interrupt handler to work with new pb1000
pcmcia cpld
* modified pcmcia driver to reflect cpld changes
* hardcoded pcmcia driver to apply 3.3V if XV
is detected, which seems to be a socket/hardware problem.
Index: setup.c
===================================================================
RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/pb1000/setup.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- setup.c 2001/09/10 18:07:33 1.8
+++ setup.c 2001/10/03 22:49:23 1.9
@@ -56,6 +56,11 @@
extern void * __rd_start, * __rd_end;
#endif
+#ifdef CONFIG_BLK_DEV_IDE
+extern struct ide_ops std_ide_ops;
+extern struct ide_ops *ide_ops;
+#endif
+
void (*__wbflush) (void);
extern struct rtc_ops no_rtc_ops;
extern char * __init prom_getcmdline(void);
@@ -87,9 +92,9 @@
rtc_ops = &no_rtc_ops;
__wbflush = au1000_wbflush;
- //_machine_restart = au1000_restart;
- //_machine_halt = au1000_halt;
- //_machine_power_off = au1000_power_off;
+ _machine_restart = au1000_restart;
+ _machine_halt = au1000_halt;
+ _machine_power_off = au1000_power_off;
/*
* IO/MEM resources.
@@ -108,6 +113,7 @@
// set AUX clock to 12MHz * 8 = 96 MHz
outl(8, AUX_PLL_CNTRL);
+ outl(0, PIN_STATE);
udelay(1000);
#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
@@ -115,6 +121,7 @@
if ((argptr = strstr(argptr, "usb_ohci=")) == NULL) {
char usb_args[80];
argptr = prom_getcmdline();
+ memset(usb_args, 0, sizeof(usb_args));
sprintf(usb_args, " usb_ohci=base:0x%x,len:0x%x,irq:%d",
USB_OHCI_BASE, USB_OHCI_LEN, AU1000_USB_HOST_INT);
strcat(argptr, usb_args);
@@ -128,7 +135,6 @@
#ifdef CONFIG_USB_OHCI
usb_clocks |= 0x00004000; // CLK2 = FREQ2
#endif
-
outl(usb_clocks, CLOCK_SOURCE_CNTRL);
udelay(1000);
@@ -142,11 +148,9 @@
;
#endif
- // Eric D. says we need to do this.
- outl(0, PIN_STATE);
-
// configure pins GPIO[14:9] as GPIO
pin_func = inl(PIN_FUNCTION) & (u32)(~0x8080);
+
#ifndef CONFIG_AU1000_USB_DEVICE
// 2nd USB port is USB host
pin_func |= 0x8000;
@@ -179,11 +183,10 @@
if ((argptr = strstr(argptr, "video=")) == NULL) {
argptr = prom_getcmdline();
- strcat(argptr, " video=e1356fb:system:pb1000");
+ strcat(argptr, " video=e1356fb:system:pb1000,mmunalign:1");
}
#endif // CONFIG_FB_E1356
-
#ifdef CONFIG_PCI
outl(0x11803e40, STATIC_ADDRESS_1); // expand CE0 to cover PCI
outl(inl(STATIC_CONFIG_0) | 0x1000, STATIC_CONFIG_0); // burst visibility on
@@ -203,6 +206,14 @@
outl(0, UART1_ADDR + UART_CLK);
outl(0, UART2_ADDR + UART_CLK);
outl(0, UART3_ADDR + UART_CLK);
+
+#ifdef CONFIG_BLK_DEV_IDE
+ {
+ argptr = prom_getcmdline();
+ strcat(argptr, " ide0=noprobe");
+ }
+ ide_ops = &std_ide_ops;
+#endif
while (inl(PC_COUNTER_CNTRL) & PC_CNTRL_E0S);
outl(PC_CNTRL_E0 | PC_CNTRL_EN0, PC_COUNTER_CNTRL);
|