18e22978cSAlexander Shishkin /* 28e22978cSAlexander Shishkin * Copyright 2012 Freescale Semiconductor, Inc. 38e22978cSAlexander Shishkin * 48e22978cSAlexander Shishkin * The code contained herein is licensed under the GNU General Public 58e22978cSAlexander Shishkin * License. You may obtain a copy of the GNU General Public License 68e22978cSAlexander Shishkin * Version 2 or later at the following locations: 78e22978cSAlexander Shishkin * 88e22978cSAlexander Shishkin * http://www.opensource.org/licenses/gpl-license.html 98e22978cSAlexander Shishkin * http://www.gnu.org/copyleft/gpl.html 108e22978cSAlexander Shishkin */ 118e22978cSAlexander Shishkin 128e22978cSAlexander Shishkin /* Used to set SoC specific callbacks */ 138e22978cSAlexander Shishkin struct usbmisc_ops { 148e22978cSAlexander Shishkin /* It's called once when probe a usb device */ 158e22978cSAlexander Shishkin int (*init)(struct device *dev); 168e22978cSAlexander Shishkin /* It's called once after adding a usb device */ 178e22978cSAlexander Shishkin int (*post)(struct device *dev); 188e22978cSAlexander Shishkin }; 198e22978cSAlexander Shishkin 208e22978cSAlexander Shishkin struct usbmisc_usb_device { 218e22978cSAlexander Shishkin struct device *dev; /* usb controller device */ 228e22978cSAlexander Shishkin int index; 238e22978cSAlexander Shishkin 248e22978cSAlexander Shishkin unsigned int disable_oc:1; /* over current detect disabled */ 258e22978cSAlexander Shishkin unsigned int evdo:1; /* set external vbus divider option */ 268e22978cSAlexander Shishkin }; 278e22978cSAlexander Shishkin 288e22978cSAlexander Shishkin int usbmisc_set_ops(const struct usbmisc_ops *ops); 298e22978cSAlexander Shishkin void usbmisc_unset_ops(const struct usbmisc_ops *ops); 308e22978cSAlexander Shishkin int 318e22978cSAlexander Shishkin usbmisc_get_init_data(struct device *dev, struct usbmisc_usb_device *usbdev); 32