/*	$NetBSD: icureg.h,v 1.8 2003/04/01 02:45:34 igy Exp $	*/

/*-
 * Copyright (c) 1999 Shin Takemura. All rights reserved.
 * Copyright (c) 1999-2001 SATO Kazumi. All rights reserved.
 * Copyright (c) 1999 PocketBSD Project. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *	This product includes software developed by the PocketBSD project
 *	and its contributors.
 * 4. Neither the name of the project nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 */

/*
 *	ICU (Interrupt Control UNIT) Registers definitions
 *		start 0x0A000080 (vr4181)
 *		start 0x0B000080 (vr4102/4111/4121)
 *		start 0x0F000080 (vr4122)
 */
#include "opt_vr41xx.h"
#include <hpcmips/vr/vrcpudef.h>

#define ICU_NO_REG_W		0xffffffff	/* no register */


/* SYSINT1 & MSYSINT1 */
#define SYSINT1_REG_W		0x000	/* Level1 System intr reg 1 */
#define MSYSINT1_REG_W		0x00c	/* Level1 Mask System intr reg 1 */

#define SYSINT1_INT15			(1<<15)
#define SYSINT1_INT14			(1<<14)
#define SYSINT1_INT13			(1<<13)
#define SYSINT1_DOZEPIU			(1<<13)	/* PIU intr during Suspend */
#define SYSINT1_INT12			(1<<12)
#define SYSINT1_CLKRUN			(1<<12) /* CLKRUN intr (=vr4122) */
#define SYSINT1_INT11			(1<<11)
#define SYSINT1_SOFT			(1<<11)	/* Software intr */
#define SYSINT1_INT10			(1<<10)
#define SYSINT1_WRBERR			(1<<10)	/* Bus error intr (4102 <=,<= 4121)*/
#define SYSINT1_INT9			(1<<9)
#define SYSINT1_SIU			(1<<9)	/* SIU intr */
#define SYSINT1_INT8			(1<<8)
#define SYSINT1_GIU			(1<<8)	/* GIU intr */
#define SYSINT1_INT7			(1<<7)
#define SYSINT1_KIU			(1<<7)	/* KIU intr (4102 <=,<= 4121)*/
#define SYSINT1_INT6			(1<<6)
#define SYSINT1_AIU			(1<<6)	/* AIU intr (4102 <=,<= 4121)*/
#define SYSINT1_INT5			(1<<5)
#define SYSINT1_PIU			(1<<5)	/* PIU intr (4102 <=,<= 4121)*/
#define SYSINT1_INT4			(1<<4)
#define SYSINT1_INT3			(1<<3)
#define SYSINT1_ETIMER			(1<<3)	/* ETIMER intr */
#define SYSINT1_INT2			(1<<2)
#define SYSINT1_RTCL1			(1<<2)	/* RTClong1 intr */
#define SYSINT1_INT1			(1<<1)
#define SYSINT1_POWER			(1<<1)	/* PowerSW intr */
#define SYSINT1_INT0			(1<<0)
#define SYSINT1_BAT			(1<<0)	/* Battery intr */


/* PIUINT & MPIUINT */
#define ICUPIUINT_REG_W		0x002	/* Level2 PIU intr reg */
#define MPIUINT_REG_W		0x00e	/* Level2 Mask PIU intr reg */

#define		PIUINT_PADCMD		(1<<6)	/* PIU command scan intr */
#define		PIUINT_PADADP		(1<<5)	/* PIU AD port scan intr */
#define		PIUINT_PADPAGE1		(1<<4)	/* PIU data page 1 intr */
#define		PIUINT_PADPAGE0		(1<<3)	/* PIU data page 0 intr */
#define		PIUINT_PADLOST		(1<<2)	/* A/D data timeout intr */
#define		PIUINT_PENCHG		(1)	/* Touch Panel contact intr */


