1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Copyright (C) 2000, 2001, 2002, 2003 Broadcom Corporation
4  */
5 
6 #ifndef _ASM_SIBYTE_SB1250_H
7 #define _ASM_SIBYTE_SB1250_H
8 
9 /*
10  * yymmddpp: year, month, day, patch.
11  * should sync with Makefile EXTRAVERSION
12  */
13 #define SIBYTE_RELEASE 0x02111403
14 
15 #define SB1250_NR_IRQS 64
16 
17 #define BCM1480_NR_IRQS			128
18 #define BCM1480_NR_IRQS_HALF		64
19 
20 #define SB1250_DUART_MINOR_BASE		64
21 
22 #ifndef __ASSEMBLY__
23 
24 #include <asm/addrspace.h>
25 
26 /* For revision/pass information */
27 #include <asm/sibyte/sb1250_scd.h>
28 #include <asm/sibyte/bcm1480_scd.h>
29 extern unsigned int sb1_pass;
30 extern unsigned int soc_pass;
31 extern unsigned int soc_type;
32 extern unsigned int periph_rev;
33 extern unsigned int zbbus_mhz;
34 
35 extern void sb1250_mask_irq(int cpu, int irq);
36 extern void sb1250_unmask_irq(int cpu, int irq);
37 
38 extern void bcm1480_time_init(void);
39 extern void bcm1480_mask_irq(int cpu, int irq);
40 extern void bcm1480_unmask_irq(int cpu, int irq);
41 
42 #define AT_spin \
43 	__asm__ __volatile__ (		\
44 		".set noat\n"		\
45 		"li $at, 0\n"		\
46 		"1: beqz $at, 1b\n"	\
47 		".set at\n"		\
48 		)
49 
50 #endif
51 
52 #define IOADDR(a) ((void __iomem *)(IO_BASE + (a)))
53 
54 #endif
55