| 
									
										
										
										
											2006-09-18 23:10:26 +01:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2008-08-05 16:14:15 +01:00
										 |  |  |  * arch/arm/mach-iop32x/include/mach/uncompress.h | 
					
						
							| 
									
										
										
										
											2006-09-18 23:10:26 +01:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2006-09-18 23:26:25 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-09-18 23:10:26 +01:00
										 |  |  | #include <asm/types.h>
 | 
					
						
							|  |  |  | #include <asm/mach-types.h>
 | 
					
						
							|  |  |  | #include <linux/serial_reg.h>
 | 
					
						
							| 
									
										
										
										
											2008-08-05 16:14:15 +01:00
										 |  |  | #include <mach/hardware.h>
 | 
					
						
							| 
									
										
										
										
											2006-09-18 23:10:26 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-28 17:00:17 -04:00
										 |  |  | volatile u8 *uart_base; | 
					
						
							| 
									
										
										
										
											2006-09-18 23:10:26 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-09-18 23:26:25 +01:00
										 |  |  | #define TX_DONE		(UART_LSR_TEMT | UART_LSR_THRE)
 | 
					
						
							| 
									
										
										
										
											2006-09-18 23:10:26 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | static inline void putc(char c) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	while ((uart_base[UART_LSR] & TX_DONE) != TX_DONE) | 
					
						
							|  |  |  | 		barrier(); | 
					
						
							| 
									
										
										
										
											2006-09-18 23:26:25 +01:00
										 |  |  | 	uart_base[UART_TX] = c; | 
					
						
							| 
									
										
										
										
											2006-09-18 23:10:26 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline void flush(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static __inline__ void __arch_decomp_setup(unsigned long arch_id) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	if (machine_is_iq80321()) | 
					
						
							|  |  |  | 		uart_base = (volatile u8 *)IQ80321_UART; | 
					
						
							| 
									
										
										
										
											2007-07-15 20:12:23 +01:00
										 |  |  | 	else if (machine_is_iq31244() || machine_is_em7210()) | 
					
						
							| 
									
										
										
										
											2006-09-18 23:10:26 +01:00
										 |  |  | 		uart_base = (volatile u8 *)IQ31244_UART; | 
					
						
							|  |  |  | 	else | 
					
						
							|  |  |  | 		uart_base = (volatile u8 *)0xfe800000; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * nothing to do | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define arch_decomp_setup()	__arch_decomp_setup(arch_id)
 | 
					
						
							|  |  |  | #define arch_decomp_wdog()
 |