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