xref: /openbmc/linux/drivers/usb/typec/mux.h (revision 713fd49b)
11e2ed7b2SHeikki Krogerus /* SPDX-License-Identifier: GPL-2.0 */
21e2ed7b2SHeikki Krogerus 
31e2ed7b2SHeikki Krogerus #ifndef __USB_TYPEC_MUX__
41e2ed7b2SHeikki Krogerus #define __USB_TYPEC_MUX__
51e2ed7b2SHeikki Krogerus 
61e2ed7b2SHeikki Krogerus #include <linux/usb/typec_mux.h>
71e2ed7b2SHeikki Krogerus 
8*713fd49bSBjorn Andersson struct typec_switch_dev {
91e2ed7b2SHeikki Krogerus 	struct device dev;
101e2ed7b2SHeikki Krogerus 	typec_switch_set_fn_t set;
111e2ed7b2SHeikki Krogerus };
121e2ed7b2SHeikki Krogerus 
13*713fd49bSBjorn Andersson struct typec_mux_dev {
141e2ed7b2SHeikki Krogerus 	struct device dev;
151e2ed7b2SHeikki Krogerus 	typec_mux_set_fn_t set;
161e2ed7b2SHeikki Krogerus };
171e2ed7b2SHeikki Krogerus 
18*713fd49bSBjorn Andersson #define to_typec_switch_dev(_dev_) container_of(_dev_, struct typec_switch_dev, dev)
19*713fd49bSBjorn Andersson #define to_typec_mux_dev(_dev_) container_of(_dev_, struct typec_mux_dev, dev)
201e2ed7b2SHeikki Krogerus 
217bf991eaSHeikki Krogerus extern const struct device_type typec_switch_dev_type;
227bf991eaSHeikki Krogerus extern const struct device_type typec_mux_dev_type;
237bf991eaSHeikki Krogerus 
24*713fd49bSBjorn Andersson #define is_typec_switch_dev(dev) ((dev)->type == &typec_switch_dev_type)
25*713fd49bSBjorn Andersson #define is_typec_mux_dev(dev) ((dev)->type == &typec_mux_dev_type)
267bf991eaSHeikki Krogerus 
271e2ed7b2SHeikki Krogerus #endif /* __USB_TYPEC_MUX__ */
28