/*
 * 7420c0 IRQ header file autogenerated by update_bchp.pl
 * DO NOT EDIT THIS FILE BY HAND.
 *
 * Copyright (C) 2011 Broadcom Corporation
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */

#ifndef _BRCMIRQ_H_
#define _BRCMIRQ_H_

#define BRCM_IRQ_EHCI0_0	61
#define BRCM_IRQ_EHCI0_1	56
#define BRCM_IRQ_GENET_0_A	16
#define BRCM_IRQ_GENET_0_B	80
#define BRCM_IRQ_GENET_1_A	69
#define BRCM_IRQ_GENET_1_B	81
#define BRCM_IRQ_HIF		1
#define BRCM_IRQ_HIF_SPI	79
#define BRCM_IRQ_MOCA		68
#define BRCM_IRQ_OHCI0_0	62
#define BRCM_IRQ_OHCI0_1	63
#define BRCM_IRQ_PCIE_INTA	73
#define BRCM_IRQ_PCIE_INTB	74
#define BRCM_IRQ_PCIE_INTC	75
#define BRCM_IRQ_PCIE_INTD	76
#define BRCM_IRQ_PCI_A0		33
#define BRCM_IRQ_PCI_A1		34
#define BRCM_IRQ_PCI_A2		35
#define BRCM_IRQ_SATA		42
#define BRCM_IRQ_STANDBY	70
#define BRCM_IRQ_UARTA		22
#define BRCM_IRQ_UARTB		65
#define BRCM_IRQ_UARTC		66
#define BRCM_IRQ_UPG		19
#define BRCM_IRQLIST_EHCI	{ 61, 56 }
#define BRCM_IRQLIST_OHCI	{ 62, 63 }

#endif /* _BRCMIRQ_H_ */
