d142d6be23
i.MX usb controllers share non-core registers, which may include SoC specific controls. We turn it into a usbmisc device and usbmisc driver set operations needed by ci13xxx_imx driver. For example, Sabrelite board has bad over-current design, we can usbmisc to disable over-current detection. Acked-by: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Richard Zhao <richard.zhao@freescale.com> Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
29 lines
830 B
C
29 lines
830 B
C
/*
|
|
* Copyright 2012 Freescale Semiconductor, Inc.
|
|
*
|
|
* The code contained herein is licensed under the GNU General Public
|
|
* License. You may obtain a copy of the GNU General Public License
|
|
* Version 2 or later at the following locations:
|
|
*
|
|
* http://www.opensource.org/licenses/gpl-license.html
|
|
* http://www.gnu.org/copyleft/gpl.html
|
|
*/
|
|
|
|
/* Used to set SoC specific callbacks */
|
|
struct usbmisc_ops {
|
|
/* It's called once when probe a usb device */
|
|
int (*init)(struct device *dev);
|
|
};
|
|
|
|
struct usbmisc_usb_device {
|
|
struct device *dev; /* usb controller device */
|
|
int index;
|
|
|
|
int disable_oc:1; /* over current detect disabled */
|
|
};
|
|
|
|
int usbmisc_set_ops(const struct usbmisc_ops *ops);
|
|
void usbmisc_unset_ops(const struct usbmisc_ops *ops);
|
|
int
|
|
usbmisc_get_init_data(struct device *dev, struct usbmisc_usb_device *usbdev);
|