]>
Commit | Line | Data |
---|---|---|
8f45b112 KM |
1 | /* |
2 | * Copyright (C) 2012 Renesas Solutions Corp. | |
3 | * | |
4 | * Kuninori Morimoto <morimoto.kuninori@renesas.com> | |
5 | * | |
6 | * This file is subject to the terms and conditions of the GNU General Public | |
7 | * License. See the file "COPYING" in the main directory of this archive | |
8 | * for more details. | |
9 | */ | |
10 | #ifndef PM_RMOBILE_H | |
11 | #define PM_RMOBILE_H | |
12 | ||
13 | #include <linux/pm_domain.h> | |
14 | ||
ac18e02d RW |
15 | #define DEFAULT_DEV_LATENCY_NS 250000 |
16 | ||
8f45b112 KM |
17 | struct platform_device; |
18 | ||
19 | struct rmobile_pm_domain { | |
20 | struct generic_pm_domain genpd; | |
21 | struct dev_power_governor *gov; | |
22 | int (*suspend)(void); | |
23 | void (*resume)(void); | |
25717b85 | 24 | void __iomem *base; |
8f45b112 KM |
25 | unsigned int bit_shift; |
26 | bool no_debug; | |
27 | }; | |
28 | ||
29 | static inline | |
30 | struct rmobile_pm_domain *to_rmobile_pd(struct generic_pm_domain *d) | |
31 | { | |
32 | return container_of(d, struct rmobile_pm_domain, genpd); | |
33 | } | |
34 | ||
ac18e02d RW |
35 | struct pm_domain_device { |
36 | const char *domain_name; | |
37 | struct platform_device *pdev; | |
38 | }; | |
39 | ||
abebbc4a | 40 | #ifdef CONFIG_PM_RMOBILE |
0d09f450 | 41 | extern void rmobile_init_domains(struct rmobile_pm_domain domains[], int num); |
455ae3a5 RW |
42 | extern void rmobile_add_device_to_domain_td(const char *domain_name, |
43 | struct platform_device *pdev, | |
44 | struct gpd_timing_data *td); | |
45 | ||
46 | static inline void rmobile_add_device_to_domain(const char *domain_name, | |
47 | struct platform_device *pdev) | |
48 | { | |
49 | rmobile_add_device_to_domain_td(domain_name, pdev, NULL); | |
50 | } | |
51 | ||
ac18e02d RW |
52 | extern void rmobile_add_devices_to_domains(struct pm_domain_device data[], |
53 | int size); | |
8f45b112 | 54 | #else |
455ae3a5 | 55 | |
0d09f450 | 56 | #define rmobile_init_domains(domains, num) do { } while (0) |
455ae3a5 | 57 | #define rmobile_add_device_to_domain_td(name, pdev, td) do { } while (0) |
8bdd9468 | 58 | #define rmobile_add_device_to_domain(name, pdev) do { } while (0) |
ac18e02d RW |
59 | |
60 | static inline void rmobile_add_devices_to_domains(struct pm_domain_device d[], | |
61 | int size) {} | |
abebbc4a | 62 | #endif /* CONFIG_PM_RMOBILE */ |
8f45b112 KM |
63 | |
64 | #endif /* PM_RMOBILE_H */ |