Linux Audio
Check our new training course
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
/* SPDX-License-Identifier: GPL-2.0 */ #ifndef __USB_TYPEC_ALTMODE_H__ #define __USB_TYPEC_ALTMODE_H__ #include <linux/usb/typec_altmode.h> #include <linux/usb/typec_mux.h> struct bus_type; struct altmode { unsigned int id; struct typec_altmode adev; struct typec_mux *mux; enum typec_port_data roles; struct attribute *attrs[5]; char group_name[8]; struct attribute_group group; const struct attribute_group *groups[2]; struct altmode *partner; struct altmode *plug[2]; }; #define to_altmode(d) container_of(d, struct altmode, adev) extern struct bus_type typec_bus; extern const struct device_type typec_altmode_dev_type; extern const struct device_type typec_port_dev_type; #define is_typec_altmode(_dev_) (_dev_->type == &typec_altmode_dev_type) #define is_typec_port(_dev_) (_dev_->type == &typec_port_dev_type) extern struct class typec_mux_class; struct typec_switch { struct device dev; typec_switch_set_fn_t set; }; struct typec_mux { struct device dev; typec_mux_set_fn_t set; }; #define to_typec_switch(_dev_) container_of(_dev_, struct typec_switch, dev) #define to_typec_mux(_dev_) container_of(_dev_, struct typec_mux, dev) #endif /* __USB_TYPEC_ALTMODE_H__ */