ci_hdrc_imx.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright 2012 Freescale Semiconductor, Inc.
  4. */
  5. #ifndef __DRIVER_USB_CHIPIDEA_CI_HDRC_IMX_H
  6. #define __DRIVER_USB_CHIPIDEA_CI_HDRC_IMX_H
  7. struct imx_usbmisc_data {
  8. struct device *dev;
  9. int index;
  10. unsigned int disable_oc:1; /* over current detect disabled */
  11. /* true if over-current polarity is active low */
  12. unsigned int oc_pol_active_low:1;
  13. /* true if dt specifies polarity */
  14. unsigned int oc_pol_configured:1;
  15. unsigned int pwr_pol:1; /* power polarity */
  16. unsigned int evdo:1; /* set external vbus divider option */
  17. unsigned int ulpi:1; /* connected to an ULPI phy */
  18. unsigned int hsic:1; /* HSIC controller */
  19. unsigned int ext_id:1; /* ID from exteranl event */
  20. unsigned int ext_vbus:1; /* Vbus from exteranl event */
  21. struct usb_phy *usb_phy;
  22. enum usb_dr_mode available_role; /* runtime usb dr mode */
  23. int emp_curr_control;
  24. int dc_vol_level_adjust;
  25. int rise_fall_time_adjust;
  26. };
  27. int imx_usbmisc_init(struct imx_usbmisc_data *data);
  28. int imx_usbmisc_init_post(struct imx_usbmisc_data *data);
  29. int imx_usbmisc_hsic_set_connect(struct imx_usbmisc_data *data);
  30. int imx_usbmisc_charger_detection(struct imx_usbmisc_data *data, bool connect);
  31. int imx_usbmisc_suspend(struct imx_usbmisc_data *data, bool wakeup);
  32. int imx_usbmisc_resume(struct imx_usbmisc_data *data, bool wakeup);
  33. #endif /* __DRIVER_USB_CHIPIDEA_CI_HDRC_IMX_H */