0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef __ARCH_ARM_MACH_DAVINCI_COMMON_H
0011 #define __ARCH_ARM_MACH_DAVINCI_COMMON_H
0012
0013 #include <linux/clk.h>
0014 #include <linux/compiler.h>
0015 #include <linux/types.h>
0016 #include <linux/reboot.h>
0017
0018 #include <asm/irq.h>
0019
0020 #define DAVINCI_INTC_START NR_IRQS
0021 #define DAVINCI_INTC_IRQ(_irqnum) (DAVINCI_INTC_START + (_irqnum))
0022
0023 struct davinci_gpio_controller;
0024
0025
0026
0027
0028
0029
0030
0031
0032 struct davinci_soc_info {
0033 struct map_desc *io_desc;
0034 unsigned long io_desc_num;
0035 u32 cpu_id;
0036 u32 jtag_id;
0037 u32 jtag_id_reg;
0038 struct davinci_id *ids;
0039 unsigned long ids_num;
0040 u32 pinmux_base;
0041 const struct mux_config *pinmux_pins;
0042 unsigned long pinmux_pins_num;
0043 int gpio_type;
0044 u32 gpio_base;
0045 unsigned gpio_num;
0046 unsigned gpio_irq;
0047 unsigned gpio_unbanked;
0048 struct davinci_gpio_controller *gpio_ctlrs;
0049 int gpio_ctlrs_num;
0050 struct emac_platform_data *emac_pdata;
0051 dma_addr_t sram_dma;
0052 unsigned sram_len;
0053 };
0054
0055 extern struct davinci_soc_info davinci_soc_info;
0056
0057 extern void davinci_common_init(const struct davinci_soc_info *soc_info);
0058 extern void davinci_init_ide(void);
0059 void davinci_init_late(void);
0060
0061 #ifdef CONFIG_CPU_FREQ
0062 int davinci_cpufreq_init(void);
0063 #else
0064 static inline int davinci_cpufreq_init(void) { return 0; }
0065 #endif
0066
0067 #ifdef CONFIG_SUSPEND
0068 int davinci_pm_init(void);
0069 #else
0070 static inline int davinci_pm_init(void) { return 0; }
0071 #endif
0072
0073 void __init pdata_quirks_init(void);
0074
0075 #define SRAM_SIZE SZ_128K
0076
0077 #endif