xref: /linux/include/linux/pwrseq/consumer.h (revision a5218c6474df97f2e7f3af15dcdfc674bae5c137)
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)31 pwrseq_get(struct device *dev, const char *target)
32 {
33 	return ERR_PTR(-ENOSYS);
34 }
35 
pwrseq_put(struct pwrseq_desc * desc)36 static 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)41 devm_pwrseq_get(struct device *dev, const char *target)
42 {
43 	return ERR_PTR(-ENOSYS);
44 }
45 
pwrseq_enable(struct pwrseq_desc * desc)46 static inline int pwrseq_enable(struct pwrseq_desc *desc)
47 {
48 	return -ENOSYS;
49 }
50 
pwrseq_disable(struct pwrseq_desc * desc)51 static inline int pwrseq_disable(struct pwrseq_desc *desc)
52 {
53 	return -ENOSYS;
54 }
55 
pwrseq_to_device(struct pwrseq_desc * desc)56 static 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