162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * include/asm-mips/dec/ioasic.h 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * DEC I/O ASIC access operations. 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * Copyright (C) 2000, 2002, 2003 Maciej W. Rozycki 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#ifndef __ASM_DEC_IOASIC_H 1162306a36Sopenharmony_ci#define __ASM_DEC_IOASIC_H 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#include <linux/spinlock.h> 1462306a36Sopenharmony_ci#include <linux/types.h> 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciextern spinlock_t ioasic_ssr_lock; 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ciextern volatile u32 *ioasic_base; 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_cistatic inline void ioasic_write(unsigned int reg, u32 v) 2162306a36Sopenharmony_ci{ 2262306a36Sopenharmony_ci ioasic_base[reg / 4] = v; 2362306a36Sopenharmony_ci} 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_cistatic inline u32 ioasic_read(unsigned int reg) 2662306a36Sopenharmony_ci{ 2762306a36Sopenharmony_ci return ioasic_base[reg / 4]; 2862306a36Sopenharmony_ci} 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ciextern void init_ioasic_irqs(int base); 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciextern int dec_ioasic_clocksource_init(void); 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci#endif /* __ASM_DEC_IOASIC_H */ 35