#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/export.h>
#include <linux/usb.h>
#include <linux/usb/otg.h>
#include <linux/usb/ulpi.h>
struct ulpi_info { … };
#define ULPI_ID(vendor, product) …
#define ULPI_INFO(_id, _name) …
static struct ulpi_info ulpi_ids[] = …;
static int ulpi_set_otg_flags(struct usb_phy *phy)
{ … }
static int ulpi_set_fc_flags(struct usb_phy *phy)
{ … }
static int ulpi_set_ic_flags(struct usb_phy *phy)
{ … }
static int ulpi_set_flags(struct usb_phy *phy)
{ … }
static int ulpi_check_integrity(struct usb_phy *phy)
{ … }
static int ulpi_init(struct usb_phy *phy)
{ … }
static int ulpi_set_host(struct usb_otg *otg, struct usb_bus *host)
{ … }
static int ulpi_set_vbus(struct usb_otg *otg, bool on)
{ … }
static void otg_ulpi_init(struct usb_phy *phy, struct usb_otg *otg,
struct usb_phy_io_ops *ops,
unsigned int flags)
{ … }
struct usb_phy *
otg_ulpi_create(struct usb_phy_io_ops *ops,
unsigned int flags)
{ … }
EXPORT_SYMBOL_GPL(…);
struct usb_phy *
devm_otg_ulpi_create(struct device *dev,
struct usb_phy_io_ops *ops,
unsigned int flags)
{ … }
EXPORT_SYMBOL_GPL(…);