1/* 2 * Copyright 2000-2003 MontaVista Software Inc. 3 * Author: MontaVista Software, Inc. 4 * ppopov@mvista.com or source@mvista.com 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License as published by the 8 * Free Software Foundation; either version 2 of the License, or (at your 9 * option) any later version. 10 * 11 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED 12 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 13 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 14 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 15 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 16 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 17 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 18 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 19 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 20 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 21 * 22 * You should have received a copy of the GNU General Public License along 23 * with this program; if not, write to the Free Software Foundation, Inc., 24 * 675 Mass Ave, Cambridge, MA 02139, USA. 25 */ 26#include <linux/init.h> 27#include <linux/sched.h> 28#include <linux/ioport.h> 29#include <linux/mm.h> 30#include <linux/console.h> 31#include <linux/delay.h> 32 33#include <asm/cpu.h> 34#include <asm/bootinfo.h> 35#include <asm/irq.h> 36#include <asm/keyboard.h> 37#include <asm/mipsregs.h> 38#include <asm/reboot.h> 39#include <asm/pgtable.h> 40#include <asm/au1000.h> 41 42void board_reset (void) 43{ 44 /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ 45 au_writel(0x00000000, 0xAE00001C); 46} 47 48void __init board_setup(void) 49{ 50 u32 pin_func; 51 52 // set multiple use pins (UART3/GPIO) to UART (it's used as UART too) 53 pin_func = au_readl(SYS_PINFUNC) & (u32)(~SYS_PF_UR3); 54 pin_func |= SYS_PF_UR3; 55 au_writel(pin_func, SYS_PINFUNC); 56 57 // enable UART 58 au_writel(0x01, UART3_ADDR+UART_MOD_CNTRL); // clock enable (CE) 59 mdelay(10); 60 au_writel(0x03, UART3_ADDR+UART_MOD_CNTRL); // CE and "enable" 61 mdelay(10); 62 63 // enable DTR = USB power up 64 au_writel(0x01, UART3_ADDR+UART_MCR); //? UART_MCR_DTR is 0x01??? 65 66#ifdef CONFIG_PCMCIA_XXS1500 67 /* setup pcmcia signals */ 68 au_writel(0, SYS_PININPUTEN); 69 70 /* gpio 0, 1, and 4 are inputs */ 71 au_writel(1 | (1<<1) | (1<<4), SYS_TRIOUTCLR); 72 73 /* enable GPIO2 if not already enabled */ 74 au_writel(1, GPIO2_ENABLE); 75 /* gpio2 208/9/10/11 are inputs */ 76 au_writel((1<<8) | (1<<9) | (1<<10) | (1<<11), GPIO2_DIR); 77 78 /* turn off power */ 79 au_writel((au_readl(GPIO2_PINSTATE) & ~(1<<14))|(1<<30), GPIO2_OUTPUT); 80#endif 81 82 83#ifdef CONFIG_PCI 84#if defined(__MIPSEB__) 85 au_writel(0xf | (2<<6) | (1<<4), Au1500_PCI_CFG); 86#else 87 au_writel(0xf, Au1500_PCI_CFG); 88#endif 89#endif 90} 91