diff options
Diffstat (limited to 'drivers/usb/chipidea/ci.h')
| -rw-r--r-- | drivers/usb/chipidea/ci.h | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/usb/chipidea/ci.h b/drivers/usb/chipidea/ci.h index 6a2cc5cd0281..6911aef500e9 100644 --- a/drivers/usb/chipidea/ci.h +++ b/drivers/usb/chipidea/ci.h @@ -16,6 +16,7 @@  #include <linux/usb/gadget.h>  #include <linux/usb/otg-fsm.h>  #include <linux/usb/otg.h> +#include <linux/usb/role.h>  #include <linux/ulpi/interface.h>  /****************************************************************************** @@ -217,6 +218,7 @@ struct ci_hdrc {  	ktime_t				hr_timeouts[NUM_OTG_FSM_TIMERS];  	unsigned			enabled_otg_timer_bits;  	enum otg_fsm_timer		next_otg_timer; +	struct usb_role_switch		*role_switch;  	struct work_struct		work;  	struct workqueue_struct		*wq; @@ -290,6 +292,16 @@ static inline void ci_role_stop(struct ci_hdrc *ci)  	ci->roles[role]->stop(ci);  } +static inline enum usb_role ci_role_to_usb_role(struct ci_hdrc *ci) +{ +	if (ci->role == CI_ROLE_HOST) +		return USB_ROLE_HOST; +	else if (ci->role == CI_ROLE_GADGET && ci->vbus_active) +		return USB_ROLE_DEVICE; +	else +		return USB_ROLE_NONE; +} +  /**   * hw_read_id_reg: reads from a identification register   * @ci: the controller  |