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