// SPDX-License-Identifier: GPL-2.0+ /* * c67x00-hcd.c: Cypress C67X00 USB Host Controller Driver * * Copyright (C) 2006-2008 Barco N.V. * Derived from the Cypress cy7c67200/300 ezusb linux driver and * based on multiple host controller drivers inside the linux kernel. */ #include <linux/device.h> #include <linux/platform_device.h> #include <linux/usb.h> #include "c67x00.h" #include "c67x00-hcd.h" /* -------------------------------------------------------------------------- * Root Hub Support */ static __u8 c67x00_hub_des[] = …; static void c67x00_hub_reset_host_port(struct c67x00_sie *sie, int port) { … } static int c67x00_hub_status_data(struct usb_hcd *hcd, char *buf) { … } static int c67x00_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, u16 wIndex, char *buf, u16 wLength) { … } /* --------------------------------------------------------------------- * Main part of host controller driver */ /* * c67x00_hcd_irq * * This function is called from the interrupt handler in c67x00-drv.c */ static void c67x00_hcd_irq(struct c67x00_sie *sie, u16 int_status, u16 msg) { … } /* * c67x00_hcd_start: Host controller start hook */ static int c67x00_hcd_start(struct usb_hcd *hcd) { … } /* * c67x00_hcd_stop: Host controller stop hook */ static void c67x00_hcd_stop(struct usb_hcd *hcd) { … } static int c67x00_hcd_get_frame(struct usb_hcd *hcd) { … } static const struct hc_driver c67x00_hc_driver = …; /* --------------------------------------------------------------------- * Setup/Teardown routines */ int c67x00_hcd_probe(struct c67x00_sie *sie) { … } /* may be called with controller, bus, and devices active */ void c67x00_hcd_remove(struct c67x00_sie *sie) { … }