xref: /linux-6.15/include/linux/reset.h (revision 1f330c32)
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 
21 static inline int device_reset_optional(struct device *dev)
22 {
23 	return device_reset(dev);
24 }
25 
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 
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 
43 static inline int reset_control_reset(struct reset_control *rstc)
44 {
45 	WARN_ON(1);
46 	return 0;
47 }
48 
49 static inline int reset_control_assert(struct reset_control *rstc)
50 {
51 	WARN_ON(1);
52 	return 0;
53 }
54 
55 static inline int reset_control_deassert(struct reset_control *rstc)
56 {
57 	WARN_ON(1);
58 	return 0;
59 }
60 
61 static inline int reset_control_status(struct reset_control *rstc)
62 {
63 	WARN_ON(1);
64 	return 0;
65 }
66 
67 static inline void reset_control_put(struct reset_control *rstc)
68 {
69 	WARN_ON(1);
70 }
71 
72 static inline int device_reset_optional(struct device *dev)
73 {
74 	return -ENOSYS;
75 }
76 
77 static inline struct reset_control *__must_check reset_control_get(
78 					struct device *dev, const char *id)
79 {
80 	WARN_ON(1);
81 	return ERR_PTR(-EINVAL);
82 }
83 
84 static inline struct reset_control *__must_check devm_reset_control_get(
85 					struct device *dev, const char *id)
86 {
87 	WARN_ON(1);
88 	return ERR_PTR(-EINVAL);
89 }
90 
91 static inline struct reset_control *reset_control_get_optional(
92 					struct device *dev, const char *id)
93 {
94 	return ERR_PTR(-ENOSYS);
95 }
96 
97 static inline struct reset_control *devm_reset_control_get_optional(
98 					struct device *dev, const char *id)
99 {
100 	return ERR_PTR(-ENOSYS);
101 }
102 
103 static inline struct reset_control *of_reset_control_get(
104 				struct device_node *node, const char *id)
105 {
106 	return ERR_PTR(-ENOSYS);
107 }
108 
109 #endif /* CONFIG_RESET_CONTROLLER */
110 
111 #endif
112