linux/drivers/usb/host/ohci-s3c2410.c

// SPDX-License-Identifier: GPL-1.0+
/*
 * OHCI HCD (Host Controller Driver) for USB.
 *
 * (C) Copyright 1999 Roman Weissgaerber <[email protected]>
 * (C) Copyright 2000-2002 David Brownell <[email protected]>
 * (C) Copyright 2002 Hewlett-Packard Company
 *
 * USB Bus Glue for Samsung S3C2410
 *
 * Written by Christopher Hoover <[email protected]>
 * Based on fragments of previous driver by Russell King et al.
 *
 * Modified for S3C2410 from ohci-sa1111.c, ohci-omap.c and ohci-lh7a40.c
 *	by Ben Dooks, <[email protected]>
 *	Copyright (C) 2004 Simtec Electronics
 *
 * Thanks to [email protected] for updates to newer kernels
 *
 * This file is licenced under the GPL.
*/

#include <linux/clk.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/platform_data/usb-ohci-s3c2410.h>
#include <linux/usb.h>
#include <linux/usb/hcd.h>

#include "ohci.h"


#define valid_port(idx)

/* clock device associated with the hcd */


#define DRIVER_DESC

static struct clk *clk;
static struct clk *usb_clk;

static struct hc_driver __read_mostly ohci_s3c2410_hc_driver;

/* forward definitions */

static void s3c2410_hcd_oc(struct s3c2410_hcd_info *info, int port_oc);

/* conversion functions */

static struct s3c2410_hcd_info *to_s3c2410_info(struct usb_hcd *hcd)
{}

static void s3c2410_start_hc(struct platform_device *dev, struct usb_hcd *hcd)
{}

static void s3c2410_stop_hc(struct platform_device *dev)
{}

/* ohci_s3c2410_hub_status_data
 *
 * update the status data from the hub with anything that
 * has been detected by our system
*/

static int
ohci_s3c2410_hub_status_data(struct usb_hcd *hcd, char *buf)
{}

/* s3c2410_usb_set_power
 *
 * configure the power on a port, by calling the platform device
 * routine registered with the platform device
*/

static void s3c2410_usb_set_power(struct s3c2410_hcd_info *info,
				  int port, int to)
{}

/* ohci_s3c2410_hub_control
 *
 * look at control requests to the hub, and see if we need
 * to take any action or over-ride the results from the
 * request.
*/

static int ohci_s3c2410_hub_control(
	struct usb_hcd	*hcd,
	u16		typeReq,
	u16		wValue,
	u16		wIndex,
	char		*buf,
	u16		wLength)
{}

/* s3c2410_hcd_oc
 *
 * handle an over-current report
*/

static void s3c2410_hcd_oc(struct s3c2410_hcd_info *info, int port_oc)
{}

/* may be called without controller electrically present */
/* may be called with controller, bus, and devices active */

/*
 * ohci_hcd_s3c2410_remove - shutdown processing for HCD
 * @dev: USB Host Controller being removed
 *
 * Context: task context, might sleep
 *
 * Reverses the effect of ohci_hcd_3c2410_probe(), first invoking
 * the HCD's stop() method.  It is always called from a thread
 * context, normally "rmmod", "apmd", or something similar.
 */
static void
ohci_hcd_s3c2410_remove(struct platform_device *dev)
{}

/*
 * ohci_hcd_s3c2410_probe - initialize S3C2410-based HCDs
 * @dev: USB Host Controller to be probed
 *
 * Context: task context, might sleep
 *
 * Allocates basic resources for this USB host controller, and
 * then invokes the start() method for the HCD associated with it
 * through the hotplug entry's driver_data.
 */
static int ohci_hcd_s3c2410_probe(struct platform_device *dev)
{}

/*-------------------------------------------------------------------------*/

#ifdef CONFIG_PM
static int ohci_hcd_s3c2410_drv_suspend(struct device *dev)
{}

static int ohci_hcd_s3c2410_drv_resume(struct device *dev)
{}
#else
#define ohci_hcd_s3c2410_drv_suspend
#define ohci_hcd_s3c2410_drv_resume
#endif

static const struct dev_pm_ops ohci_hcd_s3c2410_pm_ops =;

static const struct of_device_id ohci_hcd_s3c2410_dt_ids[] =;

MODULE_DEVICE_TABLE(of, ohci_hcd_s3c2410_dt_ids);

static struct platform_driver ohci_hcd_s3c2410_driver =;

static int __init ohci_s3c2410_init(void)
{}
module_init();

static void __exit ohci_s3c2410_cleanup(void)
{}
module_exit(ohci_s3c2410_cleanup);

MODULE_DESCRIPTION();
MODULE_LICENSE();
MODULE_ALIAS();