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/clk.h> 16 #include <linux/compiler.h> 17 #include <linux/types.h> 18 #include <linux/reboot.h> 19 20 #include <asm/irq.h> 21 22 #define DAVINCI_INTC_START NR_IRQS 23 #define DAVINCI_INTC_IRQ(_irqnum) (DAVINCI_INTC_START + (_irqnum)) 24 25 struct davinci_gpio_controller; 26 27 /* 28 * SoC info passed into common davinci modules. 29 * 30 * Base addresses in this structure should be physical and not virtual. 31 * Modules that take such base addresses, should internally ioremap() them to 32 * use. 33 */ 34 struct davinci_soc_info { 35 struct map_desc *io_desc; 36 unsigned long io_desc_num; 37 u32 cpu_id; 38 u32 jtag_id; 39 u32 jtag_id_reg; 40 struct davinci_id *ids; 41 unsigned long ids_num; 42 u32 pinmux_base; 43 const struct mux_config *pinmux_pins; 44 unsigned long pinmux_pins_num; 45 int gpio_type; 46 u32 gpio_base; 47 unsigned gpio_num; 48 unsigned gpio_irq; 49 unsigned gpio_unbanked; 50 struct davinci_gpio_controller *gpio_ctlrs; 51 int gpio_ctlrs_num; 52 struct emac_platform_data *emac_pdata; 53 dma_addr_t sram_dma; 54 unsigned sram_len; 55 }; 56 57 extern struct davinci_soc_info davinci_soc_info; 58 59 extern void davinci_common_init(const struct davinci_soc_info *soc_info); 60 extern void davinci_init_ide(void); 61 void davinci_init_late(void); 62 63 #ifdef CONFIG_CPU_FREQ 64 int davinci_cpufreq_init(void); 65 #else 66 static inline int davinci_cpufreq_init(void) { return 0; } 67 #endif 68 69 #ifdef CONFIG_SUSPEND 70 int davinci_pm_init(void); 71 #else 72 static inline int davinci_pm_init(void) { return 0; } 73 #endif 74 75 void __init pdata_quirks_init(void); 76 77 #define SRAM_SIZE SZ_128K 78 79 #endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */ 80