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