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