ci_hdrc_imx.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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. };
  26. int imx_usbmisc_init(struct imx_usbmisc_data *data);
  27. int imx_usbmisc_init_post(struct imx_usbmisc_data *data);
  28. int imx_usbmisc_set_wakeup(struct imx_usbmisc_data *data, bool enabled);
  29. int imx_usbmisc_hsic_set_connect(struct imx_usbmisc_data *data);
  30. int imx_usbmisc_hsic_set_clk(struct imx_usbmisc_data *data, bool on);
  31. int imx_usbmisc_charger_detection(struct imx_usbmisc_data *data, bool connect);
  32. #endif /* __DRIVER_USB_CHIPIDEA_CI_HDRC_IMX_H */