⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb_otg.h.rej

📁 linux得一些常用命令,以及linux环境下的c编程
💻 REJ
字号:
****************** 0 ****--- 1,118 ----+ // include/linux/usb_otg.h + + /*+  * These APIs may be used between USB controllers.  USB device drivers+  * (for either host or peripheral roles) don't use these calls; they+  * continue to use just usb_device and usb_gadget.+  */+ + + /* OTG defines lots of enumeration states before device reset */+ enum usb_otg_state {+ 	OTG_STATE_UNDEFINED = 0,+ + 	/* single-role peripheral, and dual-role default-b */+ 	OTG_STATE_B_IDLE,+ 	OTG_STATE_B_SRP_INIT,+ 	OTG_STATE_B_PERIPHERAL,+ + 	/* extra dual-role default-b states */+ 	OTG_STATE_B_WAIT_ACON,+ 	OTG_STATE_B_HOST,+ + 	/* dual-role default-a */+ 	OTG_STATE_A_IDLE,+ 	OTG_STATE_A_WAIT_VRISE,+ 	OTG_STATE_A_WAIT_BCON,+ 	OTG_STATE_A_HOST,+ 	OTG_STATE_A_SUSPEND,+ 	OTG_STATE_A_PERIPHERAL,+ 	OTG_STATE_A_WAIT_VFALL,+ 	OTG_STATE_A_VBUS_ERR,+ };+ + /*+  * the otg driver needs to interact with both device side and host side+  * usb controllers.  it decides which controller is active at a given+  * moment, using the transceiver, ID signal, HNP and sometimes static+  * configuration information (including "board isn't wired for otg").+  */+ struct otg_transceiver {+ 	struct device		*dev;+ 	const char		*label;+ + 	u8			default_a;+ 	enum usb_otg_state	state;+ + 	struct usb_bus		*host;+ 	struct usb_gadget	*gadget;+ + 	/* to pass extra port status to the root hub */+ 	u16			port_status;+ 	u16			port_change;+ + 	/* bind/unbind the host controller */+ 	int 	(*set_host)(struct otg_transceiver *otg,+ 				struct usb_bus *host);+ + 	/* bind/unbind the peripheral controller */+ 	int	(*set_peripheral)(struct otg_transceiver *otg,+ 				struct usb_gadget *gadget);+ + 	/* effective for B devices, ignored for A-peripheral */+ 	int	(*set_power)(struct otg_transceiver *otg,+ 				unsigned mA);+ + 	/* for B devices only:  start session with A-Host */+ 	int	(*start_srp)(struct otg_transceiver *otg);+ + 	/* start or continue HNP role switch */+ 	int	(*start_hnp)(struct otg_transceiver *otg);+ + };+ + + /* for board-specific init logic */+ extern int otg_set_transceiver(struct otg_transceiver *);+ + + /* for usb host and peripheral controller drivers */+ extern struct otg_transceiver *otg_get_transceiver(void);+ + static inline int+ otg_start_hnp(struct otg_transceiver *otg)+ {+ 	return otg->start_hnp(otg);+ }+ + + /* for HCDs */+ static inline int+ otg_set_host(struct otg_transceiver *otg, struct usb_bus *host)+ {+ 	return otg->set_host(otg, host);+ }+ + + /* for usb peripheral controller drivers */+ static inline int+ otg_set_peripheral(struct otg_transceiver *otg, struct usb_gadget *periph)+ {+ 	return otg->set_peripheral(otg, periph);+ }+ + static inline int+ otg_set_power(struct otg_transceiver *otg, unsigned mA)+ {+ 	return otg->set_power(otg, mA);+ }+ + static inline int+ otg_start_srp(struct otg_transceiver *otg)+ {+ 	return otg->start_srp(otg);+ }+ + + /* for OTG controller drivers (and maybe other stuff) */+ extern int usb_bus_start_enum(struct usb_bus *bus, unsigned port_num);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -