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 25void davinci_timer_init(struct clk *clk); 26 27struct davinci_timer_instance { 28 u32 base; 29 u32 bottom_irq; 30 u32 top_irq; 31 unsigned long cmp_off; 32 unsigned int cmp_irq; 33}; 34 35struct davinci_timer_info { 36 struct davinci_timer_instance *timers; 37 unsigned int clockevent_id; 38 unsigned int clocksource_id; 39}; 40 41struct davinci_gpio_controller; 42 43/* 44 * SoC info passed into common davinci modules. 45 * 46 * Base addresses in this structure should be physical and not virtual. 47 * Modules that take such base addresses, should internally ioremap() them to 48 * use. 49 */ 50struct davinci_soc_info { 51 struct map_desc *io_desc; 52 unsigned long io_desc_num; 53 u32 cpu_id; 54 u32 jtag_id; 55 u32 jtag_id_reg; 56 struct davinci_id *ids; 57 unsigned long ids_num; 58 u32 pinmux_base; 59 const struct mux_config *pinmux_pins; 60 unsigned long pinmux_pins_num; 61 struct davinci_timer_info *timer_info; 62 int gpio_type; 63 u32 gpio_base; 64 unsigned gpio_num; 65 unsigned gpio_irq; 66 unsigned gpio_unbanked; 67 struct davinci_gpio_controller *gpio_ctlrs; 68 int gpio_ctlrs_num; 69 struct emac_platform_data *emac_pdata; 70 dma_addr_t sram_dma; 71 unsigned sram_len; 72}; 73 74extern struct davinci_soc_info davinci_soc_info; 75 76extern void davinci_common_init(const struct davinci_soc_info *soc_info); 77extern void davinci_init_ide(void); 78void davinci_init_late(void); 79 80#ifdef CONFIG_CPU_FREQ 81int davinci_cpufreq_init(void); 82#else 83static inline int davinci_cpufreq_init(void) { return 0; } 84#endif 85 86#ifdef CONFIG_SUSPEND 87int davinci_pm_init(void); 88#else 89static inline int davinci_pm_init(void) { return 0; } 90#endif 91 92void __init pdata_quirks_init(void); 93 94#define SRAM_SIZE SZ_128K 95 96#endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */ 97