/* AIUINT & MAIUINT */
#define VR4102_AIUINT_REG_W	0x004	/* Level2 AIU intr reg */	
#define VR4102_MAIUINT_REG_W	0x010	/* Level2 Mask AIU intr reg */
#define VR4122_AIUINT_REG_W	ICU_NO_REG_W	/* Level2 AIU intr reg */	
#define VR4122_MAIUINT_REG_W	ICU_NO_REG_W	/* Level2 Mask AIU intr reg */
#define VR4181_AIUINT_REG_W	0x004	/* Level2 AIU intr reg */	
#define VR4181_MAIUINT_REG_W	0x010	/* Level2 Mask AIU intr reg */
#if defined SINGLE_VRIP_BASE
#if defined VRGROUP_4102_4121
#define AIUINT_REG_W		VR4102_AIUINT_REG_W
#define MAIUINT_REG_W		VR4102_MAIUINT_REG_W
#endif /* VRGROUP_4102_4121 */
#if defined VRGROUP_4122_4131
#define AIUINT_REG_W		VR4122_AIUINT_REG_W
#define MAIUINT_REG_W		VR4122_MAIUINT_REG_W
#endif /* VRGROUP_4122_4131 */
#if defined VRGROUP_4181
#define AIUINT_REG_W		VR4181_AIUINT_REG_W
#define MAIUINT_REG_W		VR4181_MAIUINT_REG_W
#endif /* VRGROUP_4181 */
#endif

#define		AIUINT_INTMEND		(1<<11)	/* Audio input DMA buffer 2 page */
#define		AIUINT_INTM		(1<<10)	/* Audio input DMA buffer 1 page */
#define		AIUINT_INTMIDLE		(1<<9)	/* Audio input idle intr */
#define		AIUINT_INTMST		(1<<8)	/* Audio input receive completion intr */
#define		AIUINT_INTSEND		(1<<3)	/* Audio output buffer 2 page */
#define		AIUINT_INTS		(1<<2)	/* Audio output buffer 1 page */
#define		AIUINT_INTSIDLE		(1<<1)	/* Audio output idle intr */


/* KIUINT & MKIUINT */
#define VR4102_KIUINT_REG_W	0x006	/* Level2 KIU intr reg */
#define VR4102_MKIUINT_REG_W	0x012	/* Level2 Mask KIU intr reg */
#define VR4122_KIUINT_REG_W	ICU_NO_REG_W	/* Level2 KIU intr reg */
#define VR4122_MKIUINT_REG_W	ICU_NO_REG_W	/* Level2 Mask KIU intr reg */
#define VR4181_KIUINT_REG_W	0x118	/* Level2 KIU intr reg */
#define VR4181_MKIUINT_REG_W	0x012	/* Level2 Mask KIU intr reg */
#if defined SINGLE_VRIP_BASE
#if defined VRGROUP_4102_4121
#define KIUINT_REG_W		VR4102_KIUINT_REG_W
#define MKIUINT_REG_W		VR4102_MKIUINT_REG_W
#endif /* VRGROUP_4102_4121 */
#if defined VRGROUP_4122_4131
#define KIUINT_REG_W		VR4122_KIUINT_REG_W
#define MKIUINT_REG_W		VR4122_MKIUINT_REG_W
#endif /* VRGROUP_4122_4131 */
#if defined VRGROUP_4181
#define KIUINT_REG_W		VR4181_KIUINT_REG_W
#define MKIUINT_REG_W		VR4181_MKIUINT_REG_W
#endif /* VRGROUP_4181 */
#endif

#define		KIUINT_KDATLOST		(1<<2)	/* Key scan data lost */
#define		KIUINT_KDATRDY		(1<<1)	/* Key scan data complete */
#define		KIUINT_SCANINT		(1)	/* Key input detect intr */


