unknown changes from android-tegra-nv-3.4
[linux-3.10.git] / arch / arm / mach-tegra / timer.h
1 /*
2  * arch/arm/mach-tegra/timer.h
3  *
4  * Copyright (C) 2010-2011 NVIDIA Corporation
5  *
6  * This software is licensed under the terms of the GNU General Public
7  * License version 2, as published by the Free Software Foundation, and
8  * may be copied, distributed, and modified under those terms.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  */
16
17 #ifndef _MACH_TEGRA_TIMER_H_
18 #define _MACH_TEGRA_TIMER_H_
19
20 #define RTC_SECONDS             0x08
21 #define RTC_SHADOW_SECONDS      0x0c
22 #define RTC_MILLISECONDS        0x10
23
24 #define TIMERUS_CNTR_1US        0x10
25 #define TIMERUS_USEC_CFG        0x14
26 #define TIMERUS_CNTR_FREEZE     0x4c
27
28 #define TIMER1_BASE             0x0
29 #define TIMER2_BASE             0x8
30 #define TIMER3_BASE             0x50
31 #define TIMER4_BASE             0x58
32
33 #define TIMER_PTV               0x0
34 #define TIMER_PCR               0x4
35
36 void __init tegra_init_timer(void);
37
38 #ifdef CONFIG_ARCH_TEGRA_2x_SOC
39 void __init tegra20_init_timer(void);
40 #else
41 void __init tegra30_init_timer(void);
42 #endif
43
44 struct tegra_twd_context {
45         u32 twd_ctrl;
46         u32 twd_load;
47         u32 twd_cnt;
48 };
49
50 #ifdef CONFIG_HAVE_ARM_TWD
51 int tegra_twd_get_state(struct tegra_twd_context *context);
52 void tegra_twd_suspend(struct tegra_twd_context *context);
53 void tegra_twd_resume(struct tegra_twd_context *context);
54 #else
55 static inline int tegra_twd_get_state(struct tegra_twd_context *context)
56 { return -ENODEV; }
57 static inline void tegra_twd_suspend(struct tegra_twd_context *context) {}
58 static inline void tegra_twd_resume(struct tegra_twd_context *context) {}
59 #endif
60
61 #endif /* _MACH_TEGRA_TIMER_H_ */