1*4e72b326SXuhui Lin /* 2*4e72b326SXuhui Lin * (C) Copyright 2025 Rockchip Electronics Co., Ltd. 3*4e72b326SXuhui Lin * 4*4e72b326SXuhui Lin * SPDX-License-Identifier: GPL-2.0+ 5*4e72b326SXuhui Lin */ 6*4e72b326SXuhui Lin #ifndef _ASM_ARCH_IOC_RV1126B_H 7*4e72b326SXuhui Lin #define _ASM_ARCH_IOC_RV1126B_H 8*4e72b326SXuhui Lin 9*4e72b326SXuhui Lin #include <common.h> 10*4e72b326SXuhui Lin 11*4e72b326SXuhui Lin /* pmuio0_ioc register structure define */ 12*4e72b326SXuhui Lin struct rv1126b_pmuio0_ioc_reg { 13*4e72b326SXuhui Lin uint32_t gpio0a_iomux_sel_0; /* address offset: 0x0000 */ 14*4e72b326SXuhui Lin uint32_t gpio0a_iomux_sel_1; /* address offset: 0x0004 */ 15*4e72b326SXuhui Lin uint32_t gpio0b_iomux_sel_0; /* address offset: 0x0008 */ 16*4e72b326SXuhui Lin uint32_t gpio0b_iomux_sel_1; /* address offset: 0x000c */ 17*4e72b326SXuhui Lin uint32_t reserved0010[60]; /* address offset: 0x0010 */ 18*4e72b326SXuhui Lin uint32_t gpio0a_ds_0; /* address offset: 0x0100 */ 19*4e72b326SXuhui Lin uint32_t gpio0a_ds_1; /* address offset: 0x0104 */ 20*4e72b326SXuhui Lin uint32_t gpio0a_ds_2; /* address offset: 0x0108 */ 21*4e72b326SXuhui Lin uint32_t gpio0a_ds_3; /* address offset: 0x010c */ 22*4e72b326SXuhui Lin uint32_t gpio0b_ds_0; /* address offset: 0x0110 */ 23*4e72b326SXuhui Lin uint32_t gpio0b_ds_1; /* address offset: 0x0114 */ 24*4e72b326SXuhui Lin uint32_t gpio0b_ds_2; /* address offset: 0x0118 */ 25*4e72b326SXuhui Lin uint32_t reserved011c[121]; /* address offset: 0x011c */ 26*4e72b326SXuhui Lin uint32_t gpio0a_pull; /* address offset: 0x0300 */ 27*4e72b326SXuhui Lin uint32_t gpio0b_pull; /* address offset: 0x0304 */ 28*4e72b326SXuhui Lin uint32_t reserved0308[62]; /* address offset: 0x0308 */ 29*4e72b326SXuhui Lin uint32_t gpio0a_ie; /* address offset: 0x0400 */ 30*4e72b326SXuhui Lin uint32_t gpio0b_ie; /* address offset: 0x0404 */ 31*4e72b326SXuhui Lin uint32_t reserved0408[62]; /* address offset: 0x0408 */ 32*4e72b326SXuhui Lin uint32_t gpio0a_smt; /* address offset: 0x0500 */ 33*4e72b326SXuhui Lin uint32_t gpio0b_smt; /* address offset: 0x0504 */ 34*4e72b326SXuhui Lin uint32_t reserved0508[62]; /* address offset: 0x0508 */ 35*4e72b326SXuhui Lin uint32_t gpio0a_sus; /* address offset: 0x0600 */ 36*4e72b326SXuhui Lin uint32_t gpio0b_sus; /* address offset: 0x0604 */ 37*4e72b326SXuhui Lin uint32_t reserved0608[62]; /* address offset: 0x0608 */ 38*4e72b326SXuhui Lin uint32_t gpio0a_sl; /* address offset: 0x0700 */ 39*4e72b326SXuhui Lin uint32_t gpio0b_sl; /* address offset: 0x0704 */ 40*4e72b326SXuhui Lin uint32_t reserved0708[62]; /* address offset: 0x0708 */ 41*4e72b326SXuhui Lin uint32_t gpio0a_od; /* address offset: 0x0800 */ 42*4e72b326SXuhui Lin uint32_t gpio0b_od; /* address offset: 0x0804 */ 43*4e72b326SXuhui Lin uint32_t reserved0808[62]; /* address offset: 0x0808 */ 44*4e72b326SXuhui Lin uint32_t io_vsel; /* address offset: 0x0900 */ 45*4e72b326SXuhui Lin uint32_t grf_jtag_con0; /* address offset: 0x0904 */ 46*4e72b326SXuhui Lin uint32_t grf_jtag_con1; /* address offset: 0x0908 */ 47*4e72b326SXuhui Lin uint32_t reserved090c; /* address offset: 0x090c */ 48*4e72b326SXuhui Lin uint32_t xin_con; /* address offset: 0x0910 */ 49*4e72b326SXuhui Lin uint32_t reserved0914[187]; /* address offset: 0x0914 */ 50*4e72b326SXuhui Lin uint32_t grf_gpio0_filter_con0; /* address offset: 0x0c00 */ 51*4e72b326SXuhui Lin uint32_t grf_gpio0_filter_con1; /* address offset: 0x0c04 */ 52*4e72b326SXuhui Lin uint32_t grf_gpio0_filter_con2; /* address offset: 0x0c08 */ 53*4e72b326SXuhui Lin uint32_t grf_gpio0_filter_con3; /* address offset: 0x0c0c */ 54*4e72b326SXuhui Lin uint32_t grf_gpio0_filter_con4; /* address offset: 0x0c10 */ 55*4e72b326SXuhui Lin uint32_t grf_gpio0_filter_con5; /* address offset: 0x0c14 */ 56*4e72b326SXuhui Lin }; 57*4e72b326SXuhui Lin 58*4e72b326SXuhui Lin check_member(rv1126b_pmuio0_ioc_reg, grf_gpio0_filter_con5, 0x0c14); 59*4e72b326SXuhui Lin 60*4e72b326SXuhui Lin /* pmuio1_ioc register structure define */ 61*4e72b326SXuhui Lin struct rv1126b_pmuio1_ioc_reg { 62*4e72b326SXuhui Lin uint32_t reserved0000[4]; /* address offset: 0x0000 */ 63*4e72b326SXuhui Lin uint32_t gpio0c_iomux_sel_0; /* address offset: 0x0010 */ 64*4e72b326SXuhui Lin uint32_t gpio0c_iomux_sel_1; /* address offset: 0x0014 */ 65*4e72b326SXuhui Lin uint32_t gpio0d_iomux_sel_0; /* address offset: 0x0018 */ 66*4e72b326SXuhui Lin uint32_t reserved001c[65]; /* address offset: 0x001c */ 67*4e72b326SXuhui Lin uint32_t gpio0c_ds_0; /* address offset: 0x0120 */ 68*4e72b326SXuhui Lin uint32_t gpio0c_ds_1; /* address offset: 0x0124 */ 69*4e72b326SXuhui Lin uint32_t gpio0c_ds_2; /* address offset: 0x0128 */ 70*4e72b326SXuhui Lin uint32_t gpio0c_ds_3; /* address offset: 0x012c */ 71*4e72b326SXuhui Lin uint32_t gpio0d_ds_0; /* address offset: 0x0130 */ 72*4e72b326SXuhui Lin uint32_t reserved0134[117]; /* address offset: 0x0134 */ 73*4e72b326SXuhui Lin uint32_t gpio0c_pull; /* address offset: 0x0308 */ 74*4e72b326SXuhui Lin uint32_t gpio0d_pull; /* address offset: 0x030c */ 75*4e72b326SXuhui Lin uint32_t reserved0310[62]; /* address offset: 0x0310 */ 76*4e72b326SXuhui Lin uint32_t gpio0c_ie; /* address offset: 0x0408 */ 77*4e72b326SXuhui Lin uint32_t gpio0d_ie; /* address offset: 0x040c */ 78*4e72b326SXuhui Lin uint32_t reserved0410[62]; /* address offset: 0x0410 */ 79*4e72b326SXuhui Lin uint32_t gpio0c_smt; /* address offset: 0x0508 */ 80*4e72b326SXuhui Lin uint32_t gpio0d_smt; /* address offset: 0x050c */ 81*4e72b326SXuhui Lin uint32_t reserved0510[62]; /* address offset: 0x0510 */ 82*4e72b326SXuhui Lin uint32_t gpio0c_sus; /* address offset: 0x0608 */ 83*4e72b326SXuhui Lin uint32_t gpio0d_sus; /* address offset: 0x060c */ 84*4e72b326SXuhui Lin uint32_t reserved0610[62]; /* address offset: 0x0610 */ 85*4e72b326SXuhui Lin uint32_t gpio0c_sl; /* address offset: 0x0708 */ 86*4e72b326SXuhui Lin uint32_t gpio0d_sl; /* address offset: 0x070c */ 87*4e72b326SXuhui Lin uint32_t reserved0710[62]; /* address offset: 0x0710 */ 88*4e72b326SXuhui Lin uint32_t gpio0c_od; /* address offset: 0x0808 */ 89*4e72b326SXuhui Lin uint32_t gpio0d_od; /* address offset: 0x080c */ 90*4e72b326SXuhui Lin uint32_t reserved0810[60]; /* address offset: 0x0810 */ 91*4e72b326SXuhui Lin uint32_t io_vsel; /* address offset: 0x0900 */ 92*4e72b326SXuhui Lin }; 93*4e72b326SXuhui Lin 94*4e72b326SXuhui Lin check_member(rv1126b_pmuio1_ioc_reg, io_vsel, 0x0900); 95*4e72b326SXuhui Lin 96*4e72b326SXuhui Lin /* vccio1_ioc register structure define */ 97*4e72b326SXuhui Lin struct rv1126b_vccio1_ioc_reg { 98*4e72b326SXuhui Lin uint32_t reserved0000[8]; /* address offset: 0x0000 */ 99*4e72b326SXuhui Lin uint32_t gpio1a_iomux_sel_0; /* address offset: 0x0020 */ 100*4e72b326SXuhui Lin uint32_t gpio1a_iomux_sel_1; /* address offset: 0x0024 */ 101*4e72b326SXuhui Lin uint32_t gpio1b_iomux_sel_0; /* address offset: 0x0028 */ 102*4e72b326SXuhui Lin uint32_t gpio1b_iomux_sel_1; /* address offset: 0x002c */ 103*4e72b326SXuhui Lin uint32_t reserved0030[68]; /* address offset: 0x0030 */ 104*4e72b326SXuhui Lin uint32_t gpio1a_ds_0; /* address offset: 0x0140 */ 105*4e72b326SXuhui Lin uint32_t gpio1a_ds_1; /* address offset: 0x0144 */ 106*4e72b326SXuhui Lin uint32_t gpio1a_ds_2; /* address offset: 0x0148 */ 107*4e72b326SXuhui Lin uint32_t gpio1a_ds_3; /* address offset: 0x014c */ 108*4e72b326SXuhui Lin uint32_t gpio1b_ds_0; /* address offset: 0x0150 */ 109*4e72b326SXuhui Lin uint32_t gpio1b_ds_1; /* address offset: 0x0154 */ 110*4e72b326SXuhui Lin uint32_t gpio1b_ds_2; /* address offset: 0x0158 */ 111*4e72b326SXuhui Lin uint32_t gpio1b_ds_3; /* address offset: 0x015c */ 112*4e72b326SXuhui Lin uint32_t reserved0160[108]; /* address offset: 0x0160 */ 113*4e72b326SXuhui Lin uint32_t gpio1a_pull; /* address offset: 0x0310 */ 114*4e72b326SXuhui Lin uint32_t gpio1b_pull; /* address offset: 0x0314 */ 115*4e72b326SXuhui Lin uint32_t reserved0318[62]; /* address offset: 0x0318 */ 116*4e72b326SXuhui Lin uint32_t gpio1a_ie; /* address offset: 0x0410 */ 117*4e72b326SXuhui Lin uint32_t gpio1b_ie; /* address offset: 0x0414 */ 118*4e72b326SXuhui Lin uint32_t reserved0418[62]; /* address offset: 0x0418 */ 119*4e72b326SXuhui Lin uint32_t gpio1a_smt; /* address offset: 0x0510 */ 120*4e72b326SXuhui Lin uint32_t gpio1b_smt; /* address offset: 0x0514 */ 121*4e72b326SXuhui Lin uint32_t reserved0518[62]; /* address offset: 0x0518 */ 122*4e72b326SXuhui Lin uint32_t gpio1a_sus; /* address offset: 0x0610 */ 123*4e72b326SXuhui Lin uint32_t gpio1b_sus; /* address offset: 0x0614 */ 124*4e72b326SXuhui Lin uint32_t reserved0618[62]; /* address offset: 0x0618 */ 125*4e72b326SXuhui Lin uint32_t gpio1a_sl; /* address offset: 0x0710 */ 126*4e72b326SXuhui Lin uint32_t gpio1b_sl; /* address offset: 0x0714 */ 127*4e72b326SXuhui Lin uint32_t reserved0718[62]; /* address offset: 0x0718 */ 128*4e72b326SXuhui Lin uint32_t gpio1a_od; /* address offset: 0x0810 */ 129*4e72b326SXuhui Lin uint32_t gpio1b_od; /* address offset: 0x0814 */ 130*4e72b326SXuhui Lin uint32_t reserved0818[60]; /* address offset: 0x0818 */ 131*4e72b326SXuhui Lin uint32_t io1_vsel; /* address offset: 0x0908 */ 132*4e72b326SXuhui Lin uint32_t reserved090c[61]; /* address offset: 0x090c */ 133*4e72b326SXuhui Lin uint32_t ioc_misc_con0; /* address offset: 0x0a00 */ 134*4e72b326SXuhui Lin uint32_t ioc_misc_con1; /* address offset: 0x0a04 */ 135*4e72b326SXuhui Lin uint32_t ioc_misc_con2; /* address offset: 0x0a08 */ 136*4e72b326SXuhui Lin uint32_t ioc_misc_con3; /* address offset: 0x0a0c */ 137*4e72b326SXuhui Lin uint32_t ioc_misc_con4; /* address offset: 0x0a10 */ 138*4e72b326SXuhui Lin uint32_t ioc_misc_con5; /* address offset: 0x0a14 */ 139*4e72b326SXuhui Lin uint32_t ioc_misc_con6; /* address offset: 0x0a18 */ 140*4e72b326SXuhui Lin }; 141*4e72b326SXuhui Lin 142*4e72b326SXuhui Lin check_member(rv1126b_vccio1_ioc_reg, ioc_misc_con6, 0x0a18); 143*4e72b326SXuhui Lin 144*4e72b326SXuhui Lin /* vccio2_ioc register structure define */ 145*4e72b326SXuhui Lin struct rv1126b_vccio2_ioc_reg { 146*4e72b326SXuhui Lin uint32_t reserved0000[16]; /* address offset: 0x0000 */ 147*4e72b326SXuhui Lin uint32_t gpio2a_iomux_sel_0; /* address offset: 0x0040 */ 148*4e72b326SXuhui Lin uint32_t gpio2a_iomux_sel_1; /* address offset: 0x0044 */ 149*4e72b326SXuhui Lin uint32_t reserved0048[78]; /* address offset: 0x0048 */ 150*4e72b326SXuhui Lin uint32_t gpio2a_ds_0; /* address offset: 0x0180 */ 151*4e72b326SXuhui Lin uint32_t gpio2a_ds_1; /* address offset: 0x0184 */ 152*4e72b326SXuhui Lin uint32_t gpio2a_ds_2; /* address offset: 0x0188 */ 153*4e72b326SXuhui Lin uint32_t reserved018c[101]; /* address offset: 0x018c */ 154*4e72b326SXuhui Lin uint32_t gpio2a_pull; /* address offset: 0x0320 */ 155*4e72b326SXuhui Lin uint32_t reserved0324[63]; /* address offset: 0x0324 */ 156*4e72b326SXuhui Lin uint32_t gpio2a_ie; /* address offset: 0x0420 */ 157*4e72b326SXuhui Lin uint32_t reserved0424[63]; /* address offset: 0x0424 */ 158*4e72b326SXuhui Lin uint32_t gpio2a_smt; /* address offset: 0x0520 */ 159*4e72b326SXuhui Lin uint32_t reserved0524[63]; /* address offset: 0x0524 */ 160*4e72b326SXuhui Lin uint32_t gpio2a_sus; /* address offset: 0x0620 */ 161*4e72b326SXuhui Lin uint32_t reserved0624[63]; /* address offset: 0x0624 */ 162*4e72b326SXuhui Lin uint32_t gpio2a_sl; /* address offset: 0x0720 */ 163*4e72b326SXuhui Lin uint32_t reserved0724[63]; /* address offset: 0x0724 */ 164*4e72b326SXuhui Lin uint32_t gpio2a_od; /* address offset: 0x0820 */ 165*4e72b326SXuhui Lin uint32_t reserved0824[58]; /* address offset: 0x0824 */ 166*4e72b326SXuhui Lin uint32_t io_vsel; /* address offset: 0x090c */ 167*4e72b326SXuhui Lin uint32_t reserved0910[159]; /* address offset: 0x0910 */ 168*4e72b326SXuhui Lin uint32_t grf_sddet_dly_con; /* address offset: 0x0b8c */ 169*4e72b326SXuhui Lin uint32_t grf_jtag_con; /* address offset: 0x0b90 */ 170*4e72b326SXuhui Lin uint32_t reserved0b94[27]; /* address offset: 0x0b94 */ 171*4e72b326SXuhui Lin uint32_t grf_gpio2_filter_con0; /* address offset: 0x0c00 */ 172*4e72b326SXuhui Lin uint32_t grf_gpio2_filter_con1; /* address offset: 0x0c04 */ 173*4e72b326SXuhui Lin uint32_t grf_gpio2_filter_con2; /* address offset: 0x0c08 */ 174*4e72b326SXuhui Lin uint32_t grf_gpio2_filter_con3; /* address offset: 0x0c0c */ 175*4e72b326SXuhui Lin uint32_t grf_gpio2_filter_con4; /* address offset: 0x0c10 */ 176*4e72b326SXuhui Lin uint32_t grf_gpio2_filter_con5; /* address offset: 0x0c14 */ 177*4e72b326SXuhui Lin }; 178*4e72b326SXuhui Lin 179*4e72b326SXuhui Lin check_member(rv1126b_vccio2_ioc_reg, grf_gpio2_filter_con5, 0x0c14); 180*4e72b326SXuhui Lin 181*4e72b326SXuhui Lin /* vccio3_ioc register structure define */ 182*4e72b326SXuhui Lin struct rv1126b_vccio3_ioc_reg { 183*4e72b326SXuhui Lin uint32_t reserved0000[24]; /* address offset: 0x0000 */ 184*4e72b326SXuhui Lin uint32_t gpio3a_iomux_sel_0; /* address offset: 0x0060 */ 185*4e72b326SXuhui Lin uint32_t gpio3a_iomux_sel_1; /* address offset: 0x0064 */ 186*4e72b326SXuhui Lin uint32_t gpio3b_iomux_sel_0; /* address offset: 0x0068 */ 187*4e72b326SXuhui Lin uint32_t gpio3b_iomux_sel_1; /* address offset: 0x006c */ 188*4e72b326SXuhui Lin uint32_t reserved0070[84]; /* address offset: 0x0070 */ 189*4e72b326SXuhui Lin uint32_t gpio3a_ds_0; /* address offset: 0x01c0 */ 190*4e72b326SXuhui Lin uint32_t gpio3a_ds_1; /* address offset: 0x01c4 */ 191*4e72b326SXuhui Lin uint32_t gpio3a_ds_2; /* address offset: 0x01c8 */ 192*4e72b326SXuhui Lin uint32_t gpio3a_ds_3; /* address offset: 0x01cc */ 193*4e72b326SXuhui Lin uint32_t gpio3b_ds_0; /* address offset: 0x01d0 */ 194*4e72b326SXuhui Lin uint32_t gpio3b_ds_1; /* address offset: 0x01d4 */ 195*4e72b326SXuhui Lin uint32_t gpio3b_ds_2; /* address offset: 0x01d8 */ 196*4e72b326SXuhui Lin uint32_t gpio3b_ds_3; /* address offset: 0x01dc */ 197*4e72b326SXuhui Lin uint32_t reserved01e0[84]; /* address offset: 0x01e0 */ 198*4e72b326SXuhui Lin uint32_t gpio3a_pull; /* address offset: 0x0330 */ 199*4e72b326SXuhui Lin uint32_t gpio3b_pull; /* address offset: 0x0334 */ 200*4e72b326SXuhui Lin uint32_t reserved0338[62]; /* address offset: 0x0338 */ 201*4e72b326SXuhui Lin uint32_t gpio3a_ie; /* address offset: 0x0430 */ 202*4e72b326SXuhui Lin uint32_t gpio3b_ie; /* address offset: 0x0434 */ 203*4e72b326SXuhui Lin uint32_t reserved0438[62]; /* address offset: 0x0438 */ 204*4e72b326SXuhui Lin uint32_t gpio3a_smt; /* address offset: 0x0530 */ 205*4e72b326SXuhui Lin uint32_t gpio3b_smt; /* address offset: 0x0534 */ 206*4e72b326SXuhui Lin uint32_t reserved0538[62]; /* address offset: 0x0538 */ 207*4e72b326SXuhui Lin uint32_t gpio3a_sus; /* address offset: 0x0630 */ 208*4e72b326SXuhui Lin uint32_t gpio3b_sus; /* address offset: 0x0634 */ 209*4e72b326SXuhui Lin uint32_t reserved0638[62]; /* address offset: 0x0638 */ 210*4e72b326SXuhui Lin uint32_t gpio3a_sl; /* address offset: 0x0730 */ 211*4e72b326SXuhui Lin uint32_t gpio3b_sl; /* address offset: 0x0734 */ 212*4e72b326SXuhui Lin uint32_t reserved0738[62]; /* address offset: 0x0738 */ 213*4e72b326SXuhui Lin uint32_t gpio3a_od; /* address offset: 0x0830 */ 214*4e72b326SXuhui Lin uint32_t gpio3b_od; /* address offset: 0x0834 */ 215*4e72b326SXuhui Lin uint32_t reserved0838[54]; /* address offset: 0x0838 */ 216*4e72b326SXuhui Lin uint32_t io3_vsel; /* address offset: 0x0910 */ 217*4e72b326SXuhui Lin uint32_t reserved0914[59]; /* address offset: 0x0914 */ 218*4e72b326SXuhui Lin uint32_t ioc_misc_con0; /* address offset: 0x0a00 */ 219*4e72b326SXuhui Lin uint32_t ioc_misc_con1; /* address offset: 0x0a04 */ 220*4e72b326SXuhui Lin uint32_t ioc_misc_con2; /* address offset: 0x0a08 */ 221*4e72b326SXuhui Lin uint32_t ioc_misc_con3; /* address offset: 0x0a0c */ 222*4e72b326SXuhui Lin uint32_t ioc_misc_con4; /* address offset: 0x0a10 */ 223*4e72b326SXuhui Lin uint32_t ioc_misc_con5; /* address offset: 0x0a14 */ 224*4e72b326SXuhui Lin uint32_t ioc_misc_con6; /* address offset: 0x0a18 */ 225*4e72b326SXuhui Lin }; 226*4e72b326SXuhui Lin 227*4e72b326SXuhui Lin check_member(rv1126b_vccio3_ioc_reg, ioc_misc_con6, 0x0a18); 228*4e72b326SXuhui Lin 229*4e72b326SXuhui Lin /* vccio4_ioc register structure define */ 230*4e72b326SXuhui Lin struct rv1126b_vccio4_ioc_reg { 231*4e72b326SXuhui Lin uint32_t reserved0000[32]; /* address offset: 0x0000 */ 232*4e72b326SXuhui Lin uint32_t gpio4a_iomux_sel_0; /* address offset: 0x0080 */ 233*4e72b326SXuhui Lin uint32_t gpio4a_iomux_sel_1; /* address offset: 0x0084 */ 234*4e72b326SXuhui Lin uint32_t gpio4b_iomux_sel_0; /* address offset: 0x0088 */ 235*4e72b326SXuhui Lin uint32_t reserved008c[93]; /* address offset: 0x008c */ 236*4e72b326SXuhui Lin uint32_t gpio4a_ds_0; /* address offset: 0x0200 */ 237*4e72b326SXuhui Lin uint32_t gpio4a_ds_1; /* address offset: 0x0204 */ 238*4e72b326SXuhui Lin uint32_t gpio4a_ds_2; /* address offset: 0x0208 */ 239*4e72b326SXuhui Lin uint32_t gpio4a_ds_3; /* address offset: 0x020c */ 240*4e72b326SXuhui Lin uint32_t gpio4b_ds_0; /* address offset: 0x0210 */ 241*4e72b326SXuhui Lin uint32_t reserved0214[75]; /* address offset: 0x0214 */ 242*4e72b326SXuhui Lin uint32_t gpio4a_pull; /* address offset: 0x0340 */ 243*4e72b326SXuhui Lin uint32_t gpio4b_pull; /* address offset: 0x0344 */ 244*4e72b326SXuhui Lin uint32_t reserved0348[62]; /* address offset: 0x0348 */ 245*4e72b326SXuhui Lin uint32_t gpio4a_ie; /* address offset: 0x0440 */ 246*4e72b326SXuhui Lin uint32_t gpio4b_ie; /* address offset: 0x0444 */ 247*4e72b326SXuhui Lin uint32_t reserved0448[62]; /* address offset: 0x0448 */ 248*4e72b326SXuhui Lin uint32_t gpio4a_smt; /* address offset: 0x0540 */ 249*4e72b326SXuhui Lin uint32_t gpio4b_smt; /* address offset: 0x0544 */ 250*4e72b326SXuhui Lin uint32_t reserved0548[62]; /* address offset: 0x0548 */ 251*4e72b326SXuhui Lin uint32_t gpio4a_sus; /* address offset: 0x0640 */ 252*4e72b326SXuhui Lin uint32_t gpio4b_sus; /* address offset: 0x0644 */ 253*4e72b326SXuhui Lin uint32_t reserved0648[62]; /* address offset: 0x0648 */ 254*4e72b326SXuhui Lin uint32_t gpio4a_sl; /* address offset: 0x0740 */ 255*4e72b326SXuhui Lin uint32_t gpio4b_sl; /* address offset: 0x0744 */ 256*4e72b326SXuhui Lin uint32_t reserved0748[62]; /* address offset: 0x0748 */ 257*4e72b326SXuhui Lin uint32_t gpio4a_od; /* address offset: 0x0840 */ 258*4e72b326SXuhui Lin uint32_t gpio4b_od; /* address offset: 0x0844 */ 259*4e72b326SXuhui Lin uint32_t reserved0848[51]; /* address offset: 0x0848 */ 260*4e72b326SXuhui Lin uint32_t io_vsel; /* address offset: 0x0914 */ 261*4e72b326SXuhui Lin uint32_t reserved0918[194]; /* address offset: 0x0918 */ 262*4e72b326SXuhui Lin uint32_t grf_gpio4_filter_con0; /* address offset: 0x0c20 */ 263*4e72b326SXuhui Lin uint32_t grf_gpio4_filter_con1; /* address offset: 0x0c24 */ 264*4e72b326SXuhui Lin uint32_t grf_gpio4_filter_con2; /* address offset: 0x0c28 */ 265*4e72b326SXuhui Lin uint32_t grf_gpio4_filter_con3; /* address offset: 0x0c2c */ 266*4e72b326SXuhui Lin uint32_t grf_gpio4_filter_con4; /* address offset: 0x0c30 */ 267*4e72b326SXuhui Lin uint32_t grf_gpio4_filter_con5; /* address offset: 0x0c34 */ 268*4e72b326SXuhui Lin }; 269*4e72b326SXuhui Lin 270*4e72b326SXuhui Lin check_member(rv1126b_vccio4_ioc_reg, grf_gpio4_filter_con5, 0x0c34); 271*4e72b326SXuhui Lin 272*4e72b326SXuhui Lin /* vccio5_ioc register structure define */ 273*4e72b326SXuhui Lin struct rv1126b_vccio5_ioc_reg { 274*4e72b326SXuhui Lin uint32_t reserved0000[40]; /* address offset: 0x0000 */ 275*4e72b326SXuhui Lin uint32_t gpio5a_iomux_sel_0; /* address offset: 0x00a0 */ 276*4e72b326SXuhui Lin uint32_t gpio5a_iomux_sel_1; /* address offset: 0x00a4 */ 277*4e72b326SXuhui Lin uint32_t gpio5b_iomux_sel_0; /* address offset: 0x00a8 */ 278*4e72b326SXuhui Lin uint32_t gpio5b_iomux_sel_1; /* address offset: 0x00ac */ 279*4e72b326SXuhui Lin uint32_t gpio5c_iomux_sel_0; /* address offset: 0x00b0 */ 280*4e72b326SXuhui Lin uint32_t gpio5c_iomux_sel_1; /* address offset: 0x00b4 */ 281*4e72b326SXuhui Lin uint32_t gpio5d_iomux_sel_0; /* address offset: 0x00b8 */ 282*4e72b326SXuhui Lin uint32_t gpio5d_iomux_sel_1; /* address offset: 0x00bc */ 283*4e72b326SXuhui Lin uint32_t reserved00c0[96]; /* address offset: 0x00c0 */ 284*4e72b326SXuhui Lin uint32_t gpio5a_ds_0; /* address offset: 0x0240 */ 285*4e72b326SXuhui Lin uint32_t gpio5a_ds_1; /* address offset: 0x0244 */ 286*4e72b326SXuhui Lin uint32_t gpio5a_ds_2; /* address offset: 0x0248 */ 287*4e72b326SXuhui Lin uint32_t gpio5a_ds_3; /* address offset: 0x024c */ 288*4e72b326SXuhui Lin uint32_t gpio5b_ds_0; /* address offset: 0x0250 */ 289*4e72b326SXuhui Lin uint32_t gpio5b_ds_1; /* address offset: 0x0254 */ 290*4e72b326SXuhui Lin uint32_t gpio5b_ds_2; /* address offset: 0x0258 */ 291*4e72b326SXuhui Lin uint32_t gpio5b_ds_3; /* address offset: 0x025c */ 292*4e72b326SXuhui Lin uint32_t gpio5c_ds_0; /* address offset: 0x0260 */ 293*4e72b326SXuhui Lin uint32_t gpio5c_ds_1; /* address offset: 0x0264 */ 294*4e72b326SXuhui Lin uint32_t gpio5c_ds_2; /* address offset: 0x0268 */ 295*4e72b326SXuhui Lin uint32_t gpio5c_ds_3; /* address offset: 0x026c */ 296*4e72b326SXuhui Lin uint32_t gpio5d_ds_0; /* address offset: 0x0270 */ 297*4e72b326SXuhui Lin uint32_t gpio5d_ds_1; /* address offset: 0x0274 */ 298*4e72b326SXuhui Lin uint32_t gpio5d_ds_2; /* address offset: 0x0278 */ 299*4e72b326SXuhui Lin uint32_t gpio5d_ds_3; /* address offset: 0x027c */ 300*4e72b326SXuhui Lin uint32_t reserved0280[52]; /* address offset: 0x0280 */ 301*4e72b326SXuhui Lin uint32_t gpio5a_pull; /* address offset: 0x0350 */ 302*4e72b326SXuhui Lin uint32_t gpio5b_pull; /* address offset: 0x0354 */ 303*4e72b326SXuhui Lin uint32_t gpio5c_pull; /* address offset: 0x0358 */ 304*4e72b326SXuhui Lin uint32_t gpio5d_pull; /* address offset: 0x035c */ 305*4e72b326SXuhui Lin uint32_t reserved0360[60]; /* address offset: 0x0360 */ 306*4e72b326SXuhui Lin uint32_t gpio5a_ie; /* address offset: 0x0450 */ 307*4e72b326SXuhui Lin uint32_t gpio5b_ie; /* address offset: 0x0454 */ 308*4e72b326SXuhui Lin uint32_t gpio5c_ie; /* address offset: 0x0458 */ 309*4e72b326SXuhui Lin uint32_t gpio5d_ie; /* address offset: 0x045c */ 310*4e72b326SXuhui Lin uint32_t reserved0460[60]; /* address offset: 0x0460 */ 311*4e72b326SXuhui Lin uint32_t gpio5a_smt; /* address offset: 0x0550 */ 312*4e72b326SXuhui Lin uint32_t gpio5b_smt; /* address offset: 0x0554 */ 313*4e72b326SXuhui Lin uint32_t gpio5c_smt; /* address offset: 0x0558 */ 314*4e72b326SXuhui Lin uint32_t gpio5d_smt; /* address offset: 0x055c */ 315*4e72b326SXuhui Lin uint32_t reserved0560[60]; /* address offset: 0x0560 */ 316*4e72b326SXuhui Lin uint32_t gpio5a_sus; /* address offset: 0x0650 */ 317*4e72b326SXuhui Lin uint32_t gpio5b_sus; /* address offset: 0x0654 */ 318*4e72b326SXuhui Lin uint32_t gpio5c_sus; /* address offset: 0x0658 */ 319*4e72b326SXuhui Lin uint32_t gpio5d_sus; /* address offset: 0x065c */ 320*4e72b326SXuhui Lin uint32_t reserved0660[60]; /* address offset: 0x0660 */ 321*4e72b326SXuhui Lin uint32_t gpio5a_sl; /* address offset: 0x0750 */ 322*4e72b326SXuhui Lin uint32_t gpio5b_sl; /* address offset: 0x0754 */ 323*4e72b326SXuhui Lin uint32_t gpio5c_sl; /* address offset: 0x0758 */ 324*4e72b326SXuhui Lin uint32_t gpio5d_sl; /* address offset: 0x075c */ 325*4e72b326SXuhui Lin uint32_t reserved0760[60]; /* address offset: 0x0760 */ 326*4e72b326SXuhui Lin uint32_t gpio5a_od; /* address offset: 0x0850 */ 327*4e72b326SXuhui Lin uint32_t gpio5b_od; /* address offset: 0x0854 */ 328*4e72b326SXuhui Lin uint32_t gpio5c_od; /* address offset: 0x0858 */ 329*4e72b326SXuhui Lin uint32_t gpio5d_od; /* address offset: 0x085c */ 330*4e72b326SXuhui Lin uint32_t reserved0860[46]; /* address offset: 0x0860 */ 331*4e72b326SXuhui Lin uint32_t io_vsel; /* address offset: 0x0918 */ 332*4e72b326SXuhui Lin uint32_t reserved091c[159]; /* address offset: 0x091c */ 333*4e72b326SXuhui Lin uint32_t grf_vicif_m1_con; /* address offset: 0x0b98 */ 334*4e72b326SXuhui Lin uint32_t grf_vop_lcdc_con; /* address offset: 0x0b9c */ 335*4e72b326SXuhui Lin uint32_t reserved0ba0[2]; /* address offset: 0x0ba0 */ 336*4e72b326SXuhui Lin uint32_t grf_gmacio_m1_con0; /* address offset: 0x0ba8 */ 337*4e72b326SXuhui Lin uint32_t grf_gmacio_m1_con1; /* address offset: 0x0bac */ 338*4e72b326SXuhui Lin uint32_t grf_uart0_dly_con; /* address offset: 0x0bb0 */ 339*4e72b326SXuhui Lin uint32_t grf_uart_jtag_con; /* address offset: 0x0bb4 */ 340*4e72b326SXuhui Lin uint32_t reserved0bb8[34]; /* address offset: 0x0bb8 */ 341*4e72b326SXuhui Lin uint32_t grf_gpio5_filter_con0; /* address offset: 0x0c40 */ 342*4e72b326SXuhui Lin uint32_t grf_gpio5_filter_con1; /* address offset: 0x0c44 */ 343*4e72b326SXuhui Lin uint32_t grf_gpio5_filter_con2; /* address offset: 0x0c48 */ 344*4e72b326SXuhui Lin uint32_t grf_gpio5_filter_con3; /* address offset: 0x0c4c */ 345*4e72b326SXuhui Lin uint32_t grf_gpio5_filter_con4; /* address offset: 0x0c50 */ 346*4e72b326SXuhui Lin uint32_t grf_gpio5_filter_con5; /* address offset: 0x0c54 */ 347*4e72b326SXuhui Lin }; 348*4e72b326SXuhui Lin 349*4e72b326SXuhui Lin check_member(rv1126b_vccio5_ioc_reg, grf_gpio5_filter_con5, 0x0c54); 350*4e72b326SXuhui Lin 351*4e72b326SXuhui Lin /* vccio6_ioc register structure define */ 352*4e72b326SXuhui Lin struct rv1126b_vccio6_ioc_reg { 353*4e72b326SXuhui Lin uint32_t reserved0000[48]; /* address offset: 0x0000 */ 354*4e72b326SXuhui Lin uint32_t gpio6a_iomux_sel_0; /* address offset: 0x00c0 */ 355*4e72b326SXuhui Lin uint32_t gpio6a_iomux_sel_1; /* address offset: 0x00c4 */ 356*4e72b326SXuhui Lin uint32_t gpio6b_iomux_sel_0; /* address offset: 0x00c8 */ 357*4e72b326SXuhui Lin uint32_t gpio6b_iomux_sel_1; /* address offset: 0x00cc */ 358*4e72b326SXuhui Lin uint32_t gpio6c_iomux_sel_0; /* address offset: 0x00d0 */ 359*4e72b326SXuhui Lin uint32_t reserved00d4[107]; /* address offset: 0x00d4 */ 360*4e72b326SXuhui Lin uint32_t gpio6a_ds_0; /* address offset: 0x0280 */ 361*4e72b326SXuhui Lin uint32_t gpio6a_ds_1; /* address offset: 0x0284 */ 362*4e72b326SXuhui Lin uint32_t gpio6a_ds_2; /* address offset: 0x0288 */ 363*4e72b326SXuhui Lin uint32_t gpio6a_ds_3; /* address offset: 0x028c */ 364*4e72b326SXuhui Lin uint32_t gpio6b_ds_0; /* address offset: 0x0290 */ 365*4e72b326SXuhui Lin uint32_t gpio6b_ds_1; /* address offset: 0x0294 */ 366*4e72b326SXuhui Lin uint32_t gpio6b_ds_2; /* address offset: 0x0298 */ 367*4e72b326SXuhui Lin uint32_t gpio6b_ds_3; /* address offset: 0x029c */ 368*4e72b326SXuhui Lin uint32_t gpio6c_ds_0; /* address offset: 0x02a0 */ 369*4e72b326SXuhui Lin uint32_t gpio6c_ds_1; /* address offset: 0x02a4 */ 370*4e72b326SXuhui Lin uint32_t reserved02a8[46]; /* address offset: 0x02a8 */ 371*4e72b326SXuhui Lin uint32_t gpio6a_pull; /* address offset: 0x0360 */ 372*4e72b326SXuhui Lin uint32_t gpio6b_pull; /* address offset: 0x0364 */ 373*4e72b326SXuhui Lin uint32_t gpio6c_pull; /* address offset: 0x0368 */ 374*4e72b326SXuhui Lin uint32_t reserved036c[61]; /* address offset: 0x036c */ 375*4e72b326SXuhui Lin uint32_t gpio6a_ie; /* address offset: 0x0460 */ 376*4e72b326SXuhui Lin uint32_t gpio6b_ie; /* address offset: 0x0464 */ 377*4e72b326SXuhui Lin uint32_t gpio6c_ie; /* address offset: 0x0468 */ 378*4e72b326SXuhui Lin uint32_t reserved046c[61]; /* address offset: 0x046c */ 379*4e72b326SXuhui Lin uint32_t gpio6a_smt; /* address offset: 0x0560 */ 380*4e72b326SXuhui Lin uint32_t gpio6b_smt; /* address offset: 0x0564 */ 381*4e72b326SXuhui Lin uint32_t gpio6c_smt; /* address offset: 0x0568 */ 382*4e72b326SXuhui Lin uint32_t reserved056c[61]; /* address offset: 0x056c */ 383*4e72b326SXuhui Lin uint32_t gpio6a_sus; /* address offset: 0x0660 */ 384*4e72b326SXuhui Lin uint32_t gpio6b_sus; /* address offset: 0x0664 */ 385*4e72b326SXuhui Lin uint32_t gpio6c_sus; /* address offset: 0x0668 */ 386*4e72b326SXuhui Lin uint32_t reserved066c[61]; /* address offset: 0x066c */ 387*4e72b326SXuhui Lin uint32_t gpio6a_sl; /* address offset: 0x0760 */ 388*4e72b326SXuhui Lin uint32_t gpio6b_sl; /* address offset: 0x0764 */ 389*4e72b326SXuhui Lin uint32_t gpio6c_sl; /* address offset: 0x0768 */ 390*4e72b326SXuhui Lin uint32_t reserved076c[61]; /* address offset: 0x076c */ 391*4e72b326SXuhui Lin uint32_t gpio6a_od; /* address offset: 0x0860 */ 392*4e72b326SXuhui Lin uint32_t gpio6b_od; /* address offset: 0x0864 */ 393*4e72b326SXuhui Lin uint32_t gpio6c_od; /* address offset: 0x0868 */ 394*4e72b326SXuhui Lin uint32_t reserved086c[44]; /* address offset: 0x086c */ 395*4e72b326SXuhui Lin uint32_t io_vsel; /* address offset: 0x091c */ 396*4e72b326SXuhui Lin uint32_t reserved0920[157]; /* address offset: 0x0920 */ 397*4e72b326SXuhui Lin uint32_t grf_vicif_m0_con; /* address offset: 0x0b94 */ 398*4e72b326SXuhui Lin uint32_t reserved0b98[2]; /* address offset: 0x0b98 */ 399*4e72b326SXuhui Lin uint32_t grf_gmacio_m0_con0; /* address offset: 0x0ba0 */ 400*4e72b326SXuhui Lin uint32_t grf_gmacio_m0_con1; /* address offset: 0x0ba4 */ 401*4e72b326SXuhui Lin uint32_t reserved0ba8[46]; /* address offset: 0x0ba8 */ 402*4e72b326SXuhui Lin uint32_t grf_gpio6_filter_con0; /* address offset: 0x0c60 */ 403*4e72b326SXuhui Lin uint32_t grf_gpio6_filter_con1; /* address offset: 0x0c64 */ 404*4e72b326SXuhui Lin uint32_t grf_gpio6_filter_con2; /* address offset: 0x0c68 */ 405*4e72b326SXuhui Lin uint32_t grf_gpio6_filter_con3; /* address offset: 0x0c6c */ 406*4e72b326SXuhui Lin uint32_t grf_gpio6_filter_con4; /* address offset: 0x0c70 */ 407*4e72b326SXuhui Lin uint32_t grf_gpio6_filter_con5; /* address offset: 0x0c74 */ 408*4e72b326SXuhui Lin }; 409*4e72b326SXuhui Lin 410*4e72b326SXuhui Lin check_member(rv1126b_vccio6_ioc_reg, grf_gpio6_filter_con5, 0x0c74); 411*4e72b326SXuhui Lin 412*4e72b326SXuhui Lin /* vccio7_ioc register structure define */ 413*4e72b326SXuhui Lin struct rv1126b_vccio7_ioc_reg { 414*4e72b326SXuhui Lin uint32_t reserved0000[56]; /* address offset: 0x0000 */ 415*4e72b326SXuhui Lin uint32_t gpio7a_iomux_sel_0; /* address offset: 0x00e0 */ 416*4e72b326SXuhui Lin uint32_t gpio7a_iomux_sel_1; /* address offset: 0x00e4 */ 417*4e72b326SXuhui Lin uint32_t gpio7b_iomux_sel_0; /* address offset: 0x00e8 */ 418*4e72b326SXuhui Lin uint32_t reserved00ec[117]; /* address offset: 0x00ec */ 419*4e72b326SXuhui Lin uint32_t gpio7a_ds_0; /* address offset: 0x02c0 */ 420*4e72b326SXuhui Lin uint32_t gpio7a_ds_1; /* address offset: 0x02c4 */ 421*4e72b326SXuhui Lin uint32_t gpio7a_ds_2; /* address offset: 0x02c8 */ 422*4e72b326SXuhui Lin uint32_t gpio7a_ds_3; /* address offset: 0x02cc */ 423*4e72b326SXuhui Lin uint32_t gpio7b_ds_0; /* address offset: 0x02d0 */ 424*4e72b326SXuhui Lin uint32_t reserved02d4[39]; /* address offset: 0x02d4 */ 425*4e72b326SXuhui Lin uint32_t gpio7a_pull; /* address offset: 0x0370 */ 426*4e72b326SXuhui Lin uint32_t gpio7b_pull; /* address offset: 0x0374 */ 427*4e72b326SXuhui Lin uint32_t reserved0378[62]; /* address offset: 0x0378 */ 428*4e72b326SXuhui Lin uint32_t gpio7a_ie; /* address offset: 0x0470 */ 429*4e72b326SXuhui Lin uint32_t gpio7b_ie; /* address offset: 0x0474 */ 430*4e72b326SXuhui Lin uint32_t reserved0478[62]; /* address offset: 0x0478 */ 431*4e72b326SXuhui Lin uint32_t gpio7a_smt; /* address offset: 0x0570 */ 432*4e72b326SXuhui Lin uint32_t gpio7b_smt; /* address offset: 0x0574 */ 433*4e72b326SXuhui Lin uint32_t reserved0578[62]; /* address offset: 0x0578 */ 434*4e72b326SXuhui Lin uint32_t gpio7a_sus; /* address offset: 0x0670 */ 435*4e72b326SXuhui Lin uint32_t gpio7b_sus; /* address offset: 0x0674 */ 436*4e72b326SXuhui Lin uint32_t reserved0678[62]; /* address offset: 0x0678 */ 437*4e72b326SXuhui Lin uint32_t gpio7a_sl; /* address offset: 0x0770 */ 438*4e72b326SXuhui Lin uint32_t gpio7b_sl; /* address offset: 0x0774 */ 439*4e72b326SXuhui Lin uint32_t reserved0778[62]; /* address offset: 0x0778 */ 440*4e72b326SXuhui Lin uint32_t gpio7a_od; /* address offset: 0x0870 */ 441*4e72b326SXuhui Lin uint32_t gpio7b_od; /* address offset: 0x0874 */ 442*4e72b326SXuhui Lin uint32_t reserved0878[42]; /* address offset: 0x0878 */ 443*4e72b326SXuhui Lin uint32_t io_vsel; /* address offset: 0x0920 */ 444*4e72b326SXuhui Lin uint32_t reserved0924[215]; /* address offset: 0x0924 */ 445*4e72b326SXuhui Lin uint32_t grf_gpio7_filter_con0; /* address offset: 0x0c80 */ 446*4e72b326SXuhui Lin uint32_t grf_gpio7_filter_con1; /* address offset: 0x0c84 */ 447*4e72b326SXuhui Lin uint32_t grf_gpio7_filter_con2; /* address offset: 0x0c88 */ 448*4e72b326SXuhui Lin uint32_t grf_gpio7_filter_con3; /* address offset: 0x0c8c */ 449*4e72b326SXuhui Lin uint32_t grf_gpio7_filter_con4; /* address offset: 0x0c90 */ 450*4e72b326SXuhui Lin uint32_t grf_gpio7_filter_con5; /* address offset: 0x0c94 */ 451*4e72b326SXuhui Lin uint32_t reserved0c98[2]; /* address offset: 0x0c98 */ 452*4e72b326SXuhui Lin uint32_t grf_dsm_ioc_con; /* address offset: 0x0ca0 */ 453*4e72b326SXuhui Lin }; 454*4e72b326SXuhui Lin 455*4e72b326SXuhui Lin check_member(rv1126b_vccio7_ioc_reg, grf_dsm_ioc_con, 0x0ca0); 456*4e72b326SXuhui Lin 457*4e72b326SXuhui Lin #endif /* _ASM_ARCH_GRF_RV1126B_H */ 458