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