1#ifndef _LINUX_RESET_H_
2#define _LINUX_RESET_H_
3
4struct device;
5struct device_node;
6struct reset_control;
7
8#ifdef CONFIG_RESET_CONTROLLER
9
10int reset_control_reset(struct reset_control *rstc);
11int reset_control_assert(struct reset_control *rstc);
12int reset_control_deassert(struct reset_control *rstc);
13int reset_control_status(struct reset_control *rstc);
14
15struct reset_control *reset_control_get(struct device *dev, const char *id);
16void reset_control_put(struct reset_control *rstc);
17struct reset_control *devm_reset_control_get(struct device *dev, const char *id);
18
19int __must_check device_reset(struct device *dev);
20
21static inline int device_reset_optional(struct device *dev)
22{
23	return device_reset(dev);
24}
25
26static 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
32static 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
38struct reset_control *of_reset_control_get(struct device_node *node,
39					   const char *id);
40
41#else
42
43static inline int reset_control_reset(struct reset_control *rstc)
44{
45	WARN_ON(1);
46	return 0;
47}
48
49static inline int reset_control_assert(struct reset_control *rstc)
50{
51	WARN_ON(1);
52	return 0;
53}
54
55static inline int reset_control_deassert(struct reset_control *rstc)
56{
57	WARN_ON(1);
58	return 0;
59}
60
61static inline int reset_control_status(struct reset_control *rstc)
62{
63	WARN_ON(1);
64	return 0;
65}
66
67static inline void reset_control_put(struct reset_control *rstc)
68{
69	WARN_ON(1);
70}
71
72static inline int device_reset_optional(struct device *dev)
73{
74	return -ENOSYS;
75}
76
77static 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
84static 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
91static inline struct reset_control *reset_control_get_optional(
92					struct device *dev, const char *id)
93{
94	return ERR_PTR(-ENOSYS);
95}
96
97static inline struct reset_control *devm_reset_control_get_optional(
98					struct device *dev, const char *id)
99{
100	return ERR_PTR(-ENOSYS);
101}
102
103static 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