]>
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 | |
9a716579 | 41 | #define TEGRA_POWERGATE_SOR 17 |
bd6a9ddc TR |
42 | #define TEGRA_POWERGATE_DIS 18 |
43 | #define TEGRA_POWERGATE_DISB 19 | |
44 | #define TEGRA_POWERGATE_XUSBA 20 | |
45 | #define TEGRA_POWERGATE_XUSBB 21 | |
46 | #define TEGRA_POWERGATE_XUSBC 22 | |
9a716579 TR |
47 | #define TEGRA_POWERGATE_VIC 23 |
48 | #define TEGRA_POWERGATE_IRAM 24 | |
6cafa97d | 49 | |
6cafa97d | 50 | #define TEGRA_POWERGATE_3D0 TEGRA_POWERGATE_3D |
ce1e3262 | 51 | |
9886e1fd | 52 | #ifdef CONFIG_ARCH_TEGRA |
6ac8cb5c | 53 | int tegra_powergate_is_powered(int id); |
ce1e3262 CC |
54 | int tegra_powergate_power_on(int id); |
55 | int tegra_powergate_power_off(int id); | |
ce1e3262 CC |
56 | int tegra_powergate_remove_clamping(int id); |
57 | ||
58 | /* Must be called with clk disabled, and returns with clk enabled */ | |
80b28791 SW |
59 | int tegra_powergate_sequence_power_up(int id, struct clk *clk, |
60 | struct reset_control *rst); | |
9886e1fd TR |
61 | #else |
62 | static inline int tegra_powergate_is_powered(int id) | |
63 | { | |
64 | return -ENOSYS; | |
65 | } | |
66 | ||
67 | static inline int tegra_powergate_power_on(int id) | |
68 | { | |
69 | return -ENOSYS; | |
70 | } | |
71 | ||
72 | static inline int tegra_powergate_power_off(int id) | |
73 | { | |
74 | return -ENOSYS; | |
75 | } | |
76 | ||
77 | static inline int tegra_powergate_remove_clamping(int id) | |
78 | { | |
79 | return -ENOSYS; | |
80 | } | |
81 | ||
80b28791 SW |
82 | static inline int tegra_powergate_sequence_power_up(int id, struct clk *clk, |
83 | struct reset_control *rst); | |
9886e1fd TR |
84 | { |
85 | return -ENOSYS; | |
86 | } | |
87 | #endif | |
ce1e3262 CC |
88 | |
89 | #endif /* _MACH_TEGRA_POWERGATE_H_ */ |