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