2
* Copyright 2009 Freescale Semiconductor, Inc. All Rights Reserved.
6
* The code contained herein is licensed under the GNU General Public
7
* License. You may obtain a copy of the GNU General Public License
8
* Version 2 or later at the following locations:
10
* http://www.opensource.org/licenses/gpl-license.html
11
* http://www.gnu.org/copyleft/gpl.html
14
#include <linux/module.h>
15
#include <linux/kernel.h>
16
#include <linux/types.h>
17
#include <linux/device.h>
18
#include <linux/errno.h>
19
#include <linux/init.h>
20
#include <linux/err.h>
21
#include <linux/platform_device.h>
22
#include <linux/fsl_devices.h>
23
#include <linux/usb/fsl_xcvr.h>
24
#include <linux/pmic_external.h>
26
#include <mach/hardware.h>
27
#include <mach/arc_otg.h>
28
#include <asm/mach-types.h>
30
static struct regulator *usbotg_regux;
32
static void usb_utmi_init(struct fsl_xcvr_ops *this)
36
static void usb_utmi_uninit(struct fsl_xcvr_ops *this)
43
* @param view viewport register
44
* @param on power on or off
46
static void set_power(struct fsl_xcvr_ops *this,
47
struct fsl_usb2_platform_data *pdata, int on)
49
struct device *dev = &pdata->pdev->dev;
51
pr_debug("real %s(on=%d) pdata=0x%p\n", __func__, on, pdata);
54
static struct fsl_xcvr_ops utmi_ops = {
56
.xcvr_type = PORTSC_PTS_UTMI,
57
.init = usb_utmi_init,
58
.uninit = usb_utmi_uninit,
59
.set_vbus_power = set_power,
62
extern void fsl_usb_xcvr_register(struct fsl_xcvr_ops *xcvr_ops);
64
static int __init utmixc_init(void)
66
fsl_usb_xcvr_register(&utmi_ops);
70
extern void fsl_usb_xcvr_unregister(struct fsl_xcvr_ops *xcvr_ops);
72
static void __exit utmixc_exit(void)
74
fsl_usb_xcvr_unregister(&utmi_ops);
77
module_init(utmixc_init);
78
module_exit(utmixc_exit);
80
MODULE_AUTHOR("Freescale Semiconductor, Inc.");
81
MODULE_DESCRIPTION("utmi xcvr driver");
82
MODULE_LICENSE("GPL");