xref: /OK3568_Linux_fs/u-boot/arch/arm/include/asm/arch-rockchip/ioc_rv1106.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2  * (C) Copyright 2022 Rockchip Electronics Co., Ltd.
3  *
4  * SPDX-License-Identifier:     GPL-2.0+
5  */
6 #ifndef _ASM_ARCH_IOC_RV1106_H
7 #define _ASM_ARCH_IOC_RV1106_H
8 
9 #include <common.h>
10 
11 struct rv1106_gpio0_ioc {
12 	unsigned int gpio0a_iomux_sel_l;
13 	unsigned int gpio0a_iomux_sel_h;
14 	unsigned int reserved0[(0x0010 - 0x0004) / 4 - 1];
15 	unsigned int gpio0a_ds0;
16 	unsigned int gpio0a_ds1;
17 	unsigned int gpio0a_ds2;
18 	unsigned int gpio0a_ds3;
19 	unsigned int reserved1[(0x0030 - 0x001c) / 4 - 1];
20 	unsigned int gpio0a_ie;
21 	unsigned int reserved2[(0x0038 - 0x0030) / 4 - 1];
22 	unsigned int gpio0a_p;
23 	unsigned int reserved3[(0x0040 - 0x0038) / 4 - 1];
24 	unsigned int gpio0a_sus;
25 	unsigned int reserved4[(0x0048 - 0x0040) / 4 - 1];
26 	unsigned int gpio0a_sl;
27 	unsigned int reserved5[(0x0058 - 0x0048) / 4 - 1];
28 	unsigned int gpio0a_ie_smt;
29 	unsigned int reserved6[(0x0068 - 0x0058) / 4 - 1];
30 	unsigned int gpio0a_od;
31 };
32 check_member(rv1106_gpio0_ioc, gpio0a_od, 0x0068);
33 
34 struct rv1106_gpio1_ioc {
35 	unsigned int gpio1a_iomux_sel_l;
36 	unsigned int gpio1a_iomux_sel_h;
37 	unsigned int gpio1b_iomux_sel_l;
38 	unsigned int reserved0[(0x0010 - 0x0008) / 4 - 1];
39 	unsigned int gpio1c_iomux_sel_l;
40 	unsigned int gpio1c_iomux_sel_h;
41 	unsigned int gpio1d_iomux_sel_l;
42 	unsigned int reserved1[(0x0080 - 0x0018) / 4 - 1];
43 	unsigned int gpio1a_ds0;
44 	unsigned int gpio1a_ds1;
45 	unsigned int gpio1a_ds2;
46 	unsigned int reserved2[(0x0090 - 0x0088) / 4 - 1];
47 	unsigned int gpio1b_ds0;
48 	unsigned int gpio1b_ds1;
49 	unsigned int reserved3[(0x00a0 - 0x0094) / 4 - 1];
50 	unsigned int gpio1c_ds0;
51 	unsigned int gpio1c_ds1;
52 	unsigned int gpio1c_ds2;
53 	unsigned int gpio1c_ds3;
54 	unsigned int gpio1d_ds0;
55 	unsigned int gpio1d_ds1;
56 	unsigned int reserved4[(0x0180 - 0x00b4) / 4 - 1];
57 	unsigned int gpio1a_ie;
58 	unsigned int gpio1b_ie;
59 	unsigned int gpio1c_ie;
60 	unsigned int gpio1d_ie;
61 	unsigned int reserved5[(0x01c0 - 0x018c) / 4 - 1];
62 	unsigned int gpio1a_p;
63 	unsigned int gpio1b_p;
64 	unsigned int gpio1c_p;
65 	unsigned int gpio1d_p;
66 	unsigned int reserved6[(0x0200 - 0x01cc) / 4 - 1];
67 	unsigned int gpio1a_sus;
68 	unsigned int gpio1b_sus;
69 	unsigned int gpio1c_sus;
70 	unsigned int gpio1d_sus;
71 	unsigned int reserved7[(0x0240 - 0x020c) / 4 - 1];
72 	unsigned int gpio1a_sl;
73 	unsigned int gpio1b_sl;
74 	unsigned int gpio1c_sl;
75 	unsigned int gpio1d_sl;
76 	unsigned int reserved8[(0x0280 - 0x024c) / 4 - 1];
77 	unsigned int gpio1a_ie_smt;
78 	unsigned int gpio1b_ie_smt;
79 	unsigned int gpio1c_ie_smt;
80 	unsigned int gpio1d_ie_smt;
81 	unsigned int reserved9[(0x02c0 - 0x028c) / 4 - 1];
82 	unsigned int gpio1a_od;
83 	unsigned int gpio1b_od;
84 	unsigned int gpio1c_od;
85 	unsigned int gpio1d_od;
86 	unsigned int reserved10[(0x02f4 - 0x02cc) / 4 - 1];
87 	unsigned int force_jtag_uart;
88 };
89 check_member(rv1106_gpio1_ioc, force_jtag_uart, 0x02f4);
90 
91 struct rv1106_gpio2_ioc {
92 	unsigned int reserved0[(0x0020 - 0x0000) / 4];
93 	unsigned int gpio2a_iomux_sel_l;
94 	unsigned int gpio2a_iomux_sel_h;
95 	unsigned int gpio2b_iomux_sel_l;
96 	unsigned int reserved1[(0x00c0 - 0x0028) / 4 - 1];
97 	unsigned int gpio2a_ds0;
98 	unsigned int gpio2a_ds1;
99 	unsigned int gpio2a_ds2;
100 	unsigned int gpio2a_ds3;
101 	unsigned int gpio2b_ds0;
102 	unsigned int reserved2[(0x0190 - 0x00d0) / 4 - 1];
103 	unsigned int gpio2a_ie;
104 	unsigned int gpio2b_ie;
105 	unsigned int reserved3[(0x01d0 - 0x0194) / 4 - 1];
106 	unsigned int gpio2a_p;
107 	unsigned int gpio2b_p;
108 	unsigned int reserved4[(0x0210 - 0x01d4) / 4 - 1];
109 	unsigned int gpio2a_sus;
110 	unsigned int gpio2b_sus;
111 	unsigned int reserved5[(0x0250 - 0x0214) / 4 - 1];
112 	unsigned int gpio2a_sl;
113 	unsigned int gpio2b_sl;
114 	unsigned int reserved6[(0x0290 - 0x0254) / 4 - 1];
115 	unsigned int gpio2a_ie_smt;
116 	unsigned int gpio2b_ie_smt;
117 	unsigned int reserved7[(0x02d0 - 0x0294) / 4 - 1];
118 	unsigned int gpio2a_od;
119 	unsigned int gpio2b_od;
120 };
121 check_member(rv1106_gpio2_ioc, gpio2b_od, 0x02d4);
122 
123 struct rv1106_gpio3_ioc {
124 	unsigned int reserved0[(0x0040 - 0x0000) / 4];
125         unsigned int gpio3a_iomux_sel_l;
126 	unsigned int gpio3a_iomux_sel_h;
127 	unsigned int gpio3b_iomux_sel_l;
128 	unsigned int gpio3b_iomux_sel_h;
129 	unsigned int gpio3c_iomux_sel_l;
130 	unsigned int gpio3c_iomux_sel_h;
131 	unsigned int gpio3d_iomux_sel_l;
132 	unsigned int reserved1[(0x0100 - 0x0058) / 4 - 1];
133 	unsigned int gpio3a_ds0;
134 	unsigned int gpio3a_ds1;
135 	unsigned int gpio3a_ds2;
136 	unsigned int gpio3a_ds3;
137 	unsigned int reserved2[(0x0128 - 0x010c) / 4 - 1];
138 	unsigned int gpio3c_ds2;
139 	unsigned int gpio3c_ds3;
140 	unsigned int gpio3d_ds0;
141 	unsigned int gpio3d_ds1;
142 	unsigned int reserved3[(0x01a0 - 0x0134) / 4 - 1];
143 	unsigned int gpio3a_ie;
144 	unsigned int reserved4[(0x01a8 - 0x01a0) / 4 - 1];
145 	unsigned int gpio3c_ie;
146 	unsigned int gpio3d_ie;
147 	unsigned int reserved5[(0x01e0 - 0x01ac) / 4 - 1];
148 	unsigned int gpio3a_p;
149 	unsigned int reserved6[(0x01e8 - 0x01e0) / 4 - 1];
150 	unsigned int gpio3c_p;
151 	unsigned int gpio3d_p;
152 	unsigned int reserved7[(0x0220 - 0x01ec) / 4 - 1];
153 	unsigned int gpio3a_sus;
154 	unsigned int reserved8[(0x0228 - 0x0220) / 4 - 1];
155 	unsigned int gpio3c_sus;
156 	unsigned int gpio3d_sus;
157 	unsigned int reserved9[(0x0260 - 0x022c) / 4 - 1];
158 	unsigned int gpio3a_sl;
159 	unsigned int reserved10[(0x0268 - 0x0260) / 4 - 1];
160 	unsigned int gpio3c_sl;
161 	unsigned int gpio3d_sl;
162 	unsigned int reserved11[(0x02a0 - 0x026c) / 4 - 1];
163 	unsigned int gpio3a_ie_smt;
164 	unsigned int reserved12[(0x02a8 - 0x02a0) / 4 - 1];
165 	unsigned int gpio3c_ie_smt;
166 	unsigned int gpio3d_ie_smt;
167 	unsigned int reserved13[(0x02e0 - 0x02ac) / 4 - 1];
168 	unsigned int gpio3a_od;
169 	unsigned int reserved14[(0x02e8 - 0x02e0) / 4 - 1];
170 	unsigned int gpio3c_od;
171 	unsigned int gpio3d_od;
172 	unsigned int reserved15[(0x02f4 - 0x02ec) / 4 - 1];
173 	unsigned int force_jtag_sdmmc;
174 };
175 check_member(rv1106_gpio3_ioc, force_jtag_sdmmc, 0x02f4);
176 
177 struct rv1106_gpio4_ioc {
178 	unsigned int gpio4a_iomux_sel_l;
179 	unsigned int gpio4a_iomux_sel_h;
180 	unsigned int gpio4b_iomux_sel_l;
181 	unsigned int reserved0[(0x0010 - 0x0008) / 4 - 1];
182 	unsigned int gpio4c_iomux_sel_l;
183 	unsigned int reserved1[(0x0020 - 0x0010) / 4 - 1];
184 	unsigned int gpio4a_ds0;
185 	unsigned int gpio4a_ds1;
186 	unsigned int gpio4a_ds2;
187 	unsigned int gpio4a_ds3;
188 	unsigned int gpio4b_ds0;
189 	unsigned int reserved2[(0x0060 - 0x0030) / 4 - 1];
190 	unsigned int gpio4a_ie;
191 	unsigned int gpio4b_ie;
192 	unsigned int reserved3[(0x0070 - 0x0064) / 4 - 1];
193 	unsigned int gpio4a_p;
194 	unsigned int gpio4b_p;
195 	unsigned int reserved4[(0x0080 - 0x0074) / 4 - 1];
196 	unsigned int gpio4a_sus;
197 	unsigned int gpio4b_sus;
198 	unsigned int reserved5[(0x0090 - 0x0084) / 4 - 1];
199 	unsigned int gpio4a_sl;
200 	unsigned int gpio4b_sl;
201 	unsigned int reserved6[(0x00a0 - 0x0094) / 4 - 1];
202 	unsigned int gpio4a_ie_smt;
203 	unsigned int gpio4b_ie_smt;
204 	unsigned int reserved7[(0x00b0 - 0x00a4) / 4 - 1];
205 	unsigned int gpio4a_od;
206 	unsigned int gpio4b_od;
207 	unsigned int reserved8[(0x00c0 - 0x00b4) / 4 - 1];
208 	unsigned int saradc_io_con;
209 	unsigned int reserved9[(0x0200 - 0x00c0) / 4 - 1];
210 	unsigned int vccio3_vol_con;
211 };
212 check_member(rv1106_gpio4_ioc, vccio3_vol_con, 0x0200);
213 
214 #endif
215