/usr/src/linux-headers-5.15.0-181/include/linux/usb
NameSizeModeActions
audio-v2.h143560644editdlrm
audio-v3.h142700644editdlrm
audio.h12610644editdlrm
c67x00.h18670644editdlrm
ccid.h7870644editdlrm
cdc-wdm.h7010644editdlrm
cdc.h15170644editdlrm
cdc_ncm.h59780644editdlrm
ch9.h23420644editdlrm
chipidea.h35120644editdlrm
composite.h261720644editdlrm
ehci-dbgp.h20990644editdlrm
ehci_def.h82770644editdlrm
ehci_pdriver.h23950644editdlrm
ezusb.h2860644editdlrm
functionfs.h1510644editdlrm
gadget.h375430644editdlrm
gadget_configfs.h30140644editdlrm
g_hid.h11580644editdlrm
hcd.h283430644editdlrm
input.h7160644editdlrm
iowarrior.h13740644editdlrm
irda.h38530644editdlrm
isp116x.h11600644editdlrm
isp1301.h24330644editdlrm
isp1362.h16280644editdlrm
m66592.h14440644editdlrm
musb-ux500.h8990644editdlrm
musb.h36000644editdlrm
net2280.h241200644editdlrm
of.h18590644editdlrm
ohci_pdriver.h17480644editdlrm
otg-fsm.h88230644editdlrm
otg.h31580644editdlrm
pd.h152540644editdlrm
pd_ado.h11910644editdlrm
pd_bdo.h5550644editdlrm
pd_ext_sdb.h6980644editdlrm
pd_vdo.h165540644editdlrm
phy.h84350644editdlrm
phy_companion.h11970644editdlrm
quirks.h24030644editdlrm
r8a66597.h180690644editdlrm
r8152.h10670644editdlrm
renesas_usbhs.h43030644editdlrm
rndis_host.h60800644editdlrm
role.h36630644editdlrm
serial.h175960644editdlrm
sl811.h8380644editdlrm
storage.h26450644editdlrm
tcpci.h68830644editdlrm
tcpm.h66140644editdlrm
tegra_usb_phy.h25860644editdlrm
typec.h95900644editdlrm
typec_altmode.h66390644editdlrm
typec_dp.h39980644editdlrm
typec_mux.h21150644editdlrm
typec_tbt.h17740644editdlrm
uas.h21210644editdlrm
ulpi.h23190644editdlrm
usb338x.h79770644editdlrm
usbnet.h108250644editdlrm
usb_phy_generic.h5820644editdlrm
xhci-dbgp.h8250644editdlrm
Edit: /usr/src/linux-headers-5.15.0-181/include/linux/usb/otg.h (3158B)
/* SPDX-License-Identifier: GPL-2.0 */ /* USB OTG (On The Go) defines */ /* * * 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. */ #ifndef __LINUX_USB_OTG_H #define __LINUX_USB_OTG_H #include #include struct usb_otg { u8 default_a; struct phy *phy; /* old usb_phy interface */ struct usb_phy *usb_phy; struct usb_bus *host; struct usb_gadget *gadget; enum usb_otg_state state; /* bind/unbind the host controller */ int (*set_host)(struct usb_otg *otg, struct usb_bus *host); /* bind/unbind the peripheral controller */ int (*set_peripheral)(struct usb_otg *otg, struct usb_gadget *gadget); /* effective for A-peripheral, ignored for B devices */ int (*set_vbus)(struct usb_otg *otg, bool enabled); /* for B devices only: start session with A-Host */ int (*start_srp)(struct usb_otg *otg); /* start or continue HNP role switch */ int (*start_hnp)(struct usb_otg *otg); }; /** * struct usb_otg_caps - describes the otg capabilities of the device * @otg_rev: The OTG revision number the device is compliant with, it's * in binary-coded decimal (i.e. 2.0 is 0200H). * @hnp_support: Indicates if the device supports HNP. * @srp_support: Indicates if the device supports SRP. * @adp_support: Indicates if the device supports ADP. */ struct usb_otg_caps { u16 otg_rev; bool hnp_support; bool srp_support; bool adp_support; }; extern const char *usb_otg_state_string(enum usb_otg_state state); /* Context: can sleep */ static inline int otg_start_hnp(struct usb_otg *otg) { if (otg && otg->start_hnp) return otg->start_hnp(otg); return -ENOTSUPP; } /* Context: can sleep */ static inline int otg_set_vbus(struct usb_otg *otg, bool enabled) { if (otg && otg->set_vbus) return otg->set_vbus(otg, enabled); return -ENOTSUPP; } /* for HCDs */ static inline int otg_set_host(struct usb_otg *otg, struct usb_bus *host) { if (otg && otg->set_host) return otg->set_host(otg, host); return -ENOTSUPP; } /* for usb peripheral controller drivers */ /* Context: can sleep */ static inline int otg_set_peripheral(struct usb_otg *otg, struct usb_gadget *periph) { if (otg && otg->set_peripheral) return otg->set_peripheral(otg, periph); return -ENOTSUPP; } static inline int otg_start_srp(struct usb_otg *otg) { if (otg && otg->start_srp) return otg->start_srp(otg); return -ENOTSUPP; } /* for OTG controller drivers (and maybe other stuff) */ extern int usb_bus_start_enum(struct usb_bus *bus, unsigned port_num); enum usb_dr_mode { USB_DR_MODE_UNKNOWN, USB_DR_MODE_HOST, USB_DR_MODE_PERIPHERAL, USB_DR_MODE_OTG, }; /** * usb_get_dr_mode - Get dual role mode for given device * @dev: Pointer to the given device * * The function gets phy interface string from property 'dr_mode', * and returns the corresponding enum usb_dr_mode */ extern enum usb_dr_mode usb_get_dr_mode(struct device *dev); extern enum usb_dr_mode usb_get_role_switch_default_mode(struct device *dev); #endif /* __LINUX_USB_OTG_H */