Initial commit
[kernel/linux-3.0.git] / arch / arm / plat-samsung / include / plat / pd.h
1 /* linux/arch/arm/plat-samsung/include/plat/pd.h
2  *
3  * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
4  *              http://www.samsung.com
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
11 #ifndef __ASM_PLAT_SAMSUNG_PD_H
12 #define __ASM_PLAT_SAMSUNG_PD_H __FILE__
13
14 enum exynos_pd_block {
15         PD_MFC,
16         PD_G3D,
17         PD_LCD0,
18         PD_LCD1,
19         PD_TV,
20         PD_CAM,
21         PD_GPS,
22         PD_GPS_ALIVE,
23         PD_ISP,
24         PD_MAUDIO,
25         PD_GSCL,
26         PD_DISP1,
27         PD_TOP,
28 };
29
30 struct samsung_pd_info {
31         int (*init)(struct device *dev);
32         int (*enable)(struct device *dev);
33         int (*disable)(struct device *dev);
34         int (*save)(struct device *dev);
35         int (*restore)(struct device *dev);
36         void __iomem *base;
37         void *data;
38         enum exynos_pd_block id;
39 };
40
41 struct exynos_pd_data {
42         void __iomem *clk_base;
43         void __iomem *clksrc_base;
44         void __iomem *read_base;
45         unsigned long read_phy_addr;
46 };
47
48 int exynos_pd_init(struct device *dev);
49 int exynos_pd_enable(struct device *dev);
50 int exynos_pd_disable(struct device *dev);
51 #endif /* __ASM_PLAT_SAMSUNG_PD_H */