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 Golaszewskipwrseq_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 Golaszewskistatic 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 Golaszewskidevm_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 Golaszewskistatic 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 Golaszewskistatic 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