1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * (C) Copyright 2021 Rockchip Electronics Co., Ltd 4 */ 5 6 #ifndef __SOC_ROCKCHIP_RK3568_GRF_H__ 7 #define __SOC_ROCKCHIP_RK3568_GRF_H__ 8 9 struct rk3568_grf { 10 unsigned int gpio1a_iomux_l; 11 unsigned int gpio1a_iomux_h; 12 unsigned int gpio1b_iomux_l; 13 unsigned int gpio1b_iomux_h; 14 unsigned int gpio1c_iomux_l; 15 unsigned int gpio1c_iomux_h; 16 unsigned int gpio1d_iomux_l; 17 unsigned int gpio1d_iomux_h; 18 unsigned int gpio2a_iomux_l; 19 unsigned int gpio2a_iomux_h; 20 unsigned int gpio2b_iomux_l; 21 unsigned int gpio2b_iomux_h; 22 unsigned int gpio2c_iomux_l; 23 unsigned int gpio2c_iomux_h; 24 unsigned int gpio2d_iomux_l; 25 unsigned int gpio2d_iomux_h; 26 unsigned int gpio3a_iomux_l; 27 unsigned int gpio3a_iomux_h; 28 unsigned int gpio3b_iomux_l; 29 unsigned int gpio3b_iomux_h; 30 unsigned int gpio3c_iomux_l; 31 unsigned int gpio3c_iomux_h; 32 unsigned int gpio3d_iomux_l; 33 unsigned int gpio3d_iomux_h; 34 unsigned int gpio4a_iomux_l; 35 unsigned int gpio4a_iomux_h; 36 unsigned int gpio4b_iomux_l; 37 unsigned int gpio4b_iomux_h; 38 unsigned int gpio4c_iomux_l; 39 unsigned int gpio4c_iomux_h; 40 unsigned int gpio4d_iomux_l; 41 unsigned int reserved0[(0x0080 - 0x0078) / 4 - 1]; 42 unsigned int gpio1a_p; 43 unsigned int gpio1b_p; 44 unsigned int gpio1c_p; 45 unsigned int gpio1d_p; 46 unsigned int gpio2a_p; 47 unsigned int gpio2b_p; 48 unsigned int gpio2c_p; 49 unsigned int gpio2d_p; 50 unsigned int gpio3a_p; 51 unsigned int gpio3b_p; 52 unsigned int gpio3c_p; 53 unsigned int gpio3d_p; 54 unsigned int gpio4a_p; 55 unsigned int gpio4b_p; 56 unsigned int gpio4c_p; 57 unsigned int gpio4d_p; 58 unsigned int gpio1a_ie; 59 unsigned int gpio1b_ie; 60 unsigned int gpio1c_ie; 61 unsigned int gpio1d_ie; 62 unsigned int gpio2a_ie; 63 unsigned int gpio2b_ie; 64 unsigned int gpio2c_ie; 65 unsigned int gpio2d_ie; 66 unsigned int gpio3a_ie; 67 unsigned int gpio3b_ie; 68 unsigned int gpio3c_ie; 69 unsigned int gpio3d_ie; 70 unsigned int gpio4a_ie; 71 unsigned int gpio4b_ie; 72 unsigned int gpio4c_ie; 73 unsigned int gpio4d_ie; 74 unsigned int gpio1a_opd; 75 unsigned int gpio1b_opd; 76 unsigned int gpio1c_opd; 77 unsigned int gpio1d_opd; 78 unsigned int gpio2a_opd; 79 unsigned int gpio2b_opd; 80 unsigned int gpio2c_opd; 81 unsigned int gpio2d_opd; 82 unsigned int gpio3a_opd; 83 unsigned int gpio3b_opd; 84 unsigned int gpio3c_opd; 85 unsigned int gpio3d_opd; 86 unsigned int gpio4a_opd; 87 unsigned int gpio4b_opd; 88 unsigned int gpio4c_opd; 89 unsigned int gpio4d_opd; 90 unsigned int gpio1a_sus; 91 unsigned int gpio1b_sus; 92 unsigned int gpio1c_sus; 93 unsigned int gpio1d_sus; 94 unsigned int gpio2a_sus; 95 unsigned int gpio2b_sus; 96 unsigned int gpio2c_sus; 97 unsigned int gpio2d_sus; 98 unsigned int gpio3a_sus; 99 unsigned int gpio3b_sus; 100 unsigned int gpio3c_sus; 101 unsigned int gpio3d_sus; 102 unsigned int gpio4a_sus; 103 unsigned int gpio4b_sus; 104 unsigned int gpio4c_sus; 105 unsigned int gpio4d_sus; 106 unsigned int gpio1a_sl; 107 unsigned int gpio1b_sl; 108 unsigned int gpio1c_sl; 109 unsigned int gpio1d_sl; 110 unsigned int gpio2a_sl; 111 unsigned int gpio2b_sl; 112 unsigned int gpio2c_sl; 113 unsigned int gpio2d_sl; 114 unsigned int gpio3a_sl; 115 unsigned int gpio3b_sl; 116 unsigned int gpio3c_sl; 117 unsigned int gpio3d_sl; 118 unsigned int gpio4a_sl; 119 unsigned int gpio4b_sl; 120 unsigned int gpio4c_sl; 121 unsigned int gpio4d_sl; 122 unsigned int reserved1[(0x0200 - 0x01bc) / 4 - 1]; 123 unsigned int gpio1a_ds_0; 124 unsigned int gpio1a_ds_1; 125 unsigned int gpio1a_ds_2; 126 unsigned int gpio1a_ds_3; 127 unsigned int gpio1b_ds_0; 128 unsigned int gpio1b_ds_1; 129 unsigned int gpio1b_ds_2; 130 unsigned int gpio1b_ds_3; 131 unsigned int gpio1c_ds_0; 132 unsigned int gpio1c_ds_1; 133 unsigned int gpio1c_ds_2; 134 unsigned int gpio1c_ds_3; 135 unsigned int gpio1d_ds_0; 136 unsigned int gpio1d_ds_1; 137 unsigned int gpio1d_ds_2; 138 unsigned int gpio1d_ds_3; 139 unsigned int gpio2a_ds_0; 140 unsigned int gpio2a_ds_1; 141 unsigned int gpio2a_ds_2; 142 unsigned int gpio2a_ds_3; 143 unsigned int gpio2b_ds_0; 144 unsigned int gpio2b_ds_1; 145 unsigned int gpio2b_ds_2; 146 unsigned int gpio2b_ds_3; 147 unsigned int gpio2c_ds_0; 148 unsigned int gpio2c_ds_1; 149 unsigned int gpio2c_ds_2; 150 unsigned int gpio2c_ds_3; 151 unsigned int gpio2d_ds_0; 152 unsigned int gpio2d_ds_1; 153 unsigned int gpio2d_ds_2; 154 unsigned int gpio2d_ds_3; 155 unsigned int gpio3a_ds_0; 156 unsigned int gpio3a_ds_1; 157 unsigned int gpio3a_ds_2; 158 unsigned int gpio3a_ds_3; 159 unsigned int gpio3b_ds_0; 160 unsigned int gpio3b_ds_1; 161 unsigned int gpio3b_ds_2; 162 unsigned int gpio3b_ds_3; 163 unsigned int gpio3c_ds_0; 164 unsigned int gpio3c_ds_1; 165 unsigned int gpio3c_ds_2; 166 unsigned int gpio3c_ds_3; 167 unsigned int gpio3d_ds_0; 168 unsigned int gpio3d_ds_1; 169 unsigned int gpio3d_ds_2; 170 unsigned int gpio3d_ds_3; 171 unsigned int gpio4a_ds_0; 172 unsigned int gpio4a_ds_1; 173 unsigned int gpio4a_ds_2; 174 unsigned int gpio4a_ds_3; 175 unsigned int gpio4b_ds_0; 176 unsigned int gpio4b_ds_1; 177 unsigned int gpio4b_ds_2; 178 unsigned int gpio4b_ds_3; 179 unsigned int gpio4c_ds_0; 180 unsigned int gpio4c_ds_1; 181 unsigned int gpio4c_ds_2; 182 unsigned int gpio4c_ds_3; 183 unsigned int gpio4d_ds_0; 184 unsigned int gpio4d_ds_1; 185 unsigned int gpio4d_ds_2; 186 unsigned int gpio4d_ds_3; 187 unsigned int iofunc_sel0; 188 unsigned int iofunc_sel1; 189 unsigned int iofunc_sel2; 190 unsigned int iofunc_sel3; 191 unsigned int iofunc_sel4; 192 unsigned int iofunc_sel5; 193 unsigned int reserved2[(0x0340 - 0x0314) / 4 - 1]; 194 unsigned int vi_con0; 195 unsigned int vi_con1; 196 unsigned int vi_status0; 197 unsigned int reserved3[(0x0360 - 0x0348) / 4 - 1]; 198 unsigned int vo_con0; 199 unsigned int vo_con1; 200 unsigned int vo_con2; 201 unsigned int vo_con3; 202 unsigned int reserved4[(0x0380 - 0x036c) / 4 - 1]; 203 unsigned int mac0_con0; 204 unsigned int mac0_con1; 205 unsigned int mac1_con0; 206 unsigned int mac1_con1; 207 unsigned int reserved5[(0x03a0 - 0x038c) / 4 - 1]; 208 unsigned int biu_con0; 209 unsigned int biu_con1; 210 unsigned int biu_con2; 211 unsigned int reserved6[(0x03c0 - 0x03a8) / 4 - 1]; 212 unsigned int gic_con0; 213 unsigned int gic_con1; 214 unsigned int gic_con2; 215 unsigned int reserved7[(0x03f0 - 0x03c8) / 4 - 1]; 216 unsigned int gpu_con0; 217 unsigned int gpu_con1; 218 unsigned int reserved8[(0x0400 - 0x03f4) / 4 - 1]; 219 unsigned int cpu_con0; 220 unsigned int reserved9[(0x0420 - 0x0400) / 4 - 1]; 221 unsigned int cpu_status0; 222 unsigned int reserved10[(0x0500 - 0x0420) / 4 - 1]; 223 unsigned int soc_con0; 224 unsigned int soc_con1; 225 unsigned int soc_con2; 226 unsigned int soc_con3; 227 unsigned int reserved11[(0x0514 - 0x050c) / 4 - 1]; 228 unsigned int soc_con5; 229 unsigned int soc_con6; 230 unsigned int reserved12[(0x0580 - 0x0518) / 4 - 1]; 231 unsigned int soc_status0; 232 unsigned int reserved13[(0x05c0 - 0x0580) / 4 - 1]; 233 unsigned int ram_con; 234 unsigned int core_ram_con; 235 unsigned int reserved14[(0x0600 - 0x05c4) / 4 - 1]; 236 unsigned int tsadc_con; 237 unsigned int reserved15[(0x0610 - 0x0600) / 4 - 1]; 238 unsigned int saradc_con; 239 unsigned int reserved16[(0x0700 - 0x0610) / 4 - 1]; 240 unsigned int gpupvtpll_con0; 241 unsigned int gpupvtpll_con1; 242 unsigned int gpupvtpll_con2; 243 unsigned int gpupvtpll_con3; 244 unsigned int reserved17[(0x0740 - 0x070c) / 4 - 1]; 245 unsigned int npupvtpll_con0; 246 unsigned int npupvtpll_con1; 247 unsigned int npupvtpll_con2; 248 unsigned int npupvtpll_con3; 249 unsigned int reserved18[(0x0800 - 0x074c) / 4 - 1]; 250 unsigned int chip_id; 251 unsigned int reserved19[(0x0840 - 0x0800) / 4 - 1]; 252 unsigned int gpio1c5_ds; 253 unsigned int gpio2a2_ds; 254 unsigned int gpio2b0_ds; 255 unsigned int gpio3a0_ds; 256 unsigned int gpio3a6_ds; 257 unsigned int gpio4a0_ds; 258 unsigned int reserved20[(0x0900 - 0x0854) / 4 - 1]; 259 unsigned int dmac0_con0; 260 unsigned int dmac0_con1; 261 unsigned int dmac0_con2; 262 unsigned int dmac0_con3; 263 unsigned int dmac0_con4; 264 unsigned int dmac0_con5; 265 unsigned int dmac0_con6; 266 unsigned int dmac0_con7; 267 unsigned int dmac0_con8; 268 unsigned int dmac0_con9; 269 unsigned int reserved21[(0x0940 - 0x0924) / 4 - 1]; 270 unsigned int dmac1_con0; 271 unsigned int dmac1_con1; 272 unsigned int dmac1_con2; 273 unsigned int dmac1_con3; 274 unsigned int dmac1_con4; 275 unsigned int dmac1_con5; 276 unsigned int dmac1_con6; 277 unsigned int dmac1_con7; 278 unsigned int dmac1_con8; 279 unsigned int dmac1_con9; 280 }; 281 282 check_member(rk3568_grf, dmac1_con9, 0x0964); 283 284 struct rk3568_pmugrf { 285 unsigned int pmu_gpio0a_iomux_l; 286 unsigned int pmu_gpio0a_iomux_h; 287 unsigned int pmu_gpio0b_iomux_l; 288 unsigned int pmu_gpio0b_iomux_h; 289 unsigned int pmu_gpio0c_iomux_l; 290 unsigned int pmu_gpio0c_iomux_h; 291 unsigned int pmu_gpio0d_iomux_l; 292 unsigned int reserved0[(0x0020 - 0x0018) / 4 - 1]; 293 unsigned int pmu_gpio0a_p; 294 unsigned int pmu_gpio0b_p; 295 unsigned int pmu_gpio0c_p; 296 unsigned int pmu_gpio0d_p; 297 unsigned int pmu_gpio0a_ie; 298 unsigned int pmu_gpio0b_ie; 299 unsigned int pmu_gpio0c_ie; 300 unsigned int pmu_gpio0d_ie; 301 unsigned int pmu_gpio0a_opd; 302 unsigned int pmu_gpio0b_opd; 303 unsigned int pmu_gpio0c_opd; 304 unsigned int pmu_gpio0d_opd; 305 unsigned int pmu_gpio0a_sus; 306 unsigned int pmu_gpio0b_sus; 307 unsigned int pmu_gpio0c_sus; 308 unsigned int pmu_gpio0d_sus; 309 unsigned int pmu_gpio0a_sl; 310 unsigned int pmu_gpio0b_sl; 311 unsigned int pmu_gpio0c_sl; 312 unsigned int pmu_gpio0d_sl; 313 unsigned int pmu_gpio0a_ds_0; 314 unsigned int pmu_gpio0a_ds_1; 315 unsigned int pmu_gpio0a_ds_2; 316 unsigned int pmu_gpio0a_ds_3; 317 unsigned int pmu_gpio0b_ds_0; 318 unsigned int pmu_gpio0b_ds_1; 319 unsigned int pmu_gpio0b_ds_2; 320 unsigned int pmu_gpio0b_ds_3; 321 unsigned int pmu_gpio0c_ds_0; 322 unsigned int pmu_gpio0c_ds_1; 323 unsigned int pmu_gpio0c_ds_2; 324 unsigned int pmu_gpio0c_ds_3; 325 unsigned int pmu_gpio0d_ds_0; 326 unsigned int pmu_gpio0d_ds_1; 327 unsigned int pmu_gpio0d_ds_2; 328 unsigned int pmu_gpio0d_ds_3; 329 unsigned int reserved1[(0x0100 - 0x00ac) / 4 - 1]; 330 unsigned int pmu_soc_con0; 331 unsigned int pmu_soc_con1; 332 unsigned int pmu_soc_con2; 333 unsigned int pmu_soc_con3; 334 unsigned int pmu_soc_con4; 335 unsigned int pmu_soc_con5; 336 unsigned int reserved2[(0x0124 - 0x0114) / 4 - 1]; 337 unsigned int pmu_io_vsel0; 338 unsigned int pmu_io_vsel1; 339 unsigned int pmu_io_vsel2; 340 unsigned int reserved3[(0x0180 - 0x012c) / 4 - 1]; 341 unsigned int pmu_dll_con0; 342 unsigned int reserved4[(0x0200 - 0x0180) / 4 - 1]; 343 unsigned int pmu_os_reg0; 344 unsigned int pmu_os_reg1; 345 unsigned int pmu_os_reg2; 346 unsigned int pmu_os_reg3; 347 unsigned int pmu_os_reg4; 348 unsigned int pmu_os_reg5; 349 unsigned int pmu_os_reg6; 350 unsigned int pmu_os_reg7; 351 unsigned int pmu_os_reg8; 352 unsigned int pmu_os_reg9; 353 unsigned int pmu_os_reg10; 354 unsigned int pmu_os_reg11; 355 unsigned int pmu_reset_function_status; 356 unsigned int pmu_reset_function_clr; 357 unsigned int reserved5[(0x0380 - 0x0234) / 4 - 1]; 358 unsigned int pmu_sig_detect_con; 359 unsigned int reserved6[(0x0390 - 0x0380) / 4 - 1]; 360 unsigned int pmu_sig_detect_status; 361 unsigned int reserved7[(0x03a0 - 0x0390) / 4 - 1]; 362 unsigned int pmu_sig_detect_status_clear; 363 unsigned int reserved8[(0x03b0 - 0x03a0) / 4 - 1]; 364 unsigned int pmu_sdmmc_det_counter; 365 }; 366 367 check_member(rk3568_pmugrf, pmu_sdmmc_det_counter, 0x03b0); 368 369 #endif 370