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
25struct 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 */
34struct 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
57extern struct davinci_soc_info davinci_soc_info;
58
59extern void davinci_common_init(const struct davinci_soc_info *soc_info);
60extern void davinci_init_ide(void);
61void davinci_init_late(void);
62
63#ifdef CONFIG_CPU_FREQ
64int davinci_cpufreq_init(void);
65#else
66static inline int davinci_cpufreq_init(void) { return 0; }
67#endif
68
69#ifdef CONFIG_SUSPEND
70int davinci_pm_init(void);
71#else
72static inline int davinci_pm_init(void) { return 0; }
73#endif
74
75void __init pdata_quirks_init(void);
76
77#define SRAM_SIZE	SZ_128K
78
79#endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */
80