2 * Copyright (c) 2010 Google, Inc
5 * Colin Cross <ccross@google.com>
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.
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.
18 #ifndef _MACH_TEGRA_POWERGATE_H_
19 #define _MACH_TEGRA_POWERGATE_H_
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
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
38 #define TEGRA_POWERGATE_CPU0 14
39 #define TEGRA_POWERGATE_C0NC 15
40 #define TEGRA_POWERGATE_C1NC 16
41 #define TEGRA_POWERGATE_SOR 17
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
47 #define TEGRA_POWERGATE_VIC 23
48 #define TEGRA_POWERGATE_IRAM 24
50 #define TEGRA_POWERGATE_3D0 TEGRA_POWERGATE_3D
52 #ifdef CONFIG_ARCH_TEGRA
53 int tegra_powergate_is_powered(int id);
54 int tegra_powergate_power_on(int id);
55 int tegra_powergate_power_off(int id);
56 int tegra_powergate_remove_clamping(int id);
58 /* Must be called with clk disabled, and returns with clk enabled */
59 int tegra_powergate_sequence_power_up(int id, struct clk *clk,
60 struct reset_control *rst);
62 static inline int tegra_powergate_is_powered(int id)
67 static inline int tegra_powergate_power_on(int id)
72 static inline int tegra_powergate_power_off(int id)
77 static inline int tegra_powergate_remove_clamping(int id)
82 static inline int tegra_powergate_sequence_power_up(int id, struct clk *clk,
83 struct reset_control *rst);
89 #endif /* _MACH_TEGRA_POWERGATE_H_ */