1*a3b02a9cSPeter Rosin /* 2*a3b02a9cSPeter Rosin * mux/consumer.h - definitions for the multiplexer consumer interface 3*a3b02a9cSPeter Rosin * 4*a3b02a9cSPeter Rosin * Copyright (C) 2017 Axentia Technologies AB 5*a3b02a9cSPeter Rosin * 6*a3b02a9cSPeter Rosin * Author: Peter Rosin <[email protected]> 7*a3b02a9cSPeter Rosin * 8*a3b02a9cSPeter Rosin * This program is free software; you can redistribute it and/or modify 9*a3b02a9cSPeter Rosin * it under the terms of the GNU General Public License version 2 as 10*a3b02a9cSPeter Rosin * published by the Free Software Foundation. 11*a3b02a9cSPeter Rosin */ 12*a3b02a9cSPeter Rosin 13*a3b02a9cSPeter Rosin #ifndef _LINUX_MUX_CONSUMER_H 14*a3b02a9cSPeter Rosin #define _LINUX_MUX_CONSUMER_H 15*a3b02a9cSPeter Rosin 16*a3b02a9cSPeter Rosin struct device; 17*a3b02a9cSPeter Rosin struct mux_control; 18*a3b02a9cSPeter Rosin 19*a3b02a9cSPeter Rosin unsigned int mux_control_states(struct mux_control *mux); 20*a3b02a9cSPeter Rosin int __must_check mux_control_select(struct mux_control *mux, 21*a3b02a9cSPeter Rosin unsigned int state); 22*a3b02a9cSPeter Rosin int __must_check mux_control_try_select(struct mux_control *mux, 23*a3b02a9cSPeter Rosin unsigned int state); 24*a3b02a9cSPeter Rosin int mux_control_deselect(struct mux_control *mux); 25*a3b02a9cSPeter Rosin 26*a3b02a9cSPeter Rosin struct mux_control *mux_control_get(struct device *dev, const char *mux_name); 27*a3b02a9cSPeter Rosin void mux_control_put(struct mux_control *mux); 28*a3b02a9cSPeter Rosin 29*a3b02a9cSPeter Rosin struct mux_control *devm_mux_control_get(struct device *dev, 30*a3b02a9cSPeter Rosin const char *mux_name); 31*a3b02a9cSPeter Rosin 32*a3b02a9cSPeter Rosin #endif /* _LINUX_MUX_CONSUMER_H */ 33