2007-04-30 19:37:19 +01:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								/*
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * Low-level IRQ helper macros for TI DaVinci-based platforms
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 *
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com>
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 *
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * 2007 (c) MontaVista Software, Inc. This file is licensed under
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * the terms of the GNU General Public License version 2. This program
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * is licensed "as is" without any warranty of any kind, whether express
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * or implied.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 */
							 | 
						
					
						
							
								
									
										
										
										
											2008-08-05 16:14:15 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#include <mach/irqs.h>
							 | 
						
					
						
							
								
									
										
										
										
											2007-04-30 19:37:19 +01:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
										.macro  get_irqnr_preamble, base, tmp
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-15 12:40:00 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
										ldr \base, =davinci_intc_base
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
										ldr \base, [\base]
							 | 
						
					
						
							
								
									
										
										
										
											2007-04-30 19:37:19 +01:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
										.endm
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
										.macro	get_irqnr_and_base, irqnr, irqstat, base, tmp
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-15 12:41:40 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#if defined(CONFIG_AINTC) && defined(CONFIG_CP_INTC)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
										ldr \tmp, =davinci_intc_type
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
										ldr \tmp, [\tmp]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
										cmp \tmp, #DAVINCI_INTC_TYPE_CP_INTC
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
										beq 1001f
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#endif
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#if defined(CONFIG_AINTC)
							 | 
						
					
						
							
								
									
										
										
										
											2007-04-30 19:37:19 +01:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
										ldr \tmp, [\base, #0x14]
							 | 
						
					
						
							
								
									
										
										
										
											2008-02-11 14:44:07 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
										movs \tmp, \tmp, lsr #2
							 | 
						
					
						
							
								
									
										
										
										
											2007-04-30 19:37:19 +01:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
										sub \irqnr, \tmp, #1
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-15 12:41:40 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
										b 1002f
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#endif
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#if defined(CONFIG_CP_INTC)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								1001:		ldr \irqnr, [\base, #0x80] /* get irq number */
							 | 
						
					
						
							
								
									
										
										
										
											2012-06-20 23:10:13 +05:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
										mov \tmp, \irqnr, lsr #31
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-15 12:41:40 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
										and \irqnr, \irqnr, #0xff  /* irq is in bits 0-9 */
							 | 
						
					
						
							
								
									
										
										
										
											2012-06-20 23:10:13 +05:30
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
										and \tmp, \tmp, #0x1
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
										cmp \tmp, #0x1
							 | 
						
					
						
							
								
									
										
										
										
											2009-04-15 12:41:40 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#endif
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								1002:
							 | 
						
					
						
							
								
									
										
										
										
											2007-04-30 19:37:19 +01:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
										.endm
							 |