| /* 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__ */ |