/* GIUINTL & MGIUINTL */
#define VR4102_GIUINT_L_REG_W	0x008	/* Level2 GIU intr reg Low */
#define VR4102_MGIUINT_L_REG_W	0x014	/* Level2 Mask GIU intr reg Low */
#define VR4122_GIUINT_L_REG_W	0x008	/* Level2 GIU intr reg Low */
#define VR4122_MGIUINT_L_REG_W	0x014	/* Level2 Mask GIU intr reg Low */
#define VR4181_GIUINT_L_REG_W	ICU_NO_REG_W	/* Level2 GIU intr reg Low */
#define VR4181_MGIUINT_L_REG_W	ICU_NO_REG_W	/* Level2 Mask GIU intr reg Low */
#if defined SINGLE_VRIP_BASE
#if defined VRGROUP_4102_4121
#define GIUINT_L_REG_W		VR4102_GIUINT_L_REG_W
#define MGIUINT_L_REG_W		VR4102_MGIUINT_L_REG_W
#endif /* VRGROUP_4102_4121 */
#if defined VRGROUP_4122_4131
#define GIUINT_L_REG_W		VR4122_GIUINT_L_REG_W
#define MGIUINT_L_REG_W		VR4122_MGIUINT_L_REG_W
#endif /* VRGROUP_4122_4131 */
#if defined VRGROUP_4181
#define GIUINT_L_REG_W		VR4181_GIUINT_L_REG_W
#define MGIUINT_L_REG_W		VR4181_MGIUINT_L_REG_W
#endif /* VRGROUP_4181 */
#endif

#define		GIUINT_GPIO15		(1<<15)	/* GPIO 15 */
#define		GIUINT_GPIO14		(1<<14)	/* GPIO 14 */
#define		GIUINT_GPIO13		(1<<13)	/* GPIO 13 */
#define		GIUINT_GPIO12		(1<<12)	/* GPIO 12 */
#define		GIUINT_GPIO11		(1<<11)	/* GPIO 11 */
#define		GIUINT_GPIO10		(1<<10)	/* GPIO 10 */
#define		GIUINT_GPIO9		(1<<9)	/* GPIO 9 */
#define		GIUINT_GPIO8		(1<<8)	/* GPIO 8 */
#define		GIUINT_GPIO7		(1<<7)	/* GPIO 7 */
#define		GIUINT_GPIO6		(1<<6)	/* GPIO 6 */
#define		GIUINT_GPIO5		(1<<5)	/* GPIO 5 */
#define		GIUINT_GPIO4		(1<<4)	/* GPIO 4 */
#define		GIUINT_GPIO3		(1<<3)	/* GPIO 3 */
#define		GIUINT_GPIO2		(1<<2)	/* GPIO 2 */
#define		GIUINT_GPIO1		(1<<1)	/* GPIO 1 */
#define		GIUINT_GPIO0		(1)	/* GPIO 0 */


/* DSIUINT & MDSIUINT */
#define VR4102_DSIUINT_REG_W		0x00a	/* Level2 DSIU intr reg */
#define VR4102_MDSIUINT_REG_W		0x016	/* Level2 Mask DSIU intr reg */
#define VR4122_DSIUINT_REG_W		0x00a	/* Level2 DSIU intr reg */
#define VR4122_MDSIUINT_REG_W		0x016	/* Level2 Mask DSIU intr reg */
#define VR4181_DSIUINT_REG_W		ICU_NO_REG_W	/* Level2 DSIU intr reg */
#define VR4181_MDSIUINT_REG_W		ICU_NO_REG_W	/* Level2 Mask DSIU intr reg */
#if defined SINGLE_VRIP_BASE
#if defined VRGROUP_4102_4121
#define DSIUINT_REG_W		VR4102_DSIUINT_REG_W
#define MDSIUINT_REG_W		VR4102_MDSIUINT_REG_W
#endif /* VRGROUP_4102_4121 */
#if defined VRGROUP_4122_4131
#define DSIUINT_REG_W		VR4122_DSIUINT_REG_W
#define MDSIUINT_REG_W		VR4122_MDSIUINT_REG_W
#endif /* VRGROUP_4122_4131 */
#if defined VRGROUP_4181
#define DSIUINT_REG_W		VR4181_DSIUINT_REG_W
#define MDSIUINT_REG_W		VR4181_MDSIUINT_REG_W
#endif /* VRGROUP_4181 */
#endif

