Merge tag 'v3.15' into next
[cascardo/linux.git] / include / linux / reset.h
1 #ifndef _LINUX_RESET_H_
2 #define _LINUX_RESET_H_
3
4 struct device;
5 struct reset_control;
6
7 #ifdef CONFIG_RESET_CONTROLLER
8
9 int reset_control_reset(struct reset_control *rstc);
10 int reset_control_assert(struct reset_control *rstc);
11 int reset_control_deassert(struct reset_control *rstc);
12
13 struct reset_control *reset_control_get(struct device *dev, const char *id);
14 void reset_control_put(struct reset_control *rstc);
15 struct reset_control *devm_reset_control_get(struct device *dev, const char *id);
16
17 int __must_check device_reset(struct device *dev);
18
19 static inline int device_reset_optional(struct device *dev)
20 {
21         return device_reset(dev);
22 }
23
24 static inline struct reset_control *reset_control_get_optional(
25                                         struct device *dev, const char *id)
26 {
27         return reset_control_get(dev, id);
28 }
29
30 static inline struct reset_control *devm_reset_control_get_optional(
31                                         struct device *dev, const char *id)
32 {
33         return devm_reset_control_get(dev, id);
34 }
35
36 #else
37
38 static inline int reset_control_reset(struct reset_control *rstc)
39 {
40         WARN_ON(1);
41         return 0;
42 }
43
44 static inline int reset_control_assert(struct reset_control *rstc)
45 {
46         WARN_ON(1);
47         return 0;
48 }
49
50 static inline int reset_control_deassert(struct reset_control *rstc)
51 {
52         WARN_ON(1);
53         return 0;
54 }
55
56 static inline void reset_control_put(struct reset_control *rstc)
57 {
58         WARN_ON(1);
59 }
60
61 static inline int device_reset_optional(struct device *dev)
62 {
63         return -ENOSYS;
64 }
65
66 static inline struct reset_control *reset_control_get_optional(
67                                         struct device *dev, const char *id)
68 {
69         return ERR_PTR(-ENOSYS);
70 }
71
72 static inline struct reset_control *devm_reset_control_get_optional(
73                                         struct device *dev, const char *id)
74 {
75         return ERR_PTR(-ENOSYS);
76 }
77
78 #endif /* CONFIG_RESET_CONTROLLER */
79
80 #endif