usb20.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. #ifndef __USB20_H__
  2. #define __USB20_H__
  3. #define ID_PIN_USE_EX_EINT 1
  4. #ifdef CONFIG_USB_MTK_OTG
  5. #ifdef ID_PIN_USE_EX_EINT
  6. #define IDDIG_EINT_PIN (GPIO_OTG_IDDIG_EINT_PIN & ~(0x80000000))
  7. /* #define IDDIG_EINT_PIN 0 */
  8. #else
  9. #ifdef CONFIG_OF
  10. extern struct musb *mtk_musb;
  11. #define U2PHYDTM1 (((unsigned long)mtk_musb->xceiv->io_priv)+0x800 + 0x6c)
  12. #else
  13. #define U2PHYDTM1 (USB_SIF_BASE+0x800 + 0x6c)
  14. #endif
  15. #define ID_PULL_UP 0x0101
  16. #define ID_PHY_RESET 0x3d11
  17. #endif
  18. extern unsigned int mt_gpio_to_irq(unsigned int gpio);
  19. #endif
  20. #if defined(CONFIG_MTK_FAN5405_SUPPORT) \
  21. || defined(CONFIG_MTK_BQ24158_SUPPORT) \
  22. || defined(CONFIG_MTK_NCP1851_SUPPORT) \
  23. || defined(CONFIG_MTK_BQ24196_SUPPORT) \
  24. || defined(CONFIG_MTK_BQ24296_SUPPORT) \
  25. || defined(CONFIG_MTK_NCP1854_SUPPORT)
  26. #define SWITCH_CHARGER 1
  27. #endif
  28. #if defined(CONFIG_MTK_FPGA)
  29. #define FPGA_PLATFORM 1
  30. #endif
  31. struct mt_usb_glue {
  32. struct device *dev;
  33. struct platform_device *musb;
  34. };
  35. /* Battery relative function */
  36. typedef enum {
  37. CHARGER_UNKNOWN = 0,
  38. STANDARD_HOST, /* USB : 450mA */
  39. CHARGING_HOST,
  40. NONSTANDARD_CHARGER, /* AC : 450mA~1A */
  41. STANDARD_CHARGER, /* AC : ~1A */
  42. } CHARGER_TYPE;
  43. extern int first_connect;
  44. extern int check_delay_done;
  45. extern void wake_up_bat(void);
  46. extern CHARGER_TYPE mt_charger_type_detection(void);
  47. extern kal_bool upmu_is_chr_det(void);
  48. extern unsigned int upmu_get_rgs_chrdet(void);
  49. extern void BATTERY_SetUSBState(int usb_state);
  50. extern void upmu_interrupt_chrdet_int_en(unsigned int val);
  51. /* specific USB fuctnion */
  52. typedef enum {
  53. CABLE_MODE_CHRG_ONLY = 0,
  54. CABLE_MODE_NORMAL,
  55. CABLE_MODE_HOST_ONLY,
  56. CABLE_MODE_MAX
  57. } CABLE_MODE;
  58. #ifdef CONFIG_MTK_UART_USB_SWITCH
  59. typedef enum {
  60. PORT_MODE_USB = 0,
  61. PORT_MODE_UART,
  62. PORT_MODE_MAX
  63. } PORT_MODE;
  64. extern bool usb_phy_check_in_uart_mode(void);
  65. extern void usb_phy_switch_to_usb(void);
  66. extern void usb_phy_switch_to_uart(void);
  67. #endif
  68. /*add struct and enum for linux kernel 3.10 dts*/
  69. #if 0
  70. /*enum {
  71. usb0 = 0,
  72. usb_sif,
  73. usb_acm_temp_device,
  74. };*/
  75. #endif
  76. /* switch charger API*/
  77. #ifdef CONFIG_MTK_FAN5405_SUPPORT
  78. extern void fan5405_set_opa_mode(unsigned int val);
  79. extern void fan5405_set_otg_pl(unsigned int val);
  80. extern void fan5405_set_otg_en(unsigned int val);
  81. extern unsigned int fan5405_reg_config_interface(unsigned char RegNum, unsigned char val);
  82. #elif defined(CONFIG_MTK_BQ24261_SUPPORT)
  83. extern void bq24261_set_en_boost(unsigned int val);
  84. #elif defined(CONFIG_MTK_BQ24296_SUPPORT)
  85. extern void bq24296_set_otg_config(unsigned int val);
  86. extern void bq24296_set_boostv(unsigned int val);
  87. extern void bq24296_set_boost_lim(unsigned int val);
  88. extern void bq24296_set_en_hiz(unsigned int val);
  89. #elif defined(CONFIG_MTK_BQ24196_SUPPORT)
  90. extern void bq24196_set_otg_config(unsigned int val);
  91. extern void bq24196_set_boost_lim(unsigned int val);
  92. #elif defined CONFIG_MTK_NCP1854_SUPPORT
  93. extern void ncp1854_set_chg_en(unsigned int val);
  94. extern void ncp1854_set_otg_en(unsigned int val);
  95. #endif
  96. #ifdef FPGA_PLATFORM
  97. extern void USB_PHY_Write_Register8(UINT8 var, UINT8 addr);
  98. extern UINT8 USB_PHY_Read_Register8(UINT8 addr);
  99. #endif
  100. extern struct clk *musb_clk;
  101. extern void __iomem *ap_uart0_base;
  102. #ifdef CONFIG_MTK_UART_USB_SWITCH
  103. extern bool in_uart_mode;
  104. #endif
  105. extern int usb20_phy_init_debugfs(void);
  106. extern CHARGER_TYPE mt_get_charger_type(void);
  107. #include <upmu_common.h>
  108. bool hwPowerOn(MT65XX_POWER powerId, int powerVolt, char *mode_name);
  109. #endif