Path: blob/master/arch/mips/alchemy/devboards/pb1550/board_setup.c
10820 views
/*1*2* BRIEF MODULE DESCRIPTION3* Alchemy Pb1550 board setup.4*5* Copyright 2000, 2008 MontaVista Software Inc.6* Author: MontaVista Software, Inc. <[email protected]>7*8* This program is free software; you can redistribute it and/or modify it9* under the terms of the GNU General Public License as published by the10* Free Software Foundation; either version 2 of the License, or (at your11* option) any later version.12*13* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED14* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF15* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN16* NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,17* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT18* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF19* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON20* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT21* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF22* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.23*24* You should have received a copy of the GNU General Public License along25* with this program; if not, write to the Free Software Foundation, Inc.,26* 675 Mass Ave, Cambridge, MA 02139, USA.27*/2829#include <linux/init.h>30#include <linux/interrupt.h>3132#include <asm/mach-au1x00/au1000.h>33#include <asm/mach-pb1x00/pb1550.h>34#include <asm/mach-db1x00/bcsr.h>35#include <asm/mach-au1x00/gpio.h>3637#include <prom.h>383940char irq_tab_alchemy[][5] __initdata = {41[12] = { -1, AU1550_PCI_INTB, AU1550_PCI_INTC, AU1550_PCI_INTD, AU1550_PCI_INTA }, /* IDSEL 12 - PCI slot 2 (left) */42[13] = { -1, AU1550_PCI_INTA, AU1550_PCI_INTB, AU1550_PCI_INTC, AU1550_PCI_INTD }, /* IDSEL 13 - PCI slot 1 (right) */43};4445const char *get_system_type(void)46{47return "Alchemy Pb1550";48}4950void __init board_setup(void)51{52u32 pin_func;5354bcsr_init(PB1550_BCSR_PHYS_ADDR,55PB1550_BCSR_PHYS_ADDR + PB1550_BCSR_HEXLED_OFS);5657alchemy_gpio2_enable();5859/*60* Enable PSC1 SYNC for AC'97. Normaly done in audio driver,61* but it is board specific code, so put it here.62*/63pin_func = au_readl(SYS_PINFUNC);64au_sync();65pin_func |= SYS_PF_MUST_BE_SET | SYS_PF_PSC1_S1;66au_writel(pin_func, SYS_PINFUNC);6768bcsr_write(BCSR_PCMCIA, 0); /* turn off PCMCIA power */6970printk(KERN_INFO "AMD Alchemy Pb1550 Board\n");71}7273static int __init pb1550_init_irq(void)74{75irq_set_irq_type(AU1550_GPIO0_INT, IRQF_TRIGGER_LOW);76irq_set_irq_type(AU1550_GPIO1_INT, IRQF_TRIGGER_LOW);77irq_set_irq_type(AU1550_GPIO201_205_INT, IRQF_TRIGGER_HIGH);7879/* enable both PCMCIA card irqs in the shared line */80alchemy_gpio2_enable_int(201);81alchemy_gpio2_enable_int(202);8283return 0;84}85arch_initcall(pb1550_init_irq);868788