aboutsummaryrefslogtreecommitdiff
path: root/drivers/misc/mediatek/usb20/mt6735/usb20.h
blob: 979b085347dbe0143944b0d12f33453f84d00a49 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#ifndef __USB20_H__
#define __USB20_H__

#define ID_PIN_USE_EX_EINT 1

#ifdef CONFIG_USB_MTK_OTG
#ifdef ID_PIN_USE_EX_EINT
#define IDDIG_EINT_PIN (GPIO_OTG_IDDIG_EINT_PIN & ~(0x80000000))
//#define IDDIG_EINT_PIN 0
#else
#ifdef CONFIG_OF
extern struct musb *mtk_musb;
#define U2PHYDTM1  (((unsigned long)mtk_musb->xceiv->io_priv)+0x800 + 0x6c)
#else
#define U2PHYDTM1  (USB_SIF_BASE+0x800 + 0x6c)
#endif
#define ID_PULL_UP 0x0101
#define ID_PHY_RESET 0x3d11
#endif
#endif

#if defined(CONFIG_MTK_FAN5405_SUPPORT) \
    || defined(CONFIG_MTK_BQ24158_SUPPORT) \
    || defined(CONFIG_MTK_NCP1851_SUPPORT) \
    || defined(CONFIG_MTK_BQ24196_SUPPORT) \
    || defined(CONFIG_MTK_BQ24296_SUPPORT) \
    || defined(CONFIG_MTK_NCP1854_SUPPORT) \
    || defined(CONFIG_MTK_MAX77819_SUPPORT)
#define SWITCH_CHARGER 1
#endif

#ifdef MEIZU_M81
#if defined(CONFIG_MTK_MAX77819_SUPPORT)
#define SWITCH_CHARGER 1
#endif
#endif

#if defined (CONFIG_MTK_FPGA)
#define FPGA_PLATFORM 1
#endif

struct mt_usb_glue {
	struct device *dev;
	struct platform_device *musb;
};

/* Battery relative fucntion */
typedef enum {
	CHARGER_UNKNOWN = 0,
	STANDARD_HOST,		// USB : 450mA
	CHARGING_HOST,
	NONSTANDARD_CHARGER,	// AC : 450mA~1A
	STANDARD_CHARGER,	// AC : ~1A
} CHARGER_TYPE;

extern void wake_up_bat(void);
extern CHARGER_TYPE mt_charger_type_detection(void);
extern bool upmu_is_chr_det(void);
extern kal_uint32 upmu_get_rgs_chrdet(void);
extern void BATTERY_SetUSBState(int usb_state);
extern void upmu_interrupt_chrdet_int_en(kal_uint32 val);
extern void tbl_charger_otg_vbus(kal_uint32 mode);

/* specific USB fuctnion */
typedef enum {
	CABLE_MODE_CHRG_ONLY = 0,
	CABLE_MODE_NORMAL,
	CABLE_MODE_HOST_ONLY,
	CABLE_MODE_MAX
} CABLE_MODE;

#ifdef CONFIG_MTK_UART_USB_SWITCH
typedef enum {
	PORT_MODE_USB = 0,
	PORT_MODE_UART,
	PORT_MODE_MAX
} PORT_MODE;

extern bool usb_phy_check_in_uart_mode(void);
extern void usb_phy_switch_to_usb(void);
extern void usb_phy_switch_to_uart(void);
#endif
/*add struct and enum for linux kernel 3.10 dts*/

#if 0

/*enum {
usb0 = 0,
usb_sif,
usb_acm_temp_device,
};*/
#endif

/* switch charger API*/
#ifdef CONFIG_MTK_FAN5405_SUPPORT
extern void fan5405_set_opa_mode(kal_uint32 val);
extern void fan5405_set_otg_pl(kal_uint32 val);
extern void fan5405_set_otg_en(kal_uint32 val);
extern kal_uint32 fan5405_reg_config_interface(kal_uint8 RegNum, kal_uint8 val);
#elif defined(CONFIG_MTK_NCP1851_SUPPORT) || defined(CONFIG_MTK_BQ24196_SUPPORT)
extern void tbl_charger_otg_vbus(kal_uint32 mode);
#elif defined(CONFIG_MTK_BQ24261_SUPPORT)
extern void bq24261_set_en_boost(kal_uint32 val);
#elif defined(CONFIG_MTK_BQ24296_SUPPORT)
extern void bq24296_set_otg_config(kal_uint32 val);
extern void bq24296_set_boostv(kal_uint32 val);
extern void bq24296_set_boost_lim(kal_uint32 val);
extern void bq24296_set_en_hiz(kal_uint32 val);
#elif defined CONFIG_MTK_NCP1854_SUPPORT
extern void ncp1854_set_chg_en(kal_uint32 val);
extern void ncp1854_set_otg_en(kal_uint32 val);

#endif

#ifdef FPGA_PLATFORM
extern void USB_PHY_Write_Register8(UINT8 var, UINT8 addr);
extern UINT8 USB_PHY_Read_Register8(UINT8 addr);
#endif

#endif