[ARM/tegra] Add Tegra3 support
[linux-2.6.git] / arch / arm / mach-tegra / board.h
1 /*
2  * arch/arm/mach-tegra/board.h
3  *
4  * Copyright (C) 2010 Google, Inc.
5  *
6  * Author:
7  *      Colin Cross <ccross@google.com>
8  *      Erik Gilling <konkers@google.com>
9  *
10  * This software is licensed under the terms of the GNU General Public
11  * License version 2, as published by the Free Software Foundation, and
12  * may be copied, distributed, and modified under those terms.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  */
20
21 #ifndef __MACH_TEGRA_BOARD_H
22 #define __MACH_TEGRA_BOARD_H
23
24 #include <linux/types.h>
25
26 void tegra_assert_system_reset(char mode, const char *cmd);
27
28 void __init tegra_init_early(void);
29 void __init tegra_map_common_io(void);
30 void __init tegra_init_irq(void);
31 void __init tegra_init_clock(void);
32 void __init tegra_reserve(unsigned long carveout_size, unsigned long fb_size,
33         unsigned long fb2_size);
34 int __init tegra_pcie_init(bool init_port0, bool init_port1);
35 void tegra_init_cache(void);
36 void __init tegra_protected_aperture_init(unsigned long aperture);
37 void tegra_move_framebuffer(unsigned long to, unsigned long from,
38         unsigned long size);
39 bool is_tegra_debug_uartport_hs(void);
40
41 extern unsigned long tegra_bootloader_fb_start;
42 extern unsigned long tegra_bootloader_fb_size;
43 extern unsigned long tegra_fb_start;
44 extern unsigned long tegra_fb_size;
45 extern unsigned long tegra_fb2_start;
46 extern unsigned long tegra_fb2_size;
47 extern unsigned long tegra_carveout_start;
48 extern unsigned long tegra_carveout_size;
49 extern unsigned long tegra_lp0_vec_start;
50 extern unsigned long tegra_lp0_vec_size;
51 extern unsigned long tegra_grhost_aperture;
52
53 extern struct sys_timer tegra_timer;
54
55 enum board_fab {
56         BOARD_FAB_A = 0,
57         BOARD_FAB_B,
58         BOARD_FAB_C,
59         BOARD_FAB_D,
60 };
61
62 struct board_info {
63         u16 board_id;
64         u16 sku;
65         u8  fab;
66         u8  major_revision;
67         u8  minor_revision;
68 };
69
70 void tegra_get_board_info(struct board_info *);
71
72 #endif