1 /*
2  * Copyright (C) 2009  Cisco Systems, Inc.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17  */
18 
19 #ifndef	_ASM_MACH_POWERTV_INTERRUPTS_H_
20 #define _ASM_MACH_POWERTV_INTERRUPTS_H_
21 
22 /*
23  * Defines for all of the interrupt lines
24  */
25 
26 /* Definitions for backward compatibility */
27 #define kIrq_Uart1		irq_uart1
28 
29 #define ibase 0
30 
31 /*------------- Register: int_stat_3 */
32 /* 126 unused (bit 31) */
33 #define irq_asc2video		(ibase+126)	/* ASC 2 Video Interrupt */
34 #define irq_asc1video		(ibase+125)	/* ASC 1 Video Interrupt */
35 #define irq_comms_block_wd	(ibase+124)	/* ASC 1 Video Interrupt */
36 #define irq_fdma_mailbox	(ibase+123)	/* FDMA Mailbox Output */
37 #define irq_fdma_gp		(ibase+122)	/* FDMA GP Output */
38 #define irq_mips_pic		(ibase+121)	/* MIPS Performance Counter
39 						 * Interrupt */
40 #define irq_mips_timer		(ibase+120)	/* MIPS Timer Interrupt */
41 #define irq_memory_protect	(ibase+119)	/* Memory Protection Interrupt
42 						 * -- Ored by glue logic inside
43 						 *  SPARC ILC (see
44 						 *  INT_MEM_PROT_STAT, below,
45 						 *  for individual interrupts)
46 						 */
47 /* 118 unused (bit 22) */
48 #define irq_sbag		(ibase+117)	/* SBAG Interrupt -- Ored by
49 						 * glue logic inside SPARC ILC
50 						 * (see INT_SBAG_STAT, below,
51 						 * for individual interrupts) */
52 #define irq_qam_b_fec		(ibase+116)	/* QAM  B FEC Interrupt */
53 #define irq_qam_a_fec		(ibase+115)	/* QAM A FEC Interrupt */
54 /* 114 unused 	(bit 18) */
55 #define irq_mailbox		(ibase+113)	/* Mailbox Debug Interrupt  --
56 						 * Ored by glue logic inside
57 						 * SPARC ILC (see
58 						 * INT_MAILBOX_STAT, below, for
59 						 * individual interrupts) */
60 #define irq_fuse_stat1		(ibase+112)	/* Fuse Status 1 */
61 #define irq_fuse_stat2		(ibase+111)	/* Fuse Status 2 */
62 #define irq_fuse_stat3		(ibase+110)	/* Blitter Interrupt / Fuse
63 						 * Status 3 */
64 #define irq_blitter		(ibase+110)	/* Blitter Interrupt / Fuse
65 						 * Status 3 */
66 #define irq_avc1_pp0		(ibase+109)	/* AVC Decoder #1 PP0
67 						 * Interrupt */
68 #define irq_avc1_pp1		(ibase+108)	/* AVC Decoder #1 PP1
69 						 * Interrupt */
70 #define irq_avc1_mbe		(ibase+107)	/* AVC Decoder #1 MBE
71 						 * Interrupt */
72 #define irq_avc2_pp0		(ibase+106)	/* AVC Decoder #2 PP0
73 						 * Interrupt */
74 #define irq_avc2_pp1		(ibase+105)	/* AVC Decoder #2 PP1
75 						 * Interrupt */
76 #define irq_avc2_mbe		(ibase+104)	/* AVC Decoder #2 MBE
77 						 * Interrupt */
78 #define irq_zbug_spi		(ibase+103)	/* Zbug SPI Slave Interrupt */
79 #define irq_qam_mod2		(ibase+102)	/* QAM Modulator 2 DMA
80 						 * Interrupt */
81 #define irq_ir_rx		(ibase+101)	/* IR RX 2 Interrupt */
82 #define irq_aud_dsp2		(ibase+100)	/* Audio DSP #2 Interrupt */
83 #define irq_aud_dsp1		(ibase+99)	/* Audio DSP #1 Interrupt */
84 #define irq_docsis		(ibase+98)	/* DOCSIS Debug Interrupt */
85 #define irq_sd_dvp1		(ibase+97)	/* SD DVP #1 Interrupt */
86 #define irq_sd_dvp2		(ibase+96)	/* SD DVP #2 Interrupt */
87 /*------------- Register: int_stat_2 */
88 #define irq_hd_dvp		(ibase+95)	/* HD DVP Interrupt */
89 #define kIrq_Prewatchdog	(ibase+94)	/* watchdog Pre-Interrupt */
90 #define irq_timer2		(ibase+93)	/* Programmable Timer
91 						 * Interrupt 2 */
92 #define irq_1394		(ibase+92)	/* 1394 Firewire Interrupt */
93 #define irq_usbohci		(ibase+91)	/* USB 2.0 OHCI Interrupt */
94 #define irq_usbehci		(ibase+90)	/* USB 2.0 EHCI Interrupt */
95 #define irq_pciexp		(ibase+89)	/* PCI Express 0 Interrupt */
96 #define irq_pciexp0		(ibase+89)	/* PCI Express 0 Interrupt */
97 #define irq_afe1		(ibase+88)	/* AFE 1 Interrupt */
98 #define irq_sata		(ibase+87)	/* SATA 1 Interrupt */
99 #define irq_sata1		(ibase+87)	/* SATA 1 Interrupt */
100 #define irq_dtcp		(ibase+86)	/* DTCP Interrupt */
101 #define irq_pciexp1		(ibase+85)	/* PCI Express 1 Interrupt */
102 /* 84 unused 	(bit 20) */
103 /* 83 unused 	(bit 19) */
104 /* 82 unused 	(bit 18) */
105 #define irq_sata2		(ibase+81)	/* SATA2 Interrupt */
106 #define irq_uart2		(ibase+80)	/* UART2 Interrupt */
107 #define irq_legacy_usb		(ibase+79)	/* Legacy USB Host ISR (1.1
108 						 * Host module) */
109 #define irq_pod			(ibase+78)	/* POD Interrupt */
110 #define irq_slave_usb		(ibase+77)	/* Slave USB */
111 #define irq_denc1		(ibase+76)	/* DENC #1 VTG Interrupt */
112 #define irq_vbi_vtg		(ibase+75)	/* VBI VTG Interrupt */
113 #define irq_afe2		(ibase+74)	/* AFE 2 Interrupt */
114 #define irq_denc2		(ibase+73)	/* DENC #2 VTG Interrupt */
115 #define irq_asc2		(ibase+72)	/* ASC #2 Interrupt */
116 #define irq_asc1		(ibase+71)	/* ASC #1 Interrupt */
117 #define irq_mod_dma		(ibase+70)	/* Modulator DMA Interrupt */
118 #define irq_byte_eng1		(ibase+69)	/* Byte Engine Interrupt [1] */
119 #define irq_byte_eng0		(ibase+68)	/* Byte Engine Interrupt [0] */
120 /* 67 unused 	(bit 03) */
121 /* 66 unused 	(bit 02) */
122 /* 65 unused 	(bit 01) */
123 /* 64 unused 	(bit 00) */
124 /*------------- Register: int_stat_1 */
125 /* 63 unused 	(bit 31) */
126 /* 62 unused 	(bit 30) */
127 /* 61 unused 	(bit 29) */
128 /* 60 unused 	(bit 28) */
129 /* 59 unused 	(bit 27) */
130 /* 58 unused 	(bit 26) */
131 /* 57 unused 	(bit 25) */
132 /* 56 unused 	(bit 24) */
133 #define irq_buf_dma_mem2mem	(ibase+55)	/* BufDMA Memory to Memory
134 						 * Interrupt */
135 #define irq_buf_dma_usbtransmit	(ibase+54)	/* BufDMA USB Transmit
136 						 * Interrupt */
137 #define irq_buf_dma_qpskpodtransmit (ibase+53)	/* BufDMA QPSK/POD Tramsit
138 						 * Interrupt */
139 #define irq_buf_dma_transmit_error (ibase+52)	/* BufDMA Transmit Error
140 						 * Interrupt */
141 #define irq_buf_dma_usbrecv	(ibase+51)	/* BufDMA USB Receive
142 						 * Interrupt */
143 #define irq_buf_dma_qpskpodrecv	(ibase+50)	/* BufDMA QPSK/POD Receive
144 						 * Interrupt */
145 #define irq_buf_dma_recv_error	(ibase+49)	/* BufDMA Receive Error
146 						 * Interrupt */
147 #define irq_qamdma_transmit_play (ibase+48)	/* QAMDMA Transmit/Play
148 						 * Interrupt */
149 #define irq_qamdma_transmit_error (ibase+47)	/* QAMDMA Transmit Error
150 						 * Interrupt */
151 #define irq_qamdma_recv2high	(ibase+46)	/* QAMDMA Receive 2 High
152 						 * (Chans 63-32) */
153 #define irq_qamdma_recv2low	(ibase+45)	/* QAMDMA Receive 2 Low
154 						 * (Chans 31-0) */
155 #define irq_qamdma_recv1high	(ibase+44)	/* QAMDMA Receive 1 High
156 						 * (Chans 63-32) */
157 #define irq_qamdma_recv1low	(ibase+43)	/* QAMDMA Receive 1 Low
158 						 * (Chans 31-0) */
159 #define irq_qamdma_recv_error	(ibase+42)	/* QAMDMA Receive Error
160 						 * Interrupt */
161 #define irq_mpegsplice		(ibase+41)	/* MPEG Splice Interrupt */
162 #define irq_deinterlace_rdy	(ibase+40)	/* Deinterlacer Frame Ready
163 						 * Interrupt */
164 #define irq_ext_in0		(ibase+39)	/* External Interrupt irq_in0 */
165 #define irq_gpio3		(ibase+38)	/* GP I/O IRQ 3 - From GP I/O
166 						 * Module */
167 #define irq_gpio2		(ibase+37)	/* GP I/O IRQ 2 - From GP I/O
168 						 * Module (ABE_intN) */
169 #define irq_pcrcmplt1		(ibase+36)	/* PCR Capture Complete  or
170 						 * Discontinuity 1 */
171 #define irq_pcrcmplt2		(ibase+35)	/* PCR Capture Complete or
172 						 * Discontinuity 2 */
173 #define irq_parse_peierr	(ibase+34)	/* PID Parser Error Detect
174 						 * (PEI) */
175 #define irq_parse_cont_err	(ibase+33)	/* PID Parser continuity error
176 						 * detect */
177 #define irq_ds1framer		(ibase+32)	/* DS1 Framer Interrupt */
178 /*------------- Register: int_stat_0 */
179 #define irq_gpio1		(ibase+31)	/* GP I/O IRQ 1 - From GP I/O
180 						 * Module */
181 #define irq_gpio0		(ibase+30)	/* GP I/O IRQ 0 - From GP I/O
182 						 * Module */
183 #define irq_qpsk_out_aloha	(ibase+29)	/* QPSK Output Slotted Aloha
184 						 * (chan 3) Transmission
185 						 * Completed OK */
186 #define irq_qpsk_out_tdma	(ibase+28)	/* QPSK Output TDMA (chan 2)
187 						 * Transmission Completed OK */
188 #define irq_qpsk_out_reserve	(ibase+27)	/* QPSK Output Reservation
189 						 * (chan 1) Transmission
190 						 * Completed OK */
191 #define irq_qpsk_out_aloha_err	(ibase+26)	/* QPSK Output Slotted Aloha
192 						 * (chan 3)Transmission
193 						 * completed with Errors. */
194 #define irq_qpsk_out_tdma_err	(ibase+25)	/* QPSK Output TDMA (chan 2)
195 						 * Transmission completed with
196 						 * Errors. */
197 #define irq_qpsk_out_rsrv_err	(ibase+24)	/* QPSK Output Reservation
198 						 * (chan 1) Transmission
199 						 * completed with Errors */
200 #define irq_aloha_fail		(ibase+23)	/* Unsuccessful Resend of Aloha
201 						 * for N times. Aloha retry
202 						 * timeout for channel 3. */
203 #define irq_timer1		(ibase+22)	/* Programmable Timer
204 						 * Interrupt */
205 #define irq_keyboard		(ibase+21)	/* Keyboard Module Interrupt */
206 #define irq_i2c			(ibase+20)	/* I2C Module Interrupt */
207 #define irq_spi			(ibase+19)	/* SPI Module Interrupt */
208 #define irq_irblaster		(ibase+18)	/* IR Blaster Interrupt */
209 #define irq_splice_detect	(ibase+17)	/* PID Key Change Interrupt or
210 						 * Splice Detect Interrupt */
211 #define irq_se_micro		(ibase+16)	/* Secure Micro I/F Module
212 						 * Interrupt */
213 #define irq_uart1		(ibase+15)	/* UART Interrupt */
214 #define irq_irrecv		(ibase+14)	/* IR Receiver Interrupt */
215 #define irq_host_int1		(ibase+13)	/* Host-to-Host Interrupt 1 */
216 #define irq_host_int0		(ibase+12)	/* Host-to-Host Interrupt 0 */
217 #define irq_qpsk_hecerr		(ibase+11)	/* QPSK HEC Error Interrupt */
218 #define irq_qpsk_crcerr		(ibase+10)	/* QPSK AAL-5 CRC Error
219 						 * Interrupt */
220 /* 9 unused 	(bit 09) */
221 /* 8 unused 	(bit 08) */
222 #define irq_psicrcerr		(ibase+7) 	/* QAM PSI CRC Error
223 						 * Interrupt */
224 #define irq_psilength_err	(ibase+6) 	/* QAM PSI Length Error
225 						 * Interrupt */
226 #define irq_esfforward		(ibase+5) 	/* ESF Interrupt Mark From
227 						 * Forward Path Reference -
228 						 * every 3ms when forward Mbits
229 						 * and forward slot control
230 						 * bytes are updated. */
231 #define irq_esfreverse		(ibase+4) 	/* ESF Interrupt Mark from
232 						 * Reverse Path Reference -
233 						 * delayed from forward mark by
234 						 * the ranging delay plus a
235 						 * fixed amount. When reverse
236 						 * Mbits and reverse slot
237 						 * control bytes are updated.
238 						 * Occurs every 3ms for 3.0M and
239 						 * 1.554 M upstream rates and
240 						 * every 6 ms for 256K upstream
241 						 * rate. */
242 #define irq_aloha_timeout	(ibase+3) 	/* Slotted-Aloha timeout on
243 						 * Channel 1. */
244 #define irq_reservation		(ibase+2) 	/* Partial (or Incremental)
245 						 * Reservation Message Completed
246 						 * or Slotted aloha verify for
247 						 * channel 1. */
248 #define irq_aloha3		(ibase+1) 	/* Slotted-Aloha Message Verify
249 						 * Interrupt or Reservation
250 						 * increment completed for
251 						 * channel 3. */
252 #define irq_mpeg_d		(ibase+0) 	/* MPEG Decoder Interrupt */
253 #endif	/* _ASM_MACH_POWERTV_INTERRUPTS_H_ */
254