1 /* 2 * Header for code common to all DaVinci machines. 3 * 4 * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com> 5 * 6 * 2007 (c) MontaVista Software, Inc. This file is licensed under 7 * the terms of the GNU General Public License version 2. This program 8 * is licensed "as is" without any warranty of any kind, whether express 9 * or implied. 10 */ 11 12 #ifndef __ARCH_ARM_MACH_DAVINCI_COMMON_H 13 #define __ARCH_ARM_MACH_DAVINCI_COMMON_H 14 15 #include <linux/compiler.h> 16 #include <linux/types.h> 17 18 struct sys_timer; 19 20 extern struct sys_timer davinci_timer; 21 22 extern void davinci_irq_init(void); 23 extern void __iomem *davinci_intc_base; 24 extern int davinci_intc_type; 25 26 struct davinci_timer_instance { 27 u32 base; 28 u32 bottom_irq; 29 u32 top_irq; 30 unsigned long cmp_off; 31 unsigned int cmp_irq; 32 }; 33 34 struct davinci_timer_info { 35 struct davinci_timer_instance *timers; 36 unsigned int clockevent_id; 37 unsigned int clocksource_id; 38 }; 39 40 struct davinci_gpio_controller; 41 42 /* 43 * SoC info passed into common davinci modules. 44 * 45 * Base addresses in this structure should be physical and not virtual. 46 * Modules that take such base addresses, should internally ioremap() them to 47 * use. 48 */ 49 struct davinci_soc_info { 50 struct map_desc *io_desc; 51 unsigned long io_desc_num; 52 u32 cpu_id; 53 u32 jtag_id; 54 u32 jtag_id_reg; 55 struct davinci_id *ids; 56 unsigned long ids_num; 57 struct clk_lookup *cpu_clks; 58 u32 *psc_bases; 59 unsigned long psc_bases_num; 60 u32 pinmux_base; 61 const struct mux_config *pinmux_pins; 62 unsigned long pinmux_pins_num; 63 u32 intc_base; 64 int intc_type; 65 u8 *intc_irq_prios; 66 unsigned long intc_irq_num; 67 u32 *intc_host_map; 68 struct davinci_timer_info *timer_info; 69 int gpio_type; 70 u32 gpio_base; 71 unsigned gpio_num; 72 unsigned gpio_irq; 73 unsigned gpio_unbanked; 74 struct davinci_gpio_controller *gpio_ctlrs; 75 int gpio_ctlrs_num; 76 struct platform_device *serial_dev; 77 struct emac_platform_data *emac_pdata; 78 dma_addr_t sram_dma; 79 unsigned sram_len; 80 struct platform_device *reset_device; 81 void (*reset)(struct platform_device *); 82 }; 83 84 extern struct davinci_soc_info davinci_soc_info; 85 86 extern void davinci_common_init(struct davinci_soc_info *soc_info); 87 extern void davinci_init_ide(void); 88 89 /* standard place to map on-chip SRAMs; they *may* support DMA */ 90 #define SRAM_VIRT 0xfffe0000 91 #define SRAM_SIZE SZ_128K 92 93 #endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */ 94