18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (C) 2000, 2001, 2002, 2003 Broadcom Corporation
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci#ifndef _ASM_SIBYTE_SB1250_H
78c2ecf20Sopenharmony_ci#define _ASM_SIBYTE_SB1250_H
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci/*
108c2ecf20Sopenharmony_ci * yymmddpp: year, month, day, patch.
118c2ecf20Sopenharmony_ci * should sync with Makefile EXTRAVERSION
128c2ecf20Sopenharmony_ci */
138c2ecf20Sopenharmony_ci#define SIBYTE_RELEASE 0x02111403
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci#define SB1250_NR_IRQS 64
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci#define BCM1480_NR_IRQS			128
188c2ecf20Sopenharmony_ci#define BCM1480_NR_IRQS_HALF		64
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci#define SB1250_DUART_MINOR_BASE		64
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci#ifndef __ASSEMBLY__
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci#include <asm/addrspace.h>
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci/* For revision/pass information */
278c2ecf20Sopenharmony_ci#include <asm/sibyte/sb1250_scd.h>
288c2ecf20Sopenharmony_ci#include <asm/sibyte/bcm1480_scd.h>
298c2ecf20Sopenharmony_ciextern unsigned int sb1_pass;
308c2ecf20Sopenharmony_ciextern unsigned int soc_pass;
318c2ecf20Sopenharmony_ciextern unsigned int soc_type;
328c2ecf20Sopenharmony_ciextern unsigned int periph_rev;
338c2ecf20Sopenharmony_ciextern unsigned int zbbus_mhz;
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciextern void sb1250_time_init(void);
368c2ecf20Sopenharmony_ciextern void sb1250_mask_irq(int cpu, int irq);
378c2ecf20Sopenharmony_ciextern void sb1250_unmask_irq(int cpu, int irq);
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ciextern void bcm1480_time_init(void);
408c2ecf20Sopenharmony_ciextern void bcm1480_mask_irq(int cpu, int irq);
418c2ecf20Sopenharmony_ciextern void bcm1480_unmask_irq(int cpu, int irq);
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci#define AT_spin \
448c2ecf20Sopenharmony_ci	__asm__ __volatile__ (		\
458c2ecf20Sopenharmony_ci		".set noat\n"		\
468c2ecf20Sopenharmony_ci		"li $at, 0\n"		\
478c2ecf20Sopenharmony_ci		"1: beqz $at, 1b\n"	\
488c2ecf20Sopenharmony_ci		".set at\n"		\
498c2ecf20Sopenharmony_ci		)
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci#endif
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci#define IOADDR(a) ((void __iomem *)(IO_BASE + (a)))
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci#endif
56