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); | |
24 | unsigned int bit_shift; | |
25 | bool no_debug; | |
26 | }; | |
27 | ||
28 | static inline | |
29 | struct rmobile_pm_domain *to_rmobile_pd(struct generic_pm_domain *d) | |
30 | { | |
31 | return container_of(d, struct rmobile_pm_domain, genpd); | |
32 | } | |
33 | ||
ac18e02d RW |
34 | struct pm_domain_device { |
35 | const char *domain_name; | |
36 | struct platform_device *pdev; | |
37 | }; | |
38 | ||
abebbc4a | 39 | #ifdef CONFIG_PM_RMOBILE |
0d09f450 | 40 | extern void rmobile_init_domains(struct rmobile_pm_domain domains[], int num); |
455ae3a5 RW |
41 | extern void rmobile_add_device_to_domain_td(const char *domain_name, |
42 | struct platform_device *pdev, | |
43 | struct gpd_timing_data *td); | |
44 | ||
45 | static inline void rmobile_add_device_to_domain(const char *domain_name, | |
46 | struct platform_device *pdev) | |
47 | { | |
48 | rmobile_add_device_to_domain_td(domain_name, pdev, NULL); | |
49 | } | |
50 | ||
ac18e02d RW |
51 | extern void rmobile_add_devices_to_domains(struct pm_domain_device data[], |
52 | int size); | |
8f45b112 | 53 | #else |
455ae3a5 | 54 | |
0d09f450 | 55 | #define rmobile_init_domains(domains, num) do { } while (0) |
455ae3a5 | 56 | #define rmobile_add_device_to_domain_td(name, pdev, td) do { } while (0) |
8bdd9468 | 57 | #define rmobile_add_device_to_domain(name, pdev) do { } while (0) |
ac18e02d RW |
58 | |
59 | static inline void rmobile_add_devices_to_domains(struct pm_domain_device d[], | |
60 | int size) {} | |
abebbc4a | 61 | #endif /* CONFIG_PM_RMOBILE */ |
8f45b112 KM |
62 | |
63 | #endif /* PM_RMOBILE_H */ |