|
@@ -2,8 +2,10 @@
|
|
|
#ifndef _LINUX_RESET_H_
|
|
|
#define _LINUX_RESET_H_
|
|
|
|
|
|
-#include <linux/device.h>
|
|
|
+#include <linux/types.h>
|
|
|
|
|
|
+struct device;
|
|
|
+struct device_node;
|
|
|
struct reset_control;
|
|
|
|
|
|
#ifdef CONFIG_RESET_CONTROLLER
|
|
@@ -20,22 +22,16 @@ struct reset_control *__reset_control_get(struct device *dev, const char *id,
|
|
|
int index, bool shared,
|
|
|
bool optional);
|
|
|
void reset_control_put(struct reset_control *rstc);
|
|
|
+int __device_reset(struct device *dev, bool optional);
|
|
|
struct reset_control *__devm_reset_control_get(struct device *dev,
|
|
|
const char *id, int index, bool shared,
|
|
|
bool optional);
|
|
|
|
|
|
-int __must_check device_reset(struct device *dev);
|
|
|
-
|
|
|
struct reset_control *devm_reset_control_array_get(struct device *dev,
|
|
|
bool shared, bool optional);
|
|
|
struct reset_control *of_reset_control_array_get(struct device_node *np,
|
|
|
bool shared, bool optional);
|
|
|
|
|
|
-static inline int device_reset_optional(struct device *dev)
|
|
|
-{
|
|
|
- return device_reset(dev);
|
|
|
-}
|
|
|
-
|
|
|
#else
|
|
|
|
|
|
static inline int reset_control_reset(struct reset_control *rstc)
|
|
@@ -62,15 +58,9 @@ static inline void reset_control_put(struct reset_control *rstc)
|
|
|
{
|
|
|
}
|
|
|
|
|
|
-static inline int __must_check device_reset(struct device *dev)
|
|
|
-{
|
|
|
- WARN_ON(1);
|
|
|
- return -ENOTSUPP;
|
|
|
-}
|
|
|
-
|
|
|
-static inline int device_reset_optional(struct device *dev)
|
|
|
+static inline int __device_reset(struct device *dev, bool optional)
|
|
|
{
|
|
|
- return -ENOTSUPP;
|
|
|
+ return optional ? 0 : -ENOTSUPP;
|
|
|
}
|
|
|
|
|
|
static inline struct reset_control *__of_reset_control_get(
|
|
@@ -109,6 +99,16 @@ of_reset_control_array_get(struct device_node *np, bool shared, bool optional)
|
|
|
|
|
|
#endif /* CONFIG_RESET_CONTROLLER */
|
|
|
|
|
|
+static inline int __must_check device_reset(struct device *dev)
|
|
|
+{
|
|
|
+ return __device_reset(dev, false);
|
|
|
+}
|
|
|
+
|
|
|
+static inline int device_reset_optional(struct device *dev)
|
|
|
+{
|
|
|
+ return __device_reset(dev, true);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* reset_control_get_exclusive - Lookup and obtain an exclusive reference
|
|
|
* to a reset controller.
|
|
@@ -127,9 +127,6 @@ of_reset_control_array_get(struct device_node *np, bool shared, bool optional)
|
|
|
static inline struct reset_control *
|
|
|
__must_check reset_control_get_exclusive(struct device *dev, const char *id)
|
|
|
{
|
|
|
-#ifndef CONFIG_RESET_CONTROLLER
|
|
|
- WARN_ON(1);
|
|
|
-#endif
|
|
|
return __reset_control_get(dev, id, 0, false, false);
|
|
|
}
|
|
|
|
|
@@ -275,9 +272,6 @@ static inline struct reset_control *
|
|
|
__must_check devm_reset_control_get_exclusive(struct device *dev,
|
|
|
const char *id)
|
|
|
{
|
|
|
-#ifndef CONFIG_RESET_CONTROLLER
|
|
|
- WARN_ON(1);
|
|
|
-#endif
|
|
|
return __devm_reset_control_get(dev, id, 0, false, false);
|
|
|
}
|
|
|
|
|
@@ -350,18 +344,6 @@ devm_reset_control_get_shared_by_index(struct device *dev, int index)
|
|
|
* These inline function calls will be removed once all consumers
|
|
|
* have been moved over to the new explicit API.
|
|
|
*/
|
|
|
-static inline struct reset_control *reset_control_get(
|
|
|
- struct device *dev, const char *id)
|
|
|
-{
|
|
|
- return reset_control_get_exclusive(dev, id);
|
|
|
-}
|
|
|
-
|
|
|
-static inline struct reset_control *reset_control_get_optional(
|
|
|
- struct device *dev, const char *id)
|
|
|
-{
|
|
|
- return reset_control_get_optional_exclusive(dev, id);
|
|
|
-}
|
|
|
-
|
|
|
static inline struct reset_control *of_reset_control_get(
|
|
|
struct device_node *node, const char *id)
|
|
|
{
|