57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0-only */
 | |
| /*
 | |
|  * Copyright (C) 2024 Linaro Ltd.
 | |
|  */
 | |
| 
 | |
| #ifndef __POWER_SEQUENCING_CONSUMER_H__
 | |
| #define __POWER_SEQUENCING_CONSUMER_H__
 | |
| 
 | |
| #include <linux/err.h>
 | |
| 
 | |
| struct device;
 | |
| struct pwrseq_desc;
 | |
| 
 | |
| #if IS_ENABLED(CONFIG_POWER_SEQUENCING)
 | |
| 
 | |
| struct pwrseq_desc * __must_check
 | |
| pwrseq_get(struct device *dev, const char *target);
 | |
| void pwrseq_put(struct pwrseq_desc *desc);
 | |
| 
 | |
| struct pwrseq_desc * __must_check
 | |
| devm_pwrseq_get(struct device *dev, const char *target);
 | |
| 
 | |
| int pwrseq_power_on(struct pwrseq_desc *desc);
 | |
| int pwrseq_power_off(struct pwrseq_desc *desc);
 | |
| 
 | |
| #else /* CONFIG_POWER_SEQUENCING */
 | |
| 
 | |
| static inline struct pwrseq_desc * __must_check
 | |
| pwrseq_get(struct device *dev, const char *target)
 | |
| {
 | |
| 	return ERR_PTR(-ENOSYS);
 | |
| }
 | |
| 
 | |
| static inline void pwrseq_put(struct pwrseq_desc *desc)
 | |
| {
 | |
| }
 | |
| 
 | |
| static inline struct pwrseq_desc * __must_check
 | |
| devm_pwrseq_get(struct device *dev, const char *target)
 | |
| {
 | |
| 	return ERR_PTR(-ENOSYS);
 | |
| }
 | |
| 
 | |
| static inline int pwrseq_power_on(struct pwrseq_desc *desc)
 | |
| {
 | |
| 	return -ENOSYS;
 | |
| }
 | |
| 
 | |
| static inline int pwrseq_power_off(struct pwrseq_desc *desc)
 | |
| {
 | |
| 	return -ENOSYS;
 | |
| }
 | |
| 
 | |
| #endif /* CONFIG_POWER_SEQUENCING */
 | |
| 
 | |
| #endif /* __POWER_SEQUENCING_CONSUMER_H__ */
 |