#define		DSIUINT_DCTS		(1<<11)	/* DCTS# change */
#define		DSIUINT_SER0		(1<<10)	/* Debug serial receive error */
#define		DSIUINT_SR0		(1<<9)	/* Debug serial receive */
#define		DSIUINT_ST0		(1<<8)	/* Debug serial transmit */


/* NMI */
#define NMI_REG_W		0x018	/* NMI reg */

#define		LOWBATT_NMIORINT	(1)	/* Low battery type */
#define		LOWBATT_INT0		(1)	/* Low battery int 0 */
#define		LOWBATT_NMI		(0)	/* Low battery NMI */


/* SOFTINT */
#define SOFTINT_REG_W		0x01a	/* Software intr reg */

#define		SOFTINT_MASK3		(1<<3)	/* Softint3 mask */
#define		SOFTINT_SET3		(1<<3)	/* Softint3 set */
#define		SOFTINT_CLEAR3		(0<<3)	/* Softint3 clear */

#define		SOFTINT_MASK2		(1<<2)	/* Softint2 mask */
#define		SOFTINT_SET2		(1<<2)	/* Softint2 set */
#define		SOFTINT_CLEAR2		(0<<2)	/* Softint2 clear */

#define		SOFTINT_MASK1		(1<<1)	/* Softint1 mask */
#define		SOFTINT_SET1		(1<<1)	/* Softint1 set */
#define		SOFTINT_CLEAR1		(0<<1)	/* Softint1 clear */

#define		SOFTINT_MASK0		(1)	/* Softint0 mask */
#define		SOFTINT_SET0		(1)	/* Softint0 set */
#define		SOFTINT_CLEAR0		(0)	/* Softint0 clear */


/* SYSINT2 & MSYSINT2 */
#define VR4102_SYSINT2_REG_W	0x180	/* Level1 System intr reg 2 */
#define VR4102_MSYSINT2_REG_W	0x186	/* Level1 Mask System intr reg 2 */
#define VR4122_SYSINT2_REG_W	0x020	/* Level1 System intr reg 2 */
#define VR4122_MSYSINT2_REG_W	0x026	/* Level1 Mask System intr reg 2 */
#define VR4181_SYSINT2_REG_W	0x180	/* Level1 System intr reg 2 */
#define VR4181_MSYSINT2_REG_W	0x186	/* Level1 Mask System intr reg 2 */
#if defined SINGLE_VRIP_BASE
#if defined VRGROUP_4102_4121
#define SYSINT2_REG_W		VR4102_SYSINT2_REG_W
#define MSYSINT2_REG_W		VR4102_MSYSINT2_REG_W
#endif /* VRGROUP_4102_4121 */
#if defined VRGROUP_4122_4131
#define SYSINT2_REG_W		VR4122_SYSINT2_REG_W
#define MSYSINT2_REG_W		VR4122_MSYSINT2_REG_W
#endif /* VRGROUP_4122_4131 */
#if defined VRGROUP_4181
#define SYSINT2_REG_W		VR4181_SYSINT2_REG_W
#define MSYSINT2_REG_W		VR4181_MSYSINT2_REG_W
#endif /* VRGROUP_4181 */
#endif

#define SYSINT2_INT31			(1<<15)
#define SYSINT2_INT30			(1<<14)
#define SYSINT2_INT29			(1<<13)
#define SYSINT2_INT28			(1<<12)
#define SYSINT2_INT27			(1<<11)
#define SYSINT2_INT26			(1<<10)
#define SYSINT2_INT25			(1<<9)
#define SYSINT2_BCU			(1<<9)  /* BCU intr (=vr4122) */
#define SYSINT2_INT24			(1<<8)
#define SYSINT2_CSI			(1<<8)  /* CSI intr (=vr4122) */
#define SYSINT2_INT23			(1<<7)
#define SYSINT2_SCU			(1<<7)	/* SCU intr (=vr4122) */
#define SYSINT2_INT22			(1<<6)
#define SYSINT2_PCI			(1<<6)	/* PCI intr (=vr4122) */
#define SYSINT2_LCD			(1<<6)	/* LCD intr (=vr4181) */
#define SYSINT2_DSIU			(1<<5)	/* DSUI intr */
#define SYSINT2_DCU81			(1<<5)	/* DCU intr (=4181) */
#define SYSINT2_FIR			(1<<4)	/* FIR intr */
#define SYSINT2_TCLK			(1<<3)	/* TClock Counter intr */
#define SYSINT2_CSI81			(1<<3)	/* CSI intr (=4181) */
#define SYSINT2_HSP			(1<<2)	/* HSP intr (4122>=4102)*/
#define SYSINT2_ECU			(1<<2)	/* EUC intr (=4181)*/
#define SYSINT2_LED			(1<<1)	/* LED intr */
#define SYSINT2_RTCL2			(1<<0)	/* RTCLong2 intr */


