Home | History | Annotate | Download | only in sibyte
      1 /*
      2  * Copyright (C) 2000, 2001, 2002, 2003 Broadcom Corporation
      3  *
      4  * This program is free software; you can redistribute it and/or
      5  * modify it under the terms of the GNU General Public License
      6  * as published by the Free Software Foundation; either version 2
      7  * of the License, or (at your option) any later version.
      8  *
      9  * This program is distributed in the hope that it will be useful,
     10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     12  * GNU General Public License for more details.
     13  *
     14  * You should have received a copy of the GNU General Public License
     15  * along with this program; if not, write to the Free Software
     16  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
     17  */
     18 
     19 #ifndef _ASM_SIBYTE_SB1250_H
     20 #define _ASM_SIBYTE_SB1250_H
     21 
     22 /*
     23  * yymmddpp: year, month, day, patch.
     24  * should sync with Makefile EXTRAVERSION
     25  */
     26 #define SIBYTE_RELEASE 0x02111403
     27 
     28 #define SB1250_NR_IRQS 64
     29 
     30 #define BCM1480_NR_IRQS                 128
     31 #define BCM1480_NR_IRQS_HALF            64
     32 
     33 #define SB1250_DUART_MINOR_BASE		64
     34 
     35 #ifndef __ASSEMBLY__
     36 
     37 #include <asm/addrspace.h>
     38 
     39 /* For revision/pass information */
     40 #include <asm/sibyte/sb1250_scd.h>
     41 #include <asm/sibyte/bcm1480_scd.h>
     42 extern unsigned int sb1_pass;
     43 extern unsigned int soc_pass;
     44 extern unsigned int soc_type;
     45 extern unsigned int periph_rev;
     46 extern unsigned int zbbus_mhz;
     47 
     48 extern void sb1250_time_init(void);
     49 extern void sb1250_mask_irq(int cpu, int irq);
     50 extern void sb1250_unmask_irq(int cpu, int irq);
     51 
     52 extern void bcm1480_time_init(void);
     53 extern void bcm1480_mask_irq(int cpu, int irq);
     54 extern void bcm1480_unmask_irq(int cpu, int irq);
     55 
     56 #define AT_spin \
     57 	__asm__ __volatile__ (		\
     58 		".set noat\n"		\
     59 		"li $at, 0\n"		\
     60 		"1: beqz $at, 1b\n"	\
     61 		".set at\n"		\
     62 		)
     63 
     64 #endif
     65 
     66 #define IOADDR(a) ((void __iomem *)(IO_BASE + (a)))
     67 
     68 #endif
     69