arm: tegra: add api to remove device from domain
[linux-3.10.git] / arch / arm / mach-tegra / include / mach / pm_domains.h
1 /*
2  * arch/arm/mach-tegra/include/mach/pm_domains.h
3  *
4  * Copyright (c) 2012-2013, NVIDIA CORPORATION.  All rights reserved.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
13  * more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
18  */
19
20 #ifndef _MACH_TEGRA_PM_DOMAINS_H_
21 #define _MACH_TEGRA_PM_DOMAINS_H_
22
23 #include <linux/clk.h>
24 #include <linux/pm_domain.h>
25
26 struct tegra_pm_domain {
27         struct generic_pm_domain gpd;
28         struct clk *clk;
29 };
30
31 #define to_tegra_pd(_pd) container_of(_pd, struct tegra_pm_domain, gpd);
32
33 #ifdef CONFIG_TEGRA_MC_DOMAINS
34 void tegra_pd_add_device(struct device *dev);
35 void tegra_pd_remove_device(struct device *dev);
36 void tegra_pd_add_sd(struct generic_pm_domain *sd);
37 #else
38 #define tegra_pd_add_device(dev) do { } while (0)
39 #define tegra_pd_remove_device(dev) do { } while (0)
40 #define tegra_pd_add_sd(sd) do { } while (0)
41 #endif /* CONFIG_TEGRA_MC_DOMAINS */
42
43 #endif /* _MACH_TEGRA_PM_DOMAINS_H_ */