| 
									
										
										
										
											2007-04-30 19:37:19 +01:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Header for code common to all DaVinci machines. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * 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. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef __ARCH_ARM_MACH_DAVINCI_COMMON_H
 | 
					
						
							|  |  |  | #define __ARCH_ARM_MACH_DAVINCI_COMMON_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-21 15:33:32 +02:00
										 |  |  | #include <linux/compiler.h>
 | 
					
						
							|  |  |  | #include <linux/types.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-08 12:40:59 -07:00
										 |  |  | extern void davinci_timer_init(void); | 
					
						
							| 
									
										
										
										
											2007-04-30 19:37:19 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-14 11:30:11 -05:00
										 |  |  | extern void davinci_irq_init(void); | 
					
						
							| 
									
										
										
										
											2009-04-15 12:40:00 -07:00
										 |  |  | extern void __iomem *davinci_intc_base; | 
					
						
							| 
									
										
										
										
											2009-04-15 12:41:40 -07:00
										 |  |  | extern int davinci_intc_type; | 
					
						
							| 
									
										
										
										
											2009-04-14 11:30:11 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-15 12:40:11 -07:00
										 |  |  | struct davinci_timer_instance { | 
					
						
							| 
									
										
										
										
											2010-05-07 17:06:35 -04:00
										 |  |  | 	u32		base; | 
					
						
							| 
									
										
										
										
											2009-04-15 12:40:11 -07:00
										 |  |  | 	u32		bottom_irq; | 
					
						
							|  |  |  | 	u32		top_irq; | 
					
						
							| 
									
										
										
										
											2009-04-15 12:41:54 -07:00
										 |  |  | 	unsigned long	cmp_off; | 
					
						
							|  |  |  | 	unsigned int	cmp_irq; | 
					
						
							| 
									
										
										
										
											2009-04-15 12:40:11 -07:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct davinci_timer_info { | 
					
						
							|  |  |  | 	struct davinci_timer_instance	*timers; | 
					
						
							|  |  |  | 	unsigned int			clockevent_id; | 
					
						
							|  |  |  | 	unsigned int			clocksource_id; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-01 18:37:53 -04:00
										 |  |  | struct davinci_gpio_controller; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-05-07 17:06:39 -04:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * SoC info passed into common davinci modules. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Base addresses in this structure should be physical and not virtual. | 
					
						
							|  |  |  |  * Modules that take such base addresses, should internally ioremap() them to | 
					
						
							|  |  |  |  * use. | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2009-04-15 12:38:58 -07:00
										 |  |  | struct davinci_soc_info { | 
					
						
							|  |  |  | 	struct map_desc			*io_desc; | 
					
						
							|  |  |  | 	unsigned long			io_desc_num; | 
					
						
							| 
									
										
										
										
											2009-04-15 12:39:09 -07:00
										 |  |  | 	u32				cpu_id; | 
					
						
							|  |  |  | 	u32				jtag_id; | 
					
						
							| 
									
										
										
										
											2010-05-07 17:06:34 -04:00
										 |  |  | 	u32				jtag_id_reg; | 
					
						
							| 
									
										
										
										
											2009-04-15 12:39:09 -07:00
										 |  |  | 	struct davinci_id		*ids; | 
					
						
							|  |  |  | 	unsigned long			ids_num; | 
					
						
							| 
									
										
										
										
											2010-01-11 08:22:23 -08:00
										 |  |  | 	struct clk_lookup		*cpu_clks; | 
					
						
							| 
									
										
										
										
											2010-05-07 17:06:36 -04:00
										 |  |  | 	u32				*psc_bases; | 
					
						
							| 
									
										
										
										
											2009-04-15 12:39:33 -07:00
										 |  |  | 	unsigned long			psc_bases_num; | 
					
						
							| 
									
										
										
										
											2010-05-07 17:06:38 -04:00
										 |  |  | 	u32				pinmux_base; | 
					
						
							| 
									
										
										
										
											2009-04-15 12:39:48 -07:00
										 |  |  | 	const struct mux_config		*pinmux_pins; | 
					
						
							|  |  |  | 	unsigned long			pinmux_pins_num; | 
					
						
							| 
									
										
										
										
											2010-05-07 17:06:37 -04:00
										 |  |  | 	u32				intc_base; | 
					
						
							| 
									
										
										
										
											2009-04-15 12:40:00 -07:00
										 |  |  | 	int				intc_type; | 
					
						
							|  |  |  | 	u8				*intc_irq_prios; | 
					
						
							|  |  |  | 	unsigned long			intc_irq_num; | 
					
						
							| 
									
										
										
										
											2010-05-07 17:06:37 -04:00
										 |  |  | 	u32				*intc_host_map; | 
					
						
							| 
									
										
										
										
											2009-04-15 12:40:11 -07:00
										 |  |  | 	struct davinci_timer_info	*timer_info; | 
					
						
							| 
									
										
										
										
											2010-05-01 18:37:54 -04:00
										 |  |  | 	int				gpio_type; | 
					
						
							| 
									
										
										
										
											2010-05-07 17:06:32 -04:00
										 |  |  | 	u32				gpio_base; | 
					
						
							| 
									
										
										
										
											2009-04-15 12:40:35 -07:00
										 |  |  | 	unsigned			gpio_num; | 
					
						
							|  |  |  | 	unsigned			gpio_irq; | 
					
						
							| 
									
										
										
										
											2009-06-25 17:01:31 -07:00
										 |  |  | 	unsigned			gpio_unbanked; | 
					
						
							| 
									
										
										
										
											2010-05-01 18:37:53 -04:00
										 |  |  | 	struct davinci_gpio_controller	*gpio_ctlrs; | 
					
						
							|  |  |  | 	int				gpio_ctlrs_num; | 
					
						
							| 
									
										
										
										
											2009-03-18 12:36:08 -05:00
										 |  |  | 	struct platform_device		*serial_dev; | 
					
						
							| 
									
										
										
										
											2009-04-15 12:40:56 -07:00
										 |  |  | 	struct emac_platform_data	*emac_pdata; | 
					
						
							| 
									
										
										
										
											2009-04-30 17:35:48 -07:00
										 |  |  | 	dma_addr_t			sram_dma; | 
					
						
							|  |  |  | 	unsigned			sram_len; | 
					
						
							| 
									
										
										
										
											2009-04-15 12:38:58 -07:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern struct davinci_soc_info davinci_soc_info; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern void davinci_common_init(struct davinci_soc_info *soc_info); | 
					
						
							| 
									
										
										
										
											2010-04-21 18:11:33 +04:00
										 |  |  | extern void davinci_init_ide(void); | 
					
						
							| 
									
										
										
										
											2011-12-05 11:29:46 +01:00
										 |  |  | void davinci_restart(char mode, const char *cmd); | 
					
						
							| 
									
										
										
										
											2012-04-26 09:45:39 +08:00
										 |  |  | void davinci_init_late(void); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_DAVINCI_RESET_CLOCKS
 | 
					
						
							|  |  |  | int davinci_clk_disable_unused(void); | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | static inline int davinci_clk_disable_unused(void) { return 0; } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_CPU_FREQ
 | 
					
						
							|  |  |  | int davinci_cpufreq_init(void); | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | static inline int davinci_cpufreq_init(void) { return 0; } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifdef CONFIG_SUSPEND
 | 
					
						
							|  |  |  | int davinci_pm_init(void); | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | static inline int davinci_pm_init(void) { return 0; } | 
					
						
							|  |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2009-04-15 12:38:58 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-30 17:35:48 -07:00
										 |  |  | #define SRAM_SIZE	SZ_128K
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-04-30 19:37:19 +01:00
										 |  |  | #endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */
 |