1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) 2024 Linaro Ltd. 4 */ 5 6 #ifndef __POWER_SEQUENCING_CONSUMER_H__ 7 #define __POWER_SEQUENCING_CONSUMER_H__ 8 9 #include <linux/err.h> 10 11 struct device; 12 struct pwrseq_desc; 13 14 #if IS_ENABLED(CONFIG_POWER_SEQUENCING) 15 16 struct pwrseq_desc * __must_check 17 pwrseq_get(struct device *dev, const char *target); 18 void pwrseq_put(struct pwrseq_desc *desc); 19 20 struct pwrseq_desc * __must_check 21 devm_pwrseq_get(struct device *dev, const char *target); 22 23 int pwrseq_enable(struct pwrseq_desc *desc); 24 int pwrseq_disable(struct pwrseq_desc *desc); 25 26 struct device *pwrseq_to_device(struct pwrseq_desc *desc); 27 28 #else /* CONFIG_POWER_SEQUENCING */ 29 30 static inline struct pwrseq_desc * __must_check pwrseq_get(struct device * dev,const char * target)31pwrseq_get(struct device *dev, const char *target) 32 { 33 return ERR_PTR(-ENOSYS); 34 } 35 pwrseq_put(struct pwrseq_desc * desc)36static inline void pwrseq_put(struct pwrseq_desc *desc) 37 { 38 } 39 40 static inline struct pwrseq_desc * __must_check devm_pwrseq_get(struct device * dev,const char * target)41devm_pwrseq_get(struct device *dev, const char *target) 42 { 43 return ERR_PTR(-ENOSYS); 44 } 45 pwrseq_enable(struct pwrseq_desc * desc)46static inline int pwrseq_enable(struct pwrseq_desc *desc) 47 { 48 return -ENOSYS; 49 } 50 pwrseq_disable(struct pwrseq_desc * desc)51static inline int pwrseq_disable(struct pwrseq_desc *desc) 52 { 53 return -ENOSYS; 54 } 55 pwrseq_to_device(struct pwrseq_desc * desc)56static inline struct device *pwrseq_to_device(struct pwrseq_desc *desc) 57 { 58 return NULL; 59 } 60 61 #endif /* CONFIG_POWER_SEQUENCING */ 62 63 #endif /* __POWER_SEQUENCING_CONSUMER_H__ */ 64