/* GIUINTH & MGIUINTH */
#define VR4102_GIUINT_H_REG_W	0x182	/* Level2 GIU intr reg High */
#define VR4102_MGIUINT_H_REG_W	0x188	/* Level2 Mask GIU intr reg High */
#define VR4122_GIUINT_H_REG_W	0x022	/* Level2 GIU intr reg High */
#define VR4122_MGIUINT_H_REG_W	0x028	/* Level2 Mask GIU intr reg High */
#define VR4181_GIUINT_H_REG_W	ICU_NO_REG_W	/* Level2 GIU intr reg High */
#define VR4181_MGIUINT_H_REG_W	ICU_NO_REG_W	/* Level2 Mask GIU intr reg High */
#if defined SINGLE_VRIP_BASE
#if defined VRGROUP_4102_4121
#define GIUINT_H_REG_W		VR4102_GIUINT_H_REG_W
#define MGIUINT_H_REG_W		VR4102_MGIUINT_H_REG_W
#endif /* VRGROUP_4102_4121 */
#if defined VRGROUP_4122_4131
#define GIUINT_H_REG_W		VR4122_GIUINT_H_REG_W
#define MGIUINT_H_REG_W		VR4122_MGIUINT_H_REG_W
#endif /* VRGROUP_4122_4131 */
#if defined VRGROUP_4181
#define GIUINT_H_REG_W		VR4181_GIUINT_H_REG_W
#define MGIUINT_H_REG_W		VR4181_MGIUINT_H_REG_W
#endif /* VRGROUP_4181 */
#endif

#define		GIUINT_GPIO31		(1<<15)	/* GPIO 31 */
#define		GIUINT_GPIO30		(1<<14)	/* GPIO 30 */
#define		GIUINT_GPIO29		(1<<13)	/* GPIO 29 */
#define		GIUINT_GPIO28		(1<<12)	/* GPIO 28 */
#define		GIUINT_GPIO27		(1<<11)	/* GPIO 27 */
#define		GIUINT_GPIO26		(1<<10)	/* GPIO 26 */
#define		GIUINT_GPIO25		(1<<9)	/* GPIO 25 */
#define		GIUINT_GPIO24		(1<<8)	/* GPIO 24 */
#define		GIUINT_GPIO23		(1<<7)	/* GPIO 23 */
#define		GIUINT_GPIO22		(1<<6)	/* GPIO 22 */
#define		GIUINT_GPIO21		(1<<5)	/* GPIO 21 */
#define		GIUINT_GPIO20		(1<<4)	/* GPIO 20 */
#define		GIUINT_GPIO19		(1<<3)	/* GPIO 19 */
#define		GIUINT_GPIO18		(1<<2)	/* GPIO 18 */
#define		GIUINT_GPIO17		(1<<1)	/* GPIO 17 */
#define		GIUINT_GPIO16		(1)	/* GPIO 16 */


