diff options
Diffstat (limited to 'include/linux/usb')
| -rw-r--r-- | include/linux/usb/chipidea.h | 2 | ||||
| -rw-r--r-- | include/linux/usb/composite.h | 3 | ||||
| -rw-r--r-- | include/linux/usb/gadget.h | 9 | ||||
| -rw-r--r-- | include/linux/usb/msm_hsusb.h | 4 | ||||
| -rw-r--r-- | include/linux/usb/otg-fsm.h | 2 | ||||
| -rw-r--r-- | include/linux/usb/renesas_usbhs.h | 2 | 
6 files changed, 17 insertions, 5 deletions
| diff --git a/include/linux/usb/chipidea.h b/include/linux/usb/chipidea.h index 535997a6681b..ab94f78c4dd1 100644 --- a/include/linux/usb/chipidea.h +++ b/include/linux/usb/chipidea.h @@ -19,6 +19,7 @@ struct ci_hdrc_platform_data {  	enum usb_phy_interface phy_mode;  	unsigned long	 flags;  #define CI_HDRC_REGS_SHARED		BIT(0) +#define CI_HDRC_SUPPORTS_RUNTIME_PM	BIT(2)  #define CI_HDRC_DISABLE_STREAMING	BIT(3)  	/*  	 * Only set it when DCCPARAMS.DC==1 and DCCPARAMS.HC==1, @@ -27,6 +28,7 @@ struct ci_hdrc_platform_data {  #define CI_HDRC_DUAL_ROLE_NOT_OTG	BIT(4)  #define CI_HDRC_IMX28_WRITE_FIX		BIT(5)  #define CI_HDRC_FORCE_FULLSPEED		BIT(6) +#define CI_HDRC_TURN_VBUS_EARLY_ON	BIT(7)  	enum usb_dr_mode	dr_mode;  #define CI_HDRC_CONTROLLER_RESET_EVENT		0  #define CI_HDRC_CONTROLLER_STOPPED_EVENT	1 diff --git a/include/linux/usb/composite.h b/include/linux/usb/composite.h index 3d87defcc527..2511469a9904 100644 --- a/include/linux/usb/composite.h +++ b/include/linux/usb/composite.h @@ -148,6 +148,7 @@ struct usb_os_desc_table {   * @disable: (REQUIRED) Indicates the function should be disabled.  Reasons   *	include host resetting or reconfiguring the gadget, and disconnection.   * @setup: Used for interface-specific control requests. + * @req_match: Tests if a given class request can be handled by this function.   * @suspend: Notifies functions when the host stops sending USB traffic.   * @resume: Notifies functions when the host restarts USB traffic.   * @get_status: Returns function status as a reply to @@ -213,6 +214,8 @@ struct usb_function {  	void			(*disable)(struct usb_function *);  	int			(*setup)(struct usb_function *,  					const struct usb_ctrlrequest *); +	bool			(*req_match)(struct usb_function *, +					const struct usb_ctrlrequest *);  	void			(*suspend)(struct usb_function *);  	void			(*resume)(struct usb_function *); diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h index e2f00fd8cd47..4f3dfb7d0654 100644 --- a/include/linux/usb/gadget.h +++ b/include/linux/usb/gadget.h @@ -190,7 +190,7 @@ struct usb_ep {   * @ep:the endpoint being configured   * @maxpacket_limit:value of maximum packet size limit   * - * This function shoud be used only in UDC drivers to initialize endpoint + * This function should be used only in UDC drivers to initialize endpoint   * (usually in probe function).   */  static inline void usb_ep_set_maxpacket_limit(struct usb_ep *ep, @@ -474,6 +474,7 @@ struct usb_dcd_config_params {  struct usb_gadget;  struct usb_gadget_driver; +struct usb_udc;  /* the rest of the api to the controller hardware: device operations,   * which don't involve endpoints (or i/o). @@ -496,6 +497,7 @@ struct usb_gadget_ops {  /**   * struct usb_gadget - represents a usb slave device   * @work: (internal use) Workqueue to be used for sysfs_notify() + * @udc: struct usb_udc pointer for this gadget   * @ops: Function pointers used to access hardware-specific operations.   * @ep0: Endpoint zero, used when reading or writing responses to   *	driver setup() requests @@ -545,6 +547,7 @@ struct usb_gadget_ops {   */  struct usb_gadget {  	struct work_struct		work; +	struct usb_udc			*udc;  	/* readonly to gadget driver */  	const struct usb_gadget_ops	*ops;  	struct usb_ep			*ep0; @@ -1029,6 +1032,10 @@ extern void usb_gadget_udc_reset(struct usb_gadget *gadget,  extern void usb_gadget_giveback_request(struct usb_ep *ep,  		struct usb_request *req); +/*-------------------------------------------------------------------------*/ + +/* utility to update vbus status for udc core, it may be scheduled */ +extern void usb_udc_vbus_handler(struct usb_gadget *gadget, bool status);  /*-------------------------------------------------------------------------*/ diff --git a/include/linux/usb/msm_hsusb.h b/include/linux/usb/msm_hsusb.h index b0a39243295a..7dbecf9a4656 100644 --- a/include/linux/usb/msm_hsusb.h +++ b/include/linux/usb/msm_hsusb.h @@ -117,8 +117,6 @@ struct msm_otg_platform_data {  	enum otg_control_type otg_control;  	enum msm_usb_phy_type phy_type;  	void (*setup_gpio)(enum usb_otg_state state); -	int (*link_clk_reset)(struct clk *link_clk, bool assert); -	int (*phy_clk_reset)(struct clk *phy_clk);  };  /** @@ -128,7 +126,6 @@ struct msm_otg_platform_data {   * @irq: IRQ number assigned for HSUSB controller.   * @clk: clock struct of usb_hs_clk.   * @pclk: clock struct of usb_hs_pclk. - * @phy_reset_clk: clock struct of usb_phy_clk.   * @core_clk: clock struct of usb_hs_core_clk.   * @regs: ioremapped register base address.   * @inputs: OTG state machine inputs(Id, SessValid etc). @@ -148,7 +145,6 @@ struct msm_otg {  	int irq;  	struct clk *clk;  	struct clk *pclk; -	struct clk *phy_reset_clk;  	struct clk *core_clk;  	void __iomem *regs;  #define ID		0 diff --git a/include/linux/usb/otg-fsm.h b/include/linux/usb/otg-fsm.h index b6ba1bfb86f2..f728f1854829 100644 --- a/include/linux/usb/otg-fsm.h +++ b/include/linux/usb/otg-fsm.h @@ -53,6 +53,8 @@ enum otg_fsm_timer {  	B_SE0_SRP,  	B_SRP_FAIL,  	A_WAIT_ENUM, +	B_DATA_PLS, +	B_SSEND_SRP,  	NUM_OTG_FSM_TIMERS,  }; diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h index 9fd9e481ea98..f06529c14141 100644 --- a/include/linux/usb/renesas_usbhs.h +++ b/include/linux/usb/renesas_usbhs.h @@ -165,6 +165,8 @@ struct renesas_usbhs_driver_param {  	 */  	u32 has_otg:1; /* for controlling PWEN/EXTLP */  	u32 has_sudmac:1; /* for SUDMAC */ +	u32 has_usb_dmac:1; /* for USB-DMAC */ +#define USBHS_USB_DMAC_XFER_SIZE	32	/* hardcode the xfer size */  };  #define USBHS_TYPE_R8A7790 1 |