1
2
3
4
5
6
7
8
9#ifndef _DCGU_H
10#define _DCGU_H
11
12enum dcgu_switch {
13 DCGU_SWITCH_OFF,
14 DCGU_SWITCH_ON
15};
16
17enum dcgu_hw_module {
18 DCGU_HW_MODULE_DCGU,
19
20 DCGU_HW_MODULE_MIC32_SCI,
21 DCGU_HW_MODULE_SCI,
22
23 DCGU_HW_MODULE_MR1,
24 DCGU_HW_MODULE_MR2,
25 DCGU_HW_MODULE_MVD,
26 DCGU_HW_MODULE_DVP,
27 DCGU_HW_MODULE_CVE,
28 DCGU_HW_MODULE_VID_ENC,
29
30 DCGU_HW_MODULE_SSI_S,
31 DCGU_HW_MODULE_SSI_M,
32
33 DCGU_HW_MODULE_GA,
34 DCGU_HW_MODULE_DGPU,
35
36 DCGU_HW_MODULE_UART_1,
37 DCGU_HW_MODULE_UART_2,
38
39 DCGU_HW_MODULE_AD,
40 DCGU_HW_MODULE_ABP_DTV,
41 DCGU_HW_MODULE_ABP_SCC,
42 DCGU_HW_MODULE_SPDIF,
43
44 DCGU_HW_MODULE_TSIO,
45 DCGU_HW_MODULE_TSD,
46 DCGU_HW_MODULE_TSD_KEY,
47
48 DCGU_HW_MODULE_USBH,
49 DCGU_HW_MODULE_USB_PLL,
50 DCGU_HW_MODULE_USB_60,
51 DCGU_HW_MODULE_USB_24,
52
53 DCGU_HW_MODULE_PERI,
54 DCGU_HW_MODULE_WDT,
55 DCGU_HW_MODULE_I2C1,
56 DCGU_HW_MODULE_I2C2,
57 DCGU_HW_MODULE_GPIO1,
58 DCGU_HW_MODULE_GPIO2,
59
60 DCGU_HW_MODULE_GPT,
61 DCGU_HW_MODULE_PWM,
62
63 DCGU_HW_MODULE_MPC,
64 DCGU_HW_MODULE_MPC_KEY,
65
66 DCGU_HW_MODULE_COM,
67 DCGU_HW_MODULE_VCTY_CORE,
68 DCGU_HW_MODULE_FWSRAM,
69
70 DCGU_HW_MODULE_EBI,
71 DCGU_HW_MODULE_I2S,
72 DCGU_HW_MODULE_MSMC,
73 DCGU_HW_MODULE_SMC,
74
75 DCGU_HW_MODULE_IRQC,
76 DCGU_HW_MODULE_TOP,
77 DCGU_HW_MODULE_SRAM,
78 DCGU_HW_MODULE_EIC,
79 DCGU_HW_MODULE_CPU,
80 DCGU_HW_MODULE_SCC,
81 DCGU_HW_MODULE_MM,
82 DCGU_HW_MODULE_BCU,
83 DCGU_HW_MODULE_FH,
84 DCGU_HW_MODULE_IMU,
85 DCGU_HW_MODULE_MDU,
86 DCGU_HW_MODULE_SI2OCP
87};
88
89union dcgu_clk_en1 {
90 u32 reg;
91 struct {
92 u32 res1:8;
93 u32 en_clkmsmc:1;
94 u32 en_clkssi_s:1;
95 u32 en_clkssi_m:1;
96 u32 en_clksmc:1;
97 u32 en_clkebi:1;
98 u32 en_usbpll:1;
99 u32 en_clkusb60:1;
100 u32 en_clkusb24:1;
101 u32 en_clkuart2:1;
102 u32 en_clkuart1:1;
103 u32 en_clkperi20:1;
104 u32 res2:3;
105 u32 en_clk_i2s_dly:1;
106 u32 en_clk_scc_abp:1;
107 u32 en_clk_dtv_spdo:1;
108 u32 en_clkad:1;
109 u32 en_clkmvd:1;
110 u32 en_clktsd:1;
111 u32 en_clkga:1;
112 u32 en_clkdvp:1;
113 u32 en_clkmr2:1;
114 u32 en_clkmr1:1;
115 } bits;
116};
117
118union dcgu_clk_en2 {
119 u32 reg;
120 struct {
121 u32 res1:31;
122 u32 en_clkcpu:1;
123 } bits;
124};
125
126union dcgu_reset_unit1 {
127 u32 reg;
128 struct {
129 u32 res1:1;
130 u32 swreset_clkmsmc:1;
131 u32 swreset_clkssi_s:1;
132 u32 swreset_clkssi_m:1;
133 u32 swreset_clksmc:1;
134 u32 swreset_clkebi:1;
135 u32 swreset_clkusb60:1;
136 u32 swreset_clkusb24:1;
137 u32 swreset_clkuart2:1;
138 u32 swreset_clkuart1:1;
139 u32 swreset_pwm:1;
140 u32 swreset_gpt:1;
141 u32 swreset_i2c2:1;
142 u32 swreset_i2c1:1;
143 u32 swreset_gpio2:1;
144 u32 swreset_gpio1:1;
145 u32 swreset_clkcpu:1;
146 u32 res2:2;
147 u32 swreset_clk_i2s_dly:1;
148 u32 swreset_clk_scc_abp:1;
149 u32 swreset_clk_dtv_spdo:1;
150 u32 swreset_clkad:1;
151 u32 swreset_clkmvd:1;
152 u32 swreset_clktsd:1;
153 u32 swreset_clktsio:1;
154 u32 swreset_clkga:1;
155 u32 swreset_clkmpc:1;
156 u32 swreset_clkcve:1;
157 u32 swreset_clkdvp:1;
158 u32 swreset_clkmr2:1;
159 u32 swreset_clkmr1:1;
160 } bits;
161};
162
163int dcgu_set_clk_switch(enum dcgu_hw_module module, enum dcgu_switch setup);
164int dcgu_set_reset_switch(enum dcgu_hw_module module, enum dcgu_switch setup);
165
166#endif
167