1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * (C) Copyright 2021 Rockchip Electronics Co., Ltd. 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun #ifndef _ASM_ARCH_GRF_RK3588_H 7*4882a593Smuzhiyun #define _ASM_ARCH_GRF_RK3588_H 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include <common.h> 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun struct rk3588_sys_grf { 12*4882a593Smuzhiyun uint32_t wdt_con0; /* Address Offset: 0x0000 */ 13*4882a593Smuzhiyun uint32_t reserved0004[3]; /* Address Offset: 0x0004 */ 14*4882a593Smuzhiyun uint32_t uart_con0; /* Address Offset: 0x0010 */ 15*4882a593Smuzhiyun uint32_t uart_con1; /* Address Offset: 0x0014 */ 16*4882a593Smuzhiyun uint32_t reserved0018[42]; /* Address Offset: 0x0018 */ 17*4882a593Smuzhiyun uint32_t gic_con0; /* Address Offset: 0x00C0 */ 18*4882a593Smuzhiyun uint32_t reserved00c4[79]; /* Address Offset: 0x00C4 */ 19*4882a593Smuzhiyun uint32_t memcfg_con0; /* Address Offset: 0x0200 */ 20*4882a593Smuzhiyun uint32_t memcfg_con1; /* Address Offset: 0x0204 */ 21*4882a593Smuzhiyun uint32_t memcfg_con2; /* Address Offset: 0x0208 */ 22*4882a593Smuzhiyun uint32_t memcfg_con3; /* Address Offset: 0x020C */ 23*4882a593Smuzhiyun uint32_t memcfg_con4; /* Address Offset: 0x0210 */ 24*4882a593Smuzhiyun uint32_t memcfg_con5; /* Address Offset: 0x0214 */ 25*4882a593Smuzhiyun uint32_t memcfg_con6; /* Address Offset: 0x0218 */ 26*4882a593Smuzhiyun uint32_t memcfg_con7; /* Address Offset: 0x021C */ 27*4882a593Smuzhiyun uint32_t memcfg_con8; /* Address Offset: 0x0220 */ 28*4882a593Smuzhiyun uint32_t memcfg_con9; /* Address Offset: 0x0224 */ 29*4882a593Smuzhiyun uint32_t memcfg_con10; /* Address Offset: 0x0228 */ 30*4882a593Smuzhiyun uint32_t memcfg_con11; /* Address Offset: 0x022C */ 31*4882a593Smuzhiyun uint32_t memcfg_con12; /* Address Offset: 0x0230 */ 32*4882a593Smuzhiyun uint32_t memcfg_con13; /* Address Offset: 0x0234 */ 33*4882a593Smuzhiyun uint32_t memcfg_con14; /* Address Offset: 0x0238 */ 34*4882a593Smuzhiyun uint32_t memcfg_con15; /* Address Offset: 0x023C */ 35*4882a593Smuzhiyun uint32_t memcfg_con16; /* Address Offset: 0x0240 */ 36*4882a593Smuzhiyun uint32_t memcfg_con17; /* Address Offset: 0x0244 */ 37*4882a593Smuzhiyun uint32_t memcfg_con18; /* Address Offset: 0x0248 */ 38*4882a593Smuzhiyun uint32_t memcfg_con19; /* Address Offset: 0x024C */ 39*4882a593Smuzhiyun uint32_t memcfg_con20; /* Address Offset: 0x0250 */ 40*4882a593Smuzhiyun uint32_t memcfg_con21; /* Address Offset: 0x0254 */ 41*4882a593Smuzhiyun uint32_t memcfg_con22; /* Address Offset: 0x0258 */ 42*4882a593Smuzhiyun uint32_t memcfg_con23; /* Address Offset: 0x025C */ 43*4882a593Smuzhiyun uint32_t memcfg_con24; /* Address Offset: 0x0260 */ 44*4882a593Smuzhiyun uint32_t reserved0264; /* Address Offset: 0x0264 */ 45*4882a593Smuzhiyun uint32_t memcfg_con26; /* Address Offset: 0x0268 */ 46*4882a593Smuzhiyun uint32_t memcfg_con27; /* Address Offset: 0x026C */ 47*4882a593Smuzhiyun uint32_t memcfg_con28; /* Address Offset: 0x0270 */ 48*4882a593Smuzhiyun uint32_t memcfg_con29; /* Address Offset: 0x0274 */ 49*4882a593Smuzhiyun uint32_t memcfg_con30; /* Address Offset: 0x0278 */ 50*4882a593Smuzhiyun uint32_t memcfg_con31; /* Address Offset: 0x027C */ 51*4882a593Smuzhiyun uint32_t reserved0280[33]; /* Address Offset: 0x0280 */ 52*4882a593Smuzhiyun uint32_t soc_con1; /* Address Offset: 0x0304 */ 53*4882a593Smuzhiyun uint32_t soc_con2; /* Address Offset: 0x0308 */ 54*4882a593Smuzhiyun uint32_t soc_con3; /* Address Offset: 0x030C */ 55*4882a593Smuzhiyun uint32_t reserved0310[2]; /* Address Offset: 0x0310 */ 56*4882a593Smuzhiyun uint32_t soc_con6; /* Address Offset: 0x0318 */ 57*4882a593Smuzhiyun uint32_t soc_con7; /* Address Offset: 0x031C */ 58*4882a593Smuzhiyun uint32_t soc_con8; /* Address Offset: 0x0320 */ 59*4882a593Smuzhiyun uint32_t soc_con9; /* Address Offset: 0x0324 */ 60*4882a593Smuzhiyun uint32_t soc_con10; /* Address Offset: 0x0328 */ 61*4882a593Smuzhiyun uint32_t soc_con11; /* Address Offset: 0x032C */ 62*4882a593Smuzhiyun uint32_t soc_con12; /* Address Offset: 0x0330 */ 63*4882a593Smuzhiyun uint32_t soc_con13; /* Address Offset: 0x0334 */ 64*4882a593Smuzhiyun uint32_t reserved0338[18]; /* Address Offset: 0x0338 */ 65*4882a593Smuzhiyun uint32_t soc_status0; /* Address Offset: 0x0380 */ 66*4882a593Smuzhiyun uint32_t soc_status1; /* Address Offset: 0x0384 */ 67*4882a593Smuzhiyun uint32_t soc_status2; /* Address Offset: 0x0388 */ 68*4882a593Smuzhiyun uint32_t soc_status3; /* Address Offset: 0x038C */ 69*4882a593Smuzhiyun uint32_t reserved0390[92]; /* Address Offset: 0x0390 */ 70*4882a593Smuzhiyun uint32_t otp_key08; /* Address Offset: 0x0500 */ 71*4882a593Smuzhiyun uint32_t otp_key0d; /* Address Offset: 0x0504 */ 72*4882a593Smuzhiyun uint32_t otp_key0e; /* Address Offset: 0x0508 */ 73*4882a593Smuzhiyun uint32_t reserved050c[61]; /* Address Offset: 0x050C */ 74*4882a593Smuzhiyun uint32_t chip_id; /* Address Offset: 0x0600 */ 75*4882a593Smuzhiyun }; 76*4882a593Smuzhiyun check_member(rk3588_sys_grf, chip_id, 0x0600); 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun struct rk3588_php_grf { 79*4882a593Smuzhiyun uint32_t php_con0; /* Address Offset: 0x0000 */ 80*4882a593Smuzhiyun uint32_t php_con1; /* Address Offset: 0x0004 */ 81*4882a593Smuzhiyun uint32_t gmac_con0; /* Address Offset: 0x0008 */ 82*4882a593Smuzhiyun uint32_t reserved000c; /* Address Offset: 0x000C */ 83*4882a593Smuzhiyun uint32_t sata_con0; /* Address Offset: 0x0010 */ 84*4882a593Smuzhiyun uint32_t sata_con1; /* Address Offset: 0x0014 */ 85*4882a593Smuzhiyun uint32_t sata_con2; /* Address Offset: 0x0018 */ 86*4882a593Smuzhiyun uint32_t php_mmu_con0; /* Address Offset: 0x001C */ 87*4882a593Smuzhiyun uint32_t php_mmu_con1; /* Address Offset: 0x0020 */ 88*4882a593Smuzhiyun uint32_t php_mmu_con2; /* Address Offset: 0x0024 */ 89*4882a593Smuzhiyun uint32_t its_taddr0; /* Address Offset: 0x0028 */ 90*4882a593Smuzhiyun uint32_t its_taddr1; /* Address Offset: 0x002C */ 91*4882a593Smuzhiyun uint32_t pcie_mmu_pciemode; /* Address Offset: 0x0030 */ 92*4882a593Smuzhiyun uint32_t pcie_mmu_con0; /* Address Offset: 0x0034 */ 93*4882a593Smuzhiyun uint32_t pcie_mmu_con1; /* Address Offset: 0x0038 */ 94*4882a593Smuzhiyun uint32_t pcie_mmu_con2; /* Address Offset: 0x003C */ 95*4882a593Smuzhiyun uint32_t mem_con0; /* Address Offset: 0x0040 */ 96*4882a593Smuzhiyun uint32_t php_st0; /* Address Offset: 0x0044 */ 97*4882a593Smuzhiyun uint32_t php_st1; /* Address Offset: 0x0048 */ 98*4882a593Smuzhiyun uint32_t php_st2; /* Address Offset: 0x004C */ 99*4882a593Smuzhiyun uint32_t php_st3; /* Address Offset: 0x0050 */ 100*4882a593Smuzhiyun uint32_t php_st4; /* Address Offset: 0x0054 */ 101*4882a593Smuzhiyun uint32_t mmu_pmu_ack; /* Address Offset: 0x0058 */ 102*4882a593Smuzhiyun uint32_t pcie_mmu_con6; /* Address Offset: 0x005C */ 103*4882a593Smuzhiyun uint32_t pcie_mmu_con7; /* Address Offset: 0x0060 */ 104*4882a593Smuzhiyun uint32_t mem_con5; /* Address Offset: 0x0064 */ 105*4882a593Smuzhiyun uint32_t mem_con10; /* Address Offset: 0x0068 */ 106*4882a593Smuzhiyun uint32_t reserved006c; /* Address Offset: 0x006C */ 107*4882a593Smuzhiyun uint32_t clk_con1; /* Address Offset: 0x0070 */ 108*4882a593Smuzhiyun uint32_t gmac0_sid_aw; /* Address Offset: 0x0074 */ 109*4882a593Smuzhiyun uint32_t gmac0_ssid_aw; /* Address Offset: 0x0078 */ 110*4882a593Smuzhiyun uint32_t gmac1_sid_aw; /* Address Offset: 0x007C */ 111*4882a593Smuzhiyun uint32_t gmac1_ssid_aw; /* Address Offset: 0x0080 */ 112*4882a593Smuzhiyun uint32_t sata0_sid_aw; /* Address Offset: 0x0084 */ 113*4882a593Smuzhiyun uint32_t sata0_ssid_aw; /* Address Offset: 0x0088 */ 114*4882a593Smuzhiyun uint32_t sata1_sid_aw; /* Address Offset: 0x008C */ 115*4882a593Smuzhiyun uint32_t sata1_ssid_aw; /* Address Offset: 0x0090 */ 116*4882a593Smuzhiyun uint32_t sata2_sid_aw; /* Address Offset: 0x0094 */ 117*4882a593Smuzhiyun uint32_t sata2_ssid_aw; /* Address Offset: 0x0098 */ 118*4882a593Smuzhiyun uint32_t gmac0_sid_ar; /* Address Offset: 0x009C */ 119*4882a593Smuzhiyun uint32_t gmac0_ssid_ar; /* Address Offset: 0x00A0 */ 120*4882a593Smuzhiyun uint32_t gmac1_sid_ar; /* Address Offset: 0x00A4 */ 121*4882a593Smuzhiyun uint32_t gmac1_ssid_ar; /* Address Offset: 0x00A8 */ 122*4882a593Smuzhiyun uint32_t sata0_sid_ar; /* Address Offset: 0x00AC */ 123*4882a593Smuzhiyun uint32_t sata0_ssid_ar; /* Address Offset: 0x00B0 */ 124*4882a593Smuzhiyun uint32_t sata1_sid_ar; /* Address Offset: 0x00B4 */ 125*4882a593Smuzhiyun uint32_t sata1_ssid_ar; /* Address Offset: 0x00B8 */ 126*4882a593Smuzhiyun uint32_t sata2_sid_ar; /* Address Offset: 0x00BC */ 127*4882a593Smuzhiyun uint32_t sata2_ssid_ar; /* Address Offset: 0x00C0 */ 128*4882a593Smuzhiyun uint32_t usb3otg_2_sid_ar; /* Address Offset: 0x00C4 */ 129*4882a593Smuzhiyun uint32_t usb3otg_2_ssid_ar; /* Address Offset: 0x00C8 */ 130*4882a593Smuzhiyun uint32_t usb3otg_2_sid_aw; /* Address Offset: 0x00CC */ 131*4882a593Smuzhiyun uint32_t usb3otg_2_ssid_aw; /* Address Offset: 0x00D0 */ 132*4882a593Smuzhiyun uint32_t gmac_con_pst; /* Address Offset: 0x00D4 */ 133*4882a593Smuzhiyun uint32_t gmac0_cmd; /* Address Offset: 0x00D8 */ 134*4882a593Smuzhiyun uint32_t gmac1_cmd; /* Address Offset: 0x00DC */ 135*4882a593Smuzhiyun uint32_t mem_con11; /* Address Offset: 0x00E0 */ 136*4882a593Smuzhiyun uint32_t usb3otg_2_con0; /* Address Offset: 0x00E4 */ 137*4882a593Smuzhiyun uint32_t usb3otg_2_con1; /* Address Offset: 0x00E8 */ 138*4882a593Smuzhiyun uint32_t usb3otg_2_intcon; /* Address Offset: 0x00EC */ 139*4882a593Smuzhiyun uint32_t usb3otg_2_st_lat0; /* Address Offset: 0x00F0 */ 140*4882a593Smuzhiyun uint32_t usb3otg_2_st_lat1; /* Address Offset: 0x00F4 */ 141*4882a593Smuzhiyun uint32_t usb3otg_2_st_cb; /* Address Offset: 0x00F8 */ 142*4882a593Smuzhiyun uint32_t usb3otg_2_st; /* Address Offset: 0x00FC */ 143*4882a593Smuzhiyun uint32_t pciesel_con; /* Address Offset: 0x0100 */ 144*4882a593Smuzhiyun uint32_t utmi_con; /* Address Offset: 0x0104 */ 145*4882a593Smuzhiyun uint32_t reserved0108; /* Address Offset: 0x0108 */ 146*4882a593Smuzhiyun uint32_t pcie4l_sid_aw; /* Address Offset: 0x010C */ 147*4882a593Smuzhiyun uint32_t pcie4l_sid_ar; /* Address Offset: 0x0110 */ 148*4882a593Smuzhiyun uint32_t pcie2l_sid_aw; /* Address Offset: 0x0114 */ 149*4882a593Smuzhiyun uint32_t pcie2l_sid_ar; /* Address Offset: 0x0118 */ 150*4882a593Smuzhiyun uint32_t pcie1l0_sid_aw; /* Address Offset: 0x011C */ 151*4882a593Smuzhiyun uint32_t pcie1l0_sid_ar; /* Address Offset: 0x0120 */ 152*4882a593Smuzhiyun uint32_t pcie1l1_sid_aw; /* Address Offset: 0x0124 */ 153*4882a593Smuzhiyun uint32_t pcie1l1_sid_ar; /* Address Offset: 0x0128 */ 154*4882a593Smuzhiyun uint32_t pcie1l2_sid_aw; /* Address Offset: 0x012C */ 155*4882a593Smuzhiyun uint32_t pcie1l2_sid_ar; /* Address Offset: 0x0130 */ 156*4882a593Smuzhiyun uint32_t reserved0134; /* Address Offset: 0x0134 */ 157*4882a593Smuzhiyun uint32_t pcie_ats; /* Address Offset: 0x0138 */ 158*4882a593Smuzhiyun uint32_t st_utmi; /* Address Offset: 0x013C */ 159*4882a593Smuzhiyun uint32_t reserved0140; /* Address Offset: 0x0140 */ 160*4882a593Smuzhiyun uint32_t pcie4l_ssid_aw; /* Address Offset: 0x0144 */ 161*4882a593Smuzhiyun uint32_t pcie4l_ssid_ar; /* Address Offset: 0x0148 */ 162*4882a593Smuzhiyun uint32_t pcie2l_ssid_aw; /* Address Offset: 0x014C */ 163*4882a593Smuzhiyun uint32_t pcie2l_ssid_ar; /* Address Offset: 0x0150 */ 164*4882a593Smuzhiyun uint32_t pcie1l0_ssid_aw; /* Address Offset: 0x0154 */ 165*4882a593Smuzhiyun uint32_t pcie1l0_ssid_ar; /* Address Offset: 0x0158 */ 166*4882a593Smuzhiyun uint32_t pcie1l1_ssid_aw; /* Address Offset: 0x015C */ 167*4882a593Smuzhiyun uint32_t pcie1l1_ssid_ar; /* Address Offset: 0x0160 */ 168*4882a593Smuzhiyun uint32_t pcie1l2_ssid_aw; /* Address Offset: 0x0164 */ 169*4882a593Smuzhiyun uint32_t pcie1l2_ssid_ar; /* Address Offset: 0x0168 */ 170*4882a593Smuzhiyun uint32_t pcie_ssid_v; /* Address Offset: 0x016C */ 171*4882a593Smuzhiyun uint32_t reserved0170; /* Address Offset: 0x0170 */ 172*4882a593Smuzhiyun uint32_t sata_pd_sel; /* Address Offset: 0x0174 */ 173*4882a593Smuzhiyun uint32_t pcie_mmu_irq_clr; /* Address Offset: 0x0178 */ 174*4882a593Smuzhiyun uint32_t php_mmu_irq_clr; /* Address Offset: 0x017C */ 175*4882a593Smuzhiyun uint32_t pcie_mmu_st; /* Address Offset: 0x0180 */ 176*4882a593Smuzhiyun uint32_t php_mmu_st; /* Address Offset: 0x0184 */ 177*4882a593Smuzhiyun uint32_t reserved0188; /* Address Offset: 0x0188 */ 178*4882a593Smuzhiyun uint32_t php_st0b; /* Address Offset: 0x018C */ 179*4882a593Smuzhiyun }; 180*4882a593Smuzhiyun check_member(rk3588_php_grf, php_st0b, 0x018c); 181*4882a593Smuzhiyun 182*4882a593Smuzhiyun #endif 183