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