rk3036: usb: add support of wakeup by GRF linestate change
[firefly-linux-kernel-4.4.55.git] / drivers / usb / dwc_otg_310 / usbdev_bc.h
1 #ifndef _USBDEV_BC_H
2 #define _USBDEV_BC_H
3
4 /* USB Charger Types */
5 enum bc_port_type{
6         USB_BC_TYPE_DISCNT = 0,
7         USB_BC_TYPE_SDP,
8         USB_BC_TYPE_DCP,
9         USB_BC_TYPE_CDP,
10         USB_BC_TYPE_UNKNOW,
11         USB_BC_TYPE_MAX,
12 };
13 enum {
14         BC_BVALID = 0,
15         BC_IDDIG,
16 };
17
18 enum {
19         SYNOP_BC_BVALID = 0,
20         SYNOP_BC_IDDIG,
21         SYNOP_BC_DCDENB,
22         SYNOP_BC_VDATSRCENB,
23         SYNOP_BC_VDATDETENB,
24         SYNOP_BC_CHRGSEL,
25         SYNOP_BC_CHGDET,
26         SYNOP_BC_FSVPLUS,
27         SYNOP_BC_FSVMINUS,
28         SYNOP_BC_MAX,
29 };
30
31 enum {
32         INNO_BC_BVALID = 0,
33         INNO_BC_IDDIG,
34         INNO_BC_VDMSRCEN,
35         INNO_BC_VDPSRCEN,
36         INNO_BC_RDMPDEN,
37         INNO_BC_IDPSRCEN,
38         INNO_BC_IDMSINKEN,
39         INNO_BC_IDPSINKEN,
40         INNO_BC_DPATTACH,
41         INNO_BC_CPDET,
42         INNO_BC_DCPATTACH,
43         INNO_BC_MAX,
44 };
45
46 enum {
47         RK_BC_BVALID = 0,
48         RK_BC_IDDIG,
49         RK_BC_LINESTATE,
50         RK_BC_SOFTCTRL,
51         RK_BC_OPMODE,
52         RK_BC_XCVRSELECT,
53         RK_BC_TERMSELECT,
54         RK_BC_MAX,
55 };
56
57 #define T_DCD_TIMEOUT    (400)
58 #define T_BC_WAIT_CHGDET (40)
59 #define T_BC_CHGDET_VALID (200)
60
61 enum {
62         DCD_POSITIVE = 0,
63         DCD_PASSED,
64         DCD_TIMEOUT,
65 };
66
67 /***********************************
68 USB Port Type
69 0 : Disconnect
70 1 : SDP - pc
71 2 : DCP - charger
72 3 : CDP - pc with big currect charge
73 ***********************************/
74 extern int dwc_otg_check_dpdm(bool wait);
75 extern enum bc_port_type usb_battery_charger_detect(bool wait);
76 extern void rk_battery_charger_detect_cb(int charger_type_new);
77 extern int rk_bc_detect_register_notifier(struct notifier_block *nb,
78                                                   enum bc_port_type *type);
79 extern int rk_bc_detect_unregister_notifier(struct notifier_block *nb);
80
81 #endif