#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/usb.h>
#include <linux/usb/hcd.h>
#include <linux/greybus.h>
#include "gbphy.h"
#define GB_USB_TYPE_HCD_START …
#define GB_USB_TYPE_HCD_STOP …
#define GB_USB_TYPE_HUB_CONTROL …
struct gb_usb_hub_control_request { … };
struct gb_usb_hub_control_response { … };
struct gb_usb_device { … };
static inline struct gb_usb_device *to_gb_usb_device(struct usb_hcd *hcd)
{ … }
static inline struct usb_hcd *gb_usb_device_to_hcd(struct gb_usb_device *dev)
{ … }
static void hcd_stop(struct usb_hcd *hcd)
{ … }
static int hcd_start(struct usb_hcd *hcd)
{ … }
static int urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags)
{ … }
static int urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
{ … }
static int get_frame_number(struct usb_hcd *hcd)
{ … }
static int hub_status_data(struct usb_hcd *hcd, char *buf)
{ … }
static int hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, u16 wIndex,
char *buf, u16 wLength)
{ … }
static const struct hc_driver usb_gb_hc_driver = …;
static int gb_usb_probe(struct gbphy_device *gbphy_dev,
const struct gbphy_device_id *id)
{ … }
static void gb_usb_remove(struct gbphy_device *gbphy_dev)
{ … }
static const struct gbphy_device_id gb_usb_id_table[] = …;
MODULE_DEVICE_TABLE(gbphy, gb_usb_id_table);
static struct gbphy_driver usb_driver = …;
module_gbphy_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;