Commit | Line | Data |
---|---|---|
ce1e3262 | 1 | /* |
ce1e3262 CC |
2 | * Copyright (c) 2010 Google, Inc |
3 | * | |
4 | * Author: | |
5 | * Colin Cross <ccross@google.com> | |
6 | * | |
7 | * This software is licensed under the terms of the GNU General Public | |
8 | * License version 2, as published by the Free Software Foundation, and | |
9 | * may be copied, distributed, and modified under those terms. | |
10 | * | |
11 | * This program is distributed in the hope that it will be useful, | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | */ | |
17 | ||
18 | #ifndef _MACH_TEGRA_POWERGATE_H_ | |
19 | #define _MACH_TEGRA_POWERGATE_H_ | |
20 | ||
a25186eb | 21 | struct clk; |
80b28791 | 22 | struct reset_control; |
a25186eb | 23 | |
ce1e3262 CC |
24 | #define TEGRA_POWERGATE_CPU 0 |
25 | #define TEGRA_POWERGATE_3D 1 | |
26 | #define TEGRA_POWERGATE_VENC 2 | |
27 | #define TEGRA_POWERGATE_PCIE 3 | |
28 | #define TEGRA_POWERGATE_VDEC 4 | |
29 | #define TEGRA_POWERGATE_L2 5 | |
30 | #define TEGRA_POWERGATE_MPE 6 | |
6cafa97d PDS |
31 | #define TEGRA_POWERGATE_HEG 7 |
32 | #define TEGRA_POWERGATE_SATA 8 | |
33 | #define TEGRA_POWERGATE_CPU1 9 | |
34 | #define TEGRA_POWERGATE_CPU2 10 | |
35 | #define TEGRA_POWERGATE_CPU3 11 | |
36 | #define TEGRA_POWERGATE_CELP 12 | |
37 | #define TEGRA_POWERGATE_3D1 13 | |
bd6a9ddc TR |
38 | #define TEGRA_POWERGATE_CPU0 14 |
39 | #define TEGRA_POWERGATE_C0NC 15 | |
40 | #define TEGRA_POWERGATE_C1NC 16 | |
41 | #define TEGRA_POWERGATE_DIS 18 | |
42 | #define TEGRA_POWERGATE_DISB 19 | |
43 | #define TEGRA_POWERGATE_XUSBA 20 | |
44 | #define TEGRA_POWERGATE_XUSBB 21 | |
45 | #define TEGRA_POWERGATE_XUSBC 22 | |
6cafa97d | 46 | |
6cafa97d | 47 | #define TEGRA_POWERGATE_3D0 TEGRA_POWERGATE_3D |
ce1e3262 | 48 | |
9886e1fd | 49 | #ifdef CONFIG_ARCH_TEGRA |
6ac8cb5c | 50 | int tegra_powergate_is_powered(int id); |
ce1e3262 CC |
51 | int tegra_powergate_power_on(int id); |
52 | int tegra_powergate_power_off(int id); | |
ce1e3262 CC |
53 | int tegra_powergate_remove_clamping(int id); |
54 | ||
55 | /* Must be called with clk disabled, and returns with clk enabled */ | |
80b28791 SW |
56 | int tegra_powergate_sequence_power_up(int id, struct clk *clk, |
57 | struct reset_control *rst); | |
9886e1fd TR |
58 | #else |
59 | static inline int tegra_powergate_is_powered(int id) | |
60 | { | |
61 | return -ENOSYS; | |
62 | } | |
63 | ||
64 | static inline int tegra_powergate_power_on(int id) | |
65 | { | |
66 | return -ENOSYS; | |
67 | } | |
68 | ||
69 | static inline int tegra_powergate_power_off(int id) | |
70 | { | |
71 | return -ENOSYS; | |
72 | } | |
73 | ||
74 | static inline int tegra_powergate_remove_clamping(int id) | |
75 | { | |
76 | return -ENOSYS; | |
77 | } | |
78 | ||
80b28791 SW |
79 | static inline int tegra_powergate_sequence_power_up(int id, struct clk *clk, |
80 | struct reset_control *rst); | |
9886e1fd TR |
81 | { |
82 | return -ENOSYS; | |
83 | } | |
84 | #endif | |
ce1e3262 CC |
85 | |
86 | #endif /* _MACH_TEGRA_POWERGATE_H_ */ |