Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0+ */
0002 /*
0003  * Copyright 2012 Freescale Semiconductor, Inc.
0004  */
0005 
0006 #ifndef __DRIVER_USB_CHIPIDEA_CI_HDRC_IMX_H
0007 #define __DRIVER_USB_CHIPIDEA_CI_HDRC_IMX_H
0008 
0009 struct imx_usbmisc_data {
0010     struct device *dev;
0011     int index;
0012 
0013     unsigned int disable_oc:1; /* over current detect disabled */
0014 
0015     /* true if over-current polarity is active low */
0016     unsigned int oc_pol_active_low:1;
0017 
0018     /* true if dt specifies polarity */
0019     unsigned int oc_pol_configured:1;
0020 
0021     unsigned int pwr_pol:1; /* power polarity */
0022     unsigned int evdo:1; /* set external vbus divider option */
0023     unsigned int ulpi:1; /* connected to an ULPI phy */
0024     unsigned int hsic:1; /* HSIC controller */
0025     unsigned int ext_id:1; /* ID from exteranl event */
0026     unsigned int ext_vbus:1; /* Vbus from exteranl event */
0027     struct usb_phy *usb_phy;
0028     enum usb_dr_mode available_role; /* runtime usb dr mode */
0029     int emp_curr_control;
0030     int dc_vol_level_adjust;
0031 };
0032 
0033 int imx_usbmisc_init(struct imx_usbmisc_data *data);
0034 int imx_usbmisc_init_post(struct imx_usbmisc_data *data);
0035 int imx_usbmisc_set_wakeup(struct imx_usbmisc_data *data, bool enabled);
0036 int imx_usbmisc_hsic_set_connect(struct imx_usbmisc_data *data);
0037 int imx_usbmisc_hsic_set_clk(struct imx_usbmisc_data *data, bool on);
0038 int imx_usbmisc_charger_detection(struct imx_usbmisc_data *data, bool connect);
0039 
0040 #endif /* __DRIVER_USB_CHIPIDEA_CI_HDRC_IMX_H */