__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
/* 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 <linux/phy/phy.h>
#include <linux/usb/phy.h>
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 */
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| audio-v2.h | File | 13.87 KB | 0644 |
|
| audio-v3.h | File | 13.94 KB | 0644 |
|
| audio.h | File | 1.08 KB | 0644 |
|
| c67x00.h | File | 1.12 KB | 0644 |
|
| ccid.h | File | 787 B | 0644 |
|
| cdc-wdm.h | File | 511 B | 0644 |
|
| cdc.h | File | 1.3 KB | 0644 |
|
| cdc_ncm.h | File | 5.84 KB | 0644 |
|
| ch9.h | File | 2.13 KB | 0644 |
|
| chipidea.h | File | 3.61 KB | 0644 |
|
| composite.h | File | 24.61 KB | 0644 |
|
| ehci-dbgp.h | File | 2.05 KB | 0644 |
|
| ehci_def.h | File | 7.4 KB | 0644 |
|
| ehci_pdriver.h | File | 1.66 KB | 0644 |
|
| ezusb.h | File | 286 B | 0644 |
|
| func_utils.h | File | 2.65 KB | 0644 |
|
| functionfs.h | File | 151 B | 0644 |
|
| g_hid.h | File | 442 B | 0644 |
|
| gadget.h | File | 36.8 KB | 0644 |
|
| gadget_configfs.h | File | 2.87 KB | 0644 |
|
| hcd.h | File | 27.41 KB | 0644 |
|
| input.h | File | 526 B | 0644 |
|
| iowarrior.h | File | 1.34 KB | 0644 |
|
| irda.h | File | 3.76 KB | 0644 |
|
| isp116x.h | File | 1.13 KB | 0644 |
|
| isp1301.h | File | 1.93 KB | 0644 |
|
| isp1362.h | File | 1.59 KB | 0644 |
|
| ljca.h | File | 4.2 KB | 0644 |
|
| m66592.h | File | 773 B | 0644 |
|
| midi-v2.h | File | 3.55 KB | 0644 |
|
| musb-ux500.h | File | 395 B | 0644 |
|
| musb.h | File | 3.16 KB | 0644 |
|
| net2280.h | File | 22.86 KB | 0644 |
|
| of.h | File | 2.03 KB | 0644 |
|
| ohci_pdriver.h | File | 1.02 KB | 0644 |
|
| onboard_dev.h | File | 584 B | 0644 |
|
| otg-fsm.h | File | 7.93 KB | 0644 |
|
| otg.h | File | 3.08 KB | 0644 |
|
| pd.h | File | 16.7 KB | 0644 |
|
| pd_ado.h | File | 1.16 KB | 0644 |
|
| pd_bdo.h | File | 556 B | 0644 |
|
| pd_ext_sdb.h | File | 698 B | 0644 |
|
| pd_vdo.h | File | 16.51 KB | 0644 |
|
| phy.h | File | 8.09 KB | 0644 |
|
| phy_companion.h | File | 693 B | 0644 |
|
| quirks.h | File | 2.44 KB | 0644 |
|
| r8152.h | File | 1.04 KB | 0644 |
|
| r8a66597.h | File | 16.99 KB | 0644 |
|
| renesas_usbhs.h | File | 3.62 KB | 0644 |
|
| rndis_host.h | File | 5.32 KB | 0644 |
|
| role.h | File | 3.58 KB | 0644 |
|
| rzv2m_usb3drd.h | File | 450 B | 0644 |
|
| serial.h | File | 17.17 KB | 0644 |
|
| sl811.h | File | 838 B | 0644 |
|
| storage.h | File | 2.77 KB | 0644 |
|
| tcpci.h | File | 8.49 KB | 0644 |
|
| tcpm.h | File | 7.73 KB | 0644 |
|
| tegra_usb_phy.h | File | 2.23 KB | 0644 |
|
| typec.h | File | 12.61 KB | 0644 |
|
| typec_altmode.h | File | 7.71 KB | 0644 |
|
| typec_dp.h | File | 4.69 KB | 0644 |
|
| typec_mux.h | File | 2.77 KB | 0644 |
|
| typec_retimer.h | File | 1.17 KB | 0644 |
|
| typec_tbt.h | File | 1.82 KB | 0644 |
|
| uas.h | File | 2.07 KB | 0644 |
|
| ulpi.h | File | 2.1 KB | 0644 |
|
| usb338x.h | File | 7.29 KB | 0644 |
|
| usb_phy_generic.h | File | 582 B | 0644 |
|
| usbnet.h | File | 10.07 KB | 0644 |
|
| uvc.h | File | 6.46 KB | 0644 |
|
| webusb.h | File | 2.4 KB | 0644 |
|
| xhci-dbgp.h | File | 651 B | 0644 |
|