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