| 
									
										
										
										
											2007-05-11 21:01:28 +01:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2008-08-05 16:14:15 +01:00
										 |  |  |  * arch/arm/mach-ks8695/include/mach/memory.h | 
					
						
							| 
									
										
										
										
											2007-05-11 21:01:28 +01:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Copyright (C) 2006 Andrew Victor | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * KS8695 Memory definitions | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * 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. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef __ASM_ARCH_MEMORY_H
 | 
					
						
							|  |  |  | #define __ASM_ARCH_MEMORY_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-08-05 16:14:15 +01:00
										 |  |  | #include <mach/hardware.h>
 | 
					
						
							| 
									
										
										
										
											2007-05-11 21:01:28 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*
 | 
					
						
							|  |  |  |  * Physical SRAM offset. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2011-01-04 18:07:14 +00:00
										 |  |  | #define PLAT_PHYS_OFFSET		KS8695_SDRAM_PA
 | 
					
						
							| 
									
										
										
										
											2007-05-11 21:01:28 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | #ifndef __ASSEMBLY__
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_PCI
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* PCI mappings */ | 
					
						
							|  |  |  | #define __virt_to_bus(x)	((x) - PAGE_OFFSET + KS8695_PCIMEM_PA)
 | 
					
						
							|  |  |  | #define __bus_to_virt(x)	((x) - KS8695_PCIMEM_PA + PAGE_OFFSET)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Platform-bus mapping */ | 
					
						
							|  |  |  | extern struct bus_type platform_bus_type; | 
					
						
							|  |  |  | #define is_lbus_device(dev)		(dev && dev->bus == &platform_bus_type)
 | 
					
						
							| 
									
										
										
										
											2008-10-07 20:44:07 +01:00
										 |  |  | #define __arch_dma_to_virt(dev, x)	({ (void *) (is_lbus_device(dev) ? \
 | 
					
						
							|  |  |  | 					__phys_to_virt(x) : __bus_to_virt(x)); }) | 
					
						
							| 
									
										
										
										
											2007-05-11 21:01:28 +01:00
										 |  |  | #define __arch_virt_to_dma(dev, x)	({ is_lbus_device(dev) ? \
 | 
					
						
							| 
									
										
										
										
											2012-04-30 12:17:20 +00:00
										 |  |  | 					(dma_addr_t)__virt_to_phys((unsigned long)x) \ | 
					
						
							|  |  |  | 					: (dma_addr_t)__virt_to_bus(x); }) | 
					
						
							| 
									
										
										
										
											2011-01-03 00:00:17 +00:00
										 |  |  | #define __arch_pfn_to_dma(dev, pfn)	\
 | 
					
						
							|  |  |  | 	({ dma_addr_t __dma = __pfn_to_phys(pfn); \ | 
					
						
							| 
									
										
										
										
											2008-09-09 15:54:13 -04:00
										 |  |  | 	   if (!is_lbus_device(dev)) \ | 
					
						
							|  |  |  | 		__dma = __dma - PHYS_OFFSET + KS8695_PCIMEM_PA; \ | 
					
						
							|  |  |  | 	   __dma; }) | 
					
						
							| 
									
										
										
										
											2007-05-11 21:01:28 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-01-03 00:00:17 +00:00
										 |  |  | #define __arch_dma_to_pfn(dev, x)	\
 | 
					
						
							| 
									
										
										
										
											2009-10-31 16:07:16 +00:00
										 |  |  | 	({ dma_addr_t __dma = x;				\ | 
					
						
							|  |  |  | 	   if (!is_lbus_device(dev))				\ | 
					
						
							|  |  |  | 		__dma += PHYS_OFFSET - KS8695_PCIMEM_PA;	\ | 
					
						
							| 
									
										
										
										
											2011-01-03 00:00:17 +00:00
										 |  |  | 	   __phys_to_pfn(__dma);				\ | 
					
						
							| 
									
										
										
										
											2009-10-31 16:07:16 +00:00
										 |  |  | 	}) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-11 21:01:28 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |