cregit-Linux how code gets into the kernel

Release 4.12 include/linux/usb/otg.h

/* 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; }

Contributors

PersonTokensPropCommitsCommitProp
Heikki Krogerus2062.50%375.00%
David Brownell1237.50%125.00%
Total32100.00%4100.00%

/* 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; }

Contributors

PersonTokensPropCommitsCommitProp
Heikki Krogerus2259.46%375.00%
Daniel Mack1540.54%125.00%
Total37100.00%4100.00%

/* 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; }

Contributors

PersonTokensPropCommitsCommitProp
Heikki Krogerus2256.41%375.00%
David Brownell1743.59%125.00%
Total39100.00%4100.00%

/* 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; }

Contributors

PersonTokensPropCommitsCommitProp
Heikki Krogerus2256.41%375.00%
David Brownell1743.59%125.00%
Total39100.00%4100.00%


static inline int otg_start_srp(struct usb_otg *otg) { if (otg && otg->start_srp) return otg->start_srp(otg); return -ENOTSUPP; }

Contributors

PersonTokensPropCommitsCommitProp
Heikki Krogerus2062.50%375.00%
David Brownell1237.50%125.00%
Total32100.00%4100.00%

/* 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 correspondig enum usb_dr_mode */ extern enum usb_dr_mode usb_get_dr_mode(struct device *dev); #endif /* __LINUX_USB_OTG_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Heikki Krogerus21155.67%420.00%
David Brownell7419.53%210.00%
Li Jun184.75%15.00%
Daniel Mack164.22%15.00%
Antoine Ténart143.69%315.00%
Michael Grzeschik123.17%15.00%
Robert P. J. Day102.64%15.00%
Anatolij Gustschin92.37%15.00%
Venu Byravarasu51.32%15.00%
Kishon Vijay Abraham I41.06%15.00%
Felipe Balbi30.79%210.00%
Robert Jarzmik20.53%15.00%
Greg Kroah-Hartman10.26%15.00%
Total379100.00%20100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.