/* FIRINT & MFIRINT */
#define VR4102_FIRINT_REG_W	0x184	/* Level2 FIR intr reg */
#define VR4102_MFIRINT_REG_W	0x18a	/* Level2 Mask FIR intr reg */
#define VR4122_FIRINT_REG_W	0x024	/* Level2 FIR intr reg */
#define VR4122_MFIRINT_REG_W	0x02a	/* Level2 Mask FIR intr reg */
#define VR4181_FIRINT_REG_W	ICU_NO_REG_W	/* Level2 FIR intr reg */
#define VR4181_MFIRINT_REG_W	ICU_NO_REG_W	/* Level2 Mask FIR intr reg */
#if defined SINGLE_VRIP_BASE
#if defined VRGROUP_4102_4121
#define FIRINT_REG_W		VR4102_FIRINT_REG_W
#define MFIRINT_REG_W		VR4102_MFIRINT_REG_W
#endif /* VRGROUP_4102_4121 */
#if defined VRGROUP_4122_4131
#define FIRINT_REG_W		VR4122_FIRINT_REG_W
#define MFIRINT_REG_W		VR4122_MFIRINT_REG_W
#endif /* VRGROUP_4122_4131 */
#if defined VRGROUP_4181
#define FIRINT_REG_W		VR4181_FIRINT_REG_W
#define MFIRINT_REG_W		VR4181_MFIRINT_REG_W
#endif /* VRGROUP_4181 */
#endif

#define		FIRINT_FIR		(1<<4)	/* FIR intr */
#define		FIRINT_RECV2		(1<<3)	/* FIR DMA buf recv buffer2 */
#define		FIRINT_TRNS2		(1<<2)	/* FIR DMA buf transmit buffer2 */
#define		FIRINT_RECV1		(1<<1)	/* FIR DMA buf recv buffer1 */
#define		FIRINT_TRNS1		(1)	/* FIR DMA buf transmit buffer1 */


/* PCIINT & MPCIINT */
#define VR4102_PCIINT_REG_W	ICU_NO_REG_W	/* Level2 PCI intr reg */
#define VR4102_MPCIINT_REG_W	ICU_NO_REG_W	/* Level2 PCI intr mask */
#define VR4122_PCIINT_REG_W	0x2c	/* Level2 PCI intr reg */
#define VR4122_MPCIINT_REG_W	0x32	/* Level2 PCI intr mask */
#define VR4181_PCIINT_REG_W	ICU_NO_REG_W	/* Level2 PCI intr reg */
#define VR4181_MPCIINT_REG_W	ICU_NO_REG_W	/* Level2 PCI intr mask */
#if defined SINGLE_VRIP_BASE
#if defined VRGROUP_4102_4121
#define PCIINT_REG_W		VR4102_PCIINT_REG_W
#define MPCIINT_REG_W		VR4102_MPCIINT_REG_W
#endif /* VRGROUP_4102_4121 */
#if defined VRGROUP_4122_4131
#define PCIINT_REG_W		VR4122_PCIINT_REG_W
#define MPCIINT_REG_W		VR4122_MPCIINT_REG_W
#endif /* VRGROUP_4122_4131 */
#if defined VRGROUP_4181
#define PCIINT_REG_W		VR4181_PCIINT_REG_W
#define MPCIINT_REG_W		VR4181_MPCIINT_REG_W
#endif /* VRGROUP_4181 */
#endif

#define		PCIINT_INT0		(1)	/* PCI INT 0 */


/* SCUINT & MSCUINT */
#define VR4102_SCUINT_REG_W	ICU_NO_REG_W	/* Level2 SCU intr reg */
#define VR4102_MSCUINT_REG_W	ICU_NO_REG_W	/* Level2 SCU intr mask */
#define VR4122_SCUINT_REG_W	0x2e	/* Level2 SCU intr reg */
#define VR4122_MSCUINT_REG_W	0x34	/* Level2 SCU intr mask */
#define VR4181_SCUINT_REG_W	ICU_NO_REG_W	/* Level2 SCU intr reg */
#define VR4181_MSCUINT_REG_W	ICU_NO_REG_W	/* Level2 SCU intr mask */
#if defined SINGLE_VRIP_BASE
#if defined VRGROUP_4102_4121
#define SCUINT_REG_W		VR4102_SCUINT_REG_W
#define MSCUINT_REG_W		VR4102_MSCUINT_REG_W
#endif /* VRGROUP_4102_4121 */
#if defined VRGROUP_4122_4131
#define SCUINT_REG_W		VR4122_SCUINT_REG_W
#define MSCUINT_REG_W		VR4122_MSCUINT_REG_W
#endif /* VRGROUP_4122_4131 */
#if defined VRGROUP_4181
#define SCUINT_REG_W		VR4181_SCUINT_REG_W
#define MSCUINT_REG_W		VR4181_MSCUINT_REG_W
#endif /* VRGROUP_4181 */
#endif

