/usr/src/kernels/4.18.0-553.157.1.el8_10.x86_64/include/linux/usb
NameSizeModeActions
association.h46970644editdlrm
audio-v2.h137750644editdlrm
audio-v3.h142700644editdlrm
audio.h11080644editdlrm
c67x00.h18670644editdlrm
ccid.h7870644editdlrm
cdc-wdm.h4610644editdlrm
cdc.h13270644editdlrm
cdc_ncm.h59560644editdlrm
ch9.h23420644editdlrm
chipidea.h31280644editdlrm
composite.h256380644editdlrm
ehci-dbgp.h20990644editdlrm
ehci_def.h80760644editdlrm
ehci_pdriver.h23950644editdlrm
ezusb.h2860644editdlrm
functionfs.h1510644editdlrm
gadget.h343350644editdlrm
gadget_configfs.h30140644editdlrm
gpio_vbus.h11530644editdlrm
g_hid.h11580644editdlrm
hcd.h284230644editdlrm
input.h5260644editdlrm
iowarrior.h13740644editdlrm
irda.h38530644editdlrm
isp116x.h11600644editdlrm
isp1301.h19750644editdlrm
isp1362.h16280644editdlrm
m66592.h7730644editdlrm
musb-ux500.h8990644editdlrm
musb.h36000644editdlrm
net2280.h241200644editdlrm
of.h18150644editdlrm
ohci_pdriver.h17480644editdlrm
otg-fsm.h88230644editdlrm
otg.h30800644editdlrm
pd.h165390644editdlrm
pd_ado.h11910644editdlrm
pd_bdo.h5550644editdlrm
pd_ext_sdb.h6980644editdlrm
pd_vdo.h165540644editdlrm
phy.h84350644editdlrm
phy_companion.h11960644editdlrm
quirks.h24030644editdlrm
r8a66597.h173980644editdlrm
r8152.h9700644editdlrm
renesas_usbhs.h43220644editdlrm
rndis_host.h60800644editdlrm
role.h35380644editdlrm
serial.h173840644editdlrm
sl811.h8380644editdlrm
storage.h25820644editdlrm
tcpci.h77710644editdlrm
tcpm.h70090644editdlrm
tegra_usb_phy.h24900644editdlrm
typec.h101360644editdlrm
typec_altmode.h66410644editdlrm
typec_dp.h39780644editdlrm
typec_mux.h29860644editdlrm
typec_retimer.h11980644editdlrm
typec_tbt.h17740644editdlrm
uas.h21210644editdlrm
ulpi.h21470644editdlrm
usb338x.h79770644editdlrm
usbnet.h105060644editdlrm
usb_phy_generic.h5820644editdlrm
uvc.h63390644editdlrm
wusb-wa.h76790644editdlrm
wusb.h95860644editdlrm
xhci-dbgp.h6510644editdlrm
Edit: /usr/src/kernels/4.18.0-553.157.1.el8_10.x86_64/include/linux/usb/otg.h (3080B)
/* 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); #endif /* __LINUX_USB_OTG_H */