1 #ifndef _LINUX_RESET_H_
2 #define _LINUX_RESET_H_
3
4 struct device;
5 struct device_node;
6 struct reset_control;
7
8 #ifdef CONFIG_RESET_CONTROLLER
9
10 int reset_control_reset(struct reset_control *rstc);
11 int reset_control_assert(struct reset_control *rstc);
12 int reset_control_deassert(struct reset_control *rstc);
13 int reset_control_status(struct reset_control *rstc);
14
15 struct reset_control *reset_control_get(struct device *dev, const char *id);
16 void reset_control_put(struct reset_control *rstc);
17 struct reset_control *devm_reset_control_get(struct device *dev, const char *id);
18
19 int __must_check device_reset(struct device *dev);
20
device_reset_optional(struct device * dev)21 static inline int device_reset_optional(struct device *dev)
22 {
23 return device_reset(dev);
24 }
25
reset_control_get_optional(struct device * dev,const char * id)26 static inline struct reset_control *reset_control_get_optional(
27 struct device *dev, const char *id)
28 {
29 return reset_control_get(dev, id);
30 }
31
devm_reset_control_get_optional(struct device * dev,const char * id)32 static inline struct reset_control *devm_reset_control_get_optional(
33 struct device *dev, const char *id)
34 {
35 return devm_reset_control_get(dev, id);
36 }
37
38 struct reset_control *of_reset_control_get(struct device_node *node,
39 const char *id);
40
41 #else
42
reset_control_reset(struct reset_control * rstc)43 static inline int reset_control_reset(struct reset_control *rstc)
44 {
45 WARN_ON(1);
46 return 0;
47 }
48
reset_control_assert(struct reset_control * rstc)49 static inline int reset_control_assert(struct reset_control *rstc)
50 {
51 WARN_ON(1);
52 return 0;
53 }
54
reset_control_deassert(struct reset_control * rstc)55 static inline int reset_control_deassert(struct reset_control *rstc)
56 {
57 WARN_ON(1);
58 return 0;
59 }
60
reset_control_status(struct reset_control * rstc)61 static inline int reset_control_status(struct reset_control *rstc)
62 {
63 WARN_ON(1);
64 return 0;
65 }
66
reset_control_put(struct reset_control * rstc)67 static inline void reset_control_put(struct reset_control *rstc)
68 {
69 WARN_ON(1);
70 }
71
device_reset_optional(struct device * dev)72 static inline int device_reset_optional(struct device *dev)
73 {
74 return -ENOSYS;
75 }
76
reset_control_get_optional(struct device * dev,const char * id)77 static inline struct reset_control *reset_control_get_optional(
78 struct device *dev, const char *id)
79 {
80 return ERR_PTR(-ENOSYS);
81 }
82
devm_reset_control_get_optional(struct device * dev,const char * id)83 static inline struct reset_control *devm_reset_control_get_optional(
84 struct device *dev, const char *id)
85 {
86 return ERR_PTR(-ENOSYS);
87 }
88
of_reset_control_get(struct device_node * node,const char * id)89 static inline struct reset_control *of_reset_control_get(
90 struct device_node *node, const char *id)
91 {
92 return ERR_PTR(-ENOSYS);
93 }
94
95 #endif /* CONFIG_RESET_CONTROLLER */
96
97 #endif
98