#define		SCUINT_INT0		(1)	/* SCU INT 0 */


/* CSIINT & MCSIINT */
#define VR4102_CSIINT_REG_W	ICU_NO_REG_W	/* Level2 CSI intr reg */
#define VR4102_MCSIINT_REG_W	ICU_NO_REG_W	/* Level2 CSI intr mask */
#define VR4122_CSIINT_REG_W	0x30	/* Level2 CSI intr reg */
#define VR4122_MCSIINT_REG_W	0x36	/* Level2 CSI intr mask */
#define VR4181_CSIINT_REG_W	ICU_NO_REG_W	/* Level2 CSI intr reg */
#define VR4181_MCSIINT_REG_W	ICU_NO_REG_W	/* Level2 CSI intr mask */
#if defined SINGLE_VRIP_BASE
#if defined VRGROUP_4102_4121
#define CSIINT_REG_W		VR4102_CSIINT_REG_W
#define MCSIINT_REG_W		VR4102_MCSIINT_REG_W
#endif /* VRGROUP_4102_4121 */
#if defined VRGROUP_4122_4131
#define CSIINT_REG_W		VR4122_CSIINT_REG_W
#define MCSIINT_REG_W		VR4122_MCSIINT_REG_W
#endif /* VRGROUP_4122_4131 */
#if defined VRGROUP_4181
#define CSIINT_REG_W		VR4181_CSIINT_REG_W
#define MCSIINT_REG_W		VR4181_MCSIINT_REG_W
#endif /* VRGROUP_4181 */
#endif

#define		CSIINT_TRPAGE2		(1<<6)	/* DMA send page 2 intr */
#define		CSIINT_TRPAGE1		(1<<5)	/* DMA send page 1 intr */
#define		CSIINT_TREND		(1<<4)	/* send every data intr */
#define		CSIINT_TREMPTY		(1<<3)	/* send FIFO empty intr */
#define		CSIINT_RCPAGE2		(1<<2)	/* DMA recv page 2 intr */
#define		CSIINT_RCPAGE1		(1<<1)	/* DMA recv page 1 intr */
#define		CSIINT_RCOVER		(1)	/* recv FIFO overrun intr */


/* BCUINT & MBCUINT */
#define VR4102_BCUINT_REG_W	ICU_NO_REG_W	/* Level2 BCU intr reg */
#define VR4102_MBCUINT_REG_W	ICU_NO_REG_W	/* Level2 BCU intr mask */
#define VR4122_BCUINT_REG_W	0x38	/* Level2 BCU intr reg */
#define VR4122_MBCUINT_REG_W	0x3a	/* Level2 BCU intr mask */
#define VR4181_BCUINT_REG_W	ICU_NO_REG_W	/* Level2 BCU intr reg */
#define VR4181_MBCUINT_REG_W	ICU_NO_REG_W	/* Level2 BCU intr mask */
#if defined SINGLE_VRIP_BASE
#if defined VRGROUP_4102_4121
#define BCUINT_REG_W		VR4102_BCUINT_REG_W
#define MBCUINT_REG_W		VR4102_MBCUINT_REG_W
#endif /* VRGROUP_4102_4121 */
#if defined VRGROUP_4122_4131
#define BCUINT_REG_W		VR4122_BCUINT_REG_W
#define MBCUINT_REG_W		VR4122_MBCUINT_REG_W
#endif /* VRGROUP_4122_4131 */
#if defined VRGROUP_4181
#define BCUINT_REG_W		VR4181_BCUINT_REG_W
#define MBCUINT_REG_W		VR4181_MBCUINT_REG_W
#endif /* VRGROUP_4181 */
#endif

#define		BCUINT_INT		(1)	/* BCU INT */

/* END icureg.h */
