usb: dwc_otg_310: fix usb vbus power controlled by pmic
[firefly-linux-kernel-4.4.55.git] / drivers / usb / dwc_otg_310 / usbdev_grf_regs.h
1 #ifndef __USBDEV_GRF_REGS_H__
2 #define __USBDEV_GRF_REGS_H__
3
4 typedef volatile struct tag_grf_uoc0_reg {
5         /* OTG */
6         u32 CON0;
7         u32 CON1;
8         u32 CON2;
9         u32 CON3;
10         u32 CON4;
11         u32 CON5;
12 } GRF_UOC0_REG, *pGRF_UOC0_REG;
13
14 typedef volatile struct tag_grf_uoc1_reg {
15         /* HOST0
16          * RK3188: DWC_OTG
17          * RK3288: OHCI & EHCI
18          */
19         u32 CON0;
20         u32 CON1;
21         u32 CON2;
22         u32 CON3;
23         u32 CON4;
24         u32 CON5;
25 } GRF_UOC1_REG, *pGRF_UOC1_REG;
26
27 typedef volatile struct tag_grf_uoc2_reg {
28         /* RK3188: EHCI1 PHY
29          * RK3288: HOST1 DWC_OTG
30          */
31         u32 CON0;
32         u32 CON1;
33         u32 CON2;
34         u32 CON3;
35 } GRF_UOC2_REG, *pGRF_UOC2_REG;
36
37 typedef volatile struct tag_grf_uoc3_reg {
38         /* RK3188: EHCI1 CTLR
39          * RK3288: EHCI1 PHY
40          */
41         u32 CON0;
42         u32 CON1;
43         u32 CON2;
44         u32 CON3;
45 } GRF_UOC3_REG, *pGRF_UOC3_REG;
46
47 typedef volatile struct tag_grf_uoc4_reg {
48         /* RK3288: EHCI1 CTLR */
49         u32 CON0;
50         u32 CON1;
51         u32 CON2;
52         u32 CON3;
53 } GRF_UOC4_REG, *pGRF_UOC4_REG;
54
55 typedef volatile struct tag_grf_soc_status0_rk3188 {
56         unsigned reserved2:9;
57         /* OTG20 */
58         unsigned otg_vbusvalid:1;
59         unsigned otg_bvalid:1;
60         unsigned otg_linestate:2;
61         unsigned otg_iddig:1;
62         unsigned otg_adpsns:1;
63         unsigned otg_adpprb:1;
64         /* HOST20 */
65         unsigned uhost_vbusvalid:1;
66         unsigned uhost_bvalid:1;
67         unsigned uhost_linestate:2;
68         unsigned uhost_iddig:1;
69         unsigned uhost_adpsns:1;
70         unsigned uhost_adpprb:1;
71         unsigned reserved1:9;
72
73 } GRF_SOC_STATUS_RK3188, *pGRF_SOC_STATUS_RK3188;
74
75 typedef volatile struct tag_grf_soc_status1_rk3288 {
76         unsigned reserved2:16;
77         unsigned ehci1_usbsts:6;
78         unsigned ehci1_lpsmc_state:4;
79         unsigned reserved1:6;
80
81 } GRF_SOC_STATUS1_RK3288, *pGRF_SOC_STATUS1_RK3288;
82
83 typedef volatile struct tag_grf_soc_status2_rk3288 {
84         /* EHCI1  */
85         unsigned ehci1_xfer_cnt:11;
86         unsigned ehci1_xfer_prdc:1;
87         unsigned reserved2:1;
88         /* OTG20  */
89         unsigned otg_vbusvalid:1;
90         unsigned otg_bvalid:1;
91         unsigned otg_linestate:2;
92         unsigned otg_iddig:1;
93         /* HOST1 DWC_OTG */
94         unsigned host1_chirp_on:1;
95         unsigned host1_vbusvalid:1;
96         unsigned host1_bvalid:1;
97         unsigned host1_linestate:2;
98         unsigned host1_iddig:1;
99         /* HOST0 OHCI */
100         unsigned host0_ohci_ccs:1;
101         unsigned host0_ohci_rwe:1;
102         unsigned host0_ohci_drwe:1;
103         unsigned host0_linestate:2;
104         unsigned host0_ohci_rmtwkp:1;
105         unsigned host0_ohci_bufacc:1;
106         unsigned reserved1:1;
107 } GRF_SOC_STATUS2_RK3288, *pGRF_SOC_STATUS2_RK3288;
108
109 typedef volatile struct tag_grf_soc_status19_rk3288 {
110         unsigned host_sidle_ack:2;
111         unsigned host_mstandby:1;
112         unsigned host_mwakeup:1;
113         unsigned host_mwait_out:1;
114         unsigned host_eoi_out:2;
115         unsigned host_wakeack:1;
116         unsigned host_l3_ocp_mconnect:2;
117         unsigned host_l3_ocp_tactive:1;
118         unsigned host_l3_ocp_sconnect:3;
119         unsigned reserved:9;
120         /* OTG20 PHY STATUS */
121         unsigned otg_chgdet:1;
122         unsigned otg_fsvplus:1;
123         unsigned otg_fsvminus:1;
124         /* HOST0 PHY STATUS */
125         unsigned host0_chgdet:1;
126         unsigned host0_fsvplus:1;
127         unsigned host0_fsvminus:1;
128         /* HOST1 PHY STATUS */
129         unsigned host1_chgdet:1;
130         unsigned host1_fsvplus:1;
131         unsigned host1_fsvminus:1;
132 } GRF_SOC_STATUS19_RK3288, *pGRF_SOC_STATUS19_RK3288;
133
134 typedef volatile struct tag_grf_soc_status21_rk3288 {
135         unsigned reserved:8;
136         /* HOST0 OHCI  */
137         unsigned host0_ohci_globalsuspend:1;
138         /* HOST0 EHCI  */
139         unsigned host0_ehci_bufacc:1;
140         unsigned host0_ehci_lpsmc_state:4;
141         unsigned host0_ehci_xfer_prdc:1;
142         unsigned host0_ehci_xfer_cnt:11;
143         unsigned host0_ehci_usbsts:6;
144 } GRF_SOC_STATUS21_RK3288, *pGRF_SOC_STATUS21_RK3288;
145
146 #endif