From: Pete P. <pp...@us...> - 2001-10-03 22:49:37
|
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); |