45d704107f49a201ce3090cc14033ca79fc95521
[linux-3.10.git] / arch / arm / mach-tegra / board.h
1 /*
2  * arch/arm/mach-tegra/board.h
3  *
4  * Copyright (C) 2010 Google, Inc.
5  * Copyright (C) 2011 NVIDIA Corporation.
6  *
7  * Author:
8  *      Colin Cross <ccross@google.com>
9  *      Erik Gilling <konkers@google.com>
10  *
11  * This software is licensed under the terms of the GNU General Public
12  * License version 2, as published by the Free Software Foundation, and
13  * may be copied, distributed, and modified under those terms.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  */
21
22 #ifndef __MACH_TEGRA_BOARD_H
23 #define __MACH_TEGRA_BOARD_H
24
25 #include <linux/types.h>
26 #include <linux/power_supply.h>
27
28 #define NVMAP_HEAP_CARVEOUT_IRAM_INIT   \
29         {       .name           = "iram",                                       \
30                 .usage_mask     = NVMAP_HEAP_CARVEOUT_IRAM,                     \
31                 .base           = TEGRA_IRAM_BASE + TEGRA_RESET_HANDLER_SIZE,   \
32                 .size           = TEGRA_IRAM_SIZE - TEGRA_RESET_HANDLER_SIZE,   \
33                 .buddy_size     = 0, /* no buddy allocation for IRAM */         \
34         }
35
36 void tegra_assert_system_reset(char mode, const char *cmd);
37
38 void __init tegra20_init_early(void);
39 void __init tegra30_init_early(void);
40 void __init tegra_map_common_io(void);
41 void __init tegra_init_irq(void);
42 void __init tegra_dt_init_irq(void);
43 void __init tegra_reserve(unsigned long carveout_size, unsigned long fb_size,
44         unsigned long fb2_size);
45 int __init tegra_pcie_init(bool init_port0, bool init_port1);
46 void tegra_init_cache();
47 void __init tegra_release_bootloader_fb(void);
48 void __init tegra_protected_aperture_init(unsigned long aperture);
49 void tegra_move_framebuffer(unsigned long to, unsigned long from,
50         unsigned long size);
51 bool is_tegra_debug_uartport_hs(void);
52 int get_tegra_uart_debug_port_id(void);
53
54 extern unsigned long tegra_bootloader_fb_start;
55 extern unsigned long tegra_bootloader_fb_size;
56 extern unsigned long tegra_fb_start;
57 extern unsigned long tegra_fb_size;
58 extern unsigned long tegra_fb2_start;
59 extern unsigned long tegra_fb2_size;
60 extern unsigned long tegra_carveout_start;
61 extern unsigned long tegra_carveout_size;
62 extern unsigned long tegra_lp0_vec_start;
63 extern unsigned long tegra_lp0_vec_size;
64 extern bool tegra_lp0_vec_relocate;
65 extern unsigned long tegra_grhost_aperture;
66
67 void tegra_init_late(void);
68
69 #ifdef CONFIG_DEBUG_FS
70 int tegra_clk_debugfs_init(void);
71 #else
72 static inline int tegra_clk_debugfs_init(void) { return 0; }
73 #endif
74
75 #if defined(CONFIG_ARCH_TEGRA_2x_SOC) && defined(CONFIG_DEBUG_FS)
76 int __init tegra_powergate_debugfs_init(void);
77 #else
78 static inline int tegra_powergate_debugfs_init(void) { return 0; }
79 #endif
80
81 int __init harmony_regulator_init(void);
82 #ifdef CONFIG_TEGRA_PCI
83 int __init harmony_pcie_init(void);
84 #else
85 static inline int harmony_pcie_init(void) { return 0; }
86 #endif
87
88 void __init tegra_paz00_wifikill_init(void);
89
90 extern void tegra_init_timer(void);
91
92 enum board_fab {
93         BOARD_FAB_A = 0,
94         BOARD_FAB_B,
95         BOARD_FAB_C,
96         BOARD_FAB_D,
97 };
98
99 struct board_info {
100         u16 board_id;
101         u16 sku;
102         u8  fab;
103         u8  major_revision;
104         u8  minor_revision;
105 };
106
107 enum panel_type {
108         panel_type_lvds = 0,
109         panel_type_dsi,
110 };
111
112 enum audio_codec_type {
113         audio_codec_none,
114         audio_codec_wm8903,
115 };
116
117 void tegra_get_board_info(struct board_info *);
118 void tegra_get_pmu_board_info(struct board_info *bi);
119
120 int get_core_edp(void);
121 enum panel_type get_panel_type(void);
122 int tegra_get_modem_id(void);
123 enum power_supply_type get_power_supply_type(void);
124 enum audio_codec_type get_audio_codec_type(void);
125 int get_maximum_cpu_current_supported(void);
126
127 #endif