18c2ecf20Sopenharmony_ci/* 28c2ecf20Sopenharmony_ci * Copyright 2009 Advanced Micro Devices, Inc. 38c2ecf20Sopenharmony_ci * Copyright 2009 Red Hat Inc. 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Permission is hereby granted, free of charge, to any person obtaining a 68c2ecf20Sopenharmony_ci * copy of this software and associated documentation files (the "Software"), 78c2ecf20Sopenharmony_ci * to deal in the Software without restriction, including without limitation 88c2ecf20Sopenharmony_ci * the rights to use, copy, modify, merge, publish, distribute, sublicense, 98c2ecf20Sopenharmony_ci * and/or sell copies of the Software, and to permit persons to whom the 108c2ecf20Sopenharmony_ci * Software is furnished to do so, subject to the following conditions: 118c2ecf20Sopenharmony_ci * 128c2ecf20Sopenharmony_ci * The above copyright notice and this permission notice shall be included in 138c2ecf20Sopenharmony_ci * all copies or substantial portions of the Software. 148c2ecf20Sopenharmony_ci * 158c2ecf20Sopenharmony_ci * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 168c2ecf20Sopenharmony_ci * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 178c2ecf20Sopenharmony_ci * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 188c2ecf20Sopenharmony_ci * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 198c2ecf20Sopenharmony_ci * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 208c2ecf20Sopenharmony_ci * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 218c2ecf20Sopenharmony_ci * OTHER DEALINGS IN THE SOFTWARE. 228c2ecf20Sopenharmony_ci * 238c2ecf20Sopenharmony_ci * Authors: Dave Airlie 248c2ecf20Sopenharmony_ci * Alex Deucher 258c2ecf20Sopenharmony_ci * Jerome Glisse 268c2ecf20Sopenharmony_ci */ 278c2ecf20Sopenharmony_ci#ifndef R600D_H 288c2ecf20Sopenharmony_ci#define R600D_H 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci#define CP_PACKET2 0x80000000 318c2ecf20Sopenharmony_ci#define PACKET2_PAD_SHIFT 0 328c2ecf20Sopenharmony_ci#define PACKET2_PAD_MASK (0x3fffffff << 0) 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci#define PACKET2(v) (CP_PACKET2 | REG_SET(PACKET2_PAD, (v))) 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci#define R6XX_MAX_SH_GPRS 256 378c2ecf20Sopenharmony_ci#define R6XX_MAX_TEMP_GPRS 16 388c2ecf20Sopenharmony_ci#define R6XX_MAX_SH_THREADS 256 398c2ecf20Sopenharmony_ci#define R6XX_MAX_SH_STACK_ENTRIES 4096 408c2ecf20Sopenharmony_ci#define R6XX_MAX_BACKENDS 8 418c2ecf20Sopenharmony_ci#define R6XX_MAX_BACKENDS_MASK 0xff 428c2ecf20Sopenharmony_ci#define R6XX_MAX_SIMDS 8 438c2ecf20Sopenharmony_ci#define R6XX_MAX_SIMDS_MASK 0xff 448c2ecf20Sopenharmony_ci#define R6XX_MAX_PIPES 8 458c2ecf20Sopenharmony_ci#define R6XX_MAX_PIPES_MASK 0xff 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci/* tiling bits */ 488c2ecf20Sopenharmony_ci#define ARRAY_LINEAR_GENERAL 0x00000000 498c2ecf20Sopenharmony_ci#define ARRAY_LINEAR_ALIGNED 0x00000001 508c2ecf20Sopenharmony_ci#define ARRAY_1D_TILED_THIN1 0x00000002 518c2ecf20Sopenharmony_ci#define ARRAY_2D_TILED_THIN1 0x00000004 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci/* Registers */ 548c2ecf20Sopenharmony_ci#define ARB_POP 0x2418 558c2ecf20Sopenharmony_ci#define ENABLE_TC128 (1 << 30) 568c2ecf20Sopenharmony_ci#define ARB_GDEC_RD_CNTL 0x246C 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci#define CC_GC_SHADER_PIPE_CONFIG 0x8950 598c2ecf20Sopenharmony_ci#define CC_RB_BACKEND_DISABLE 0x98F4 608c2ecf20Sopenharmony_ci#define BACKEND_DISABLE(x) ((x) << 16) 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci#define R_028808_CB_COLOR_CONTROL 0x28808 638c2ecf20Sopenharmony_ci#define S_028808_SPECIAL_OP(x) (((x) & 0x7) << 4) 648c2ecf20Sopenharmony_ci#define G_028808_SPECIAL_OP(x) (((x) >> 4) & 0x7) 658c2ecf20Sopenharmony_ci#define C_028808_SPECIAL_OP 0xFFFFFF8F 668c2ecf20Sopenharmony_ci#define V_028808_SPECIAL_NORMAL 0x00 678c2ecf20Sopenharmony_ci#define V_028808_SPECIAL_DISABLE 0x01 688c2ecf20Sopenharmony_ci#define V_028808_SPECIAL_RESOLVE_BOX 0x07 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci#define CB_COLOR0_BASE 0x28040 718c2ecf20Sopenharmony_ci#define CB_COLOR1_BASE 0x28044 728c2ecf20Sopenharmony_ci#define CB_COLOR2_BASE 0x28048 738c2ecf20Sopenharmony_ci#define CB_COLOR3_BASE 0x2804C 748c2ecf20Sopenharmony_ci#define CB_COLOR4_BASE 0x28050 758c2ecf20Sopenharmony_ci#define CB_COLOR5_BASE 0x28054 768c2ecf20Sopenharmony_ci#define CB_COLOR6_BASE 0x28058 778c2ecf20Sopenharmony_ci#define CB_COLOR7_BASE 0x2805C 788c2ecf20Sopenharmony_ci#define CB_COLOR7_FRAG 0x280FC 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ci#define CB_COLOR0_SIZE 0x28060 818c2ecf20Sopenharmony_ci#define CB_COLOR0_VIEW 0x28080 828c2ecf20Sopenharmony_ci#define R_028080_CB_COLOR0_VIEW 0x028080 838c2ecf20Sopenharmony_ci#define S_028080_SLICE_START(x) (((x) & 0x7FF) << 0) 848c2ecf20Sopenharmony_ci#define G_028080_SLICE_START(x) (((x) >> 0) & 0x7FF) 858c2ecf20Sopenharmony_ci#define C_028080_SLICE_START 0xFFFFF800 868c2ecf20Sopenharmony_ci#define S_028080_SLICE_MAX(x) (((x) & 0x7FF) << 13) 878c2ecf20Sopenharmony_ci#define G_028080_SLICE_MAX(x) (((x) >> 13) & 0x7FF) 888c2ecf20Sopenharmony_ci#define C_028080_SLICE_MAX 0xFF001FFF 898c2ecf20Sopenharmony_ci#define R_028084_CB_COLOR1_VIEW 0x028084 908c2ecf20Sopenharmony_ci#define R_028088_CB_COLOR2_VIEW 0x028088 918c2ecf20Sopenharmony_ci#define R_02808C_CB_COLOR3_VIEW 0x02808C 928c2ecf20Sopenharmony_ci#define R_028090_CB_COLOR4_VIEW 0x028090 938c2ecf20Sopenharmony_ci#define R_028094_CB_COLOR5_VIEW 0x028094 948c2ecf20Sopenharmony_ci#define R_028098_CB_COLOR6_VIEW 0x028098 958c2ecf20Sopenharmony_ci#define R_02809C_CB_COLOR7_VIEW 0x02809C 968c2ecf20Sopenharmony_ci#define R_028100_CB_COLOR0_MASK 0x028100 978c2ecf20Sopenharmony_ci#define S_028100_CMASK_BLOCK_MAX(x) (((x) & 0xFFF) << 0) 988c2ecf20Sopenharmony_ci#define G_028100_CMASK_BLOCK_MAX(x) (((x) >> 0) & 0xFFF) 998c2ecf20Sopenharmony_ci#define C_028100_CMASK_BLOCK_MAX 0xFFFFF000 1008c2ecf20Sopenharmony_ci#define S_028100_FMASK_TILE_MAX(x) (((x) & 0xFFFFF) << 12) 1018c2ecf20Sopenharmony_ci#define G_028100_FMASK_TILE_MAX(x) (((x) >> 12) & 0xFFFFF) 1028c2ecf20Sopenharmony_ci#define C_028100_FMASK_TILE_MAX 0x00000FFF 1038c2ecf20Sopenharmony_ci#define R_028104_CB_COLOR1_MASK 0x028104 1048c2ecf20Sopenharmony_ci#define R_028108_CB_COLOR2_MASK 0x028108 1058c2ecf20Sopenharmony_ci#define R_02810C_CB_COLOR3_MASK 0x02810C 1068c2ecf20Sopenharmony_ci#define R_028110_CB_COLOR4_MASK 0x028110 1078c2ecf20Sopenharmony_ci#define R_028114_CB_COLOR5_MASK 0x028114 1088c2ecf20Sopenharmony_ci#define R_028118_CB_COLOR6_MASK 0x028118 1098c2ecf20Sopenharmony_ci#define R_02811C_CB_COLOR7_MASK 0x02811C 1108c2ecf20Sopenharmony_ci#define CB_COLOR0_INFO 0x280a0 1118c2ecf20Sopenharmony_ci# define CB_FORMAT(x) ((x) << 2) 1128c2ecf20Sopenharmony_ci# define CB_ARRAY_MODE(x) ((x) << 8) 1138c2ecf20Sopenharmony_ci# define CB_SOURCE_FORMAT(x) ((x) << 27) 1148c2ecf20Sopenharmony_ci# define CB_SF_EXPORT_FULL 0 1158c2ecf20Sopenharmony_ci# define CB_SF_EXPORT_NORM 1 1168c2ecf20Sopenharmony_ci#define CB_COLOR0_TILE 0x280c0 1178c2ecf20Sopenharmony_ci#define CB_COLOR0_FRAG 0x280e0 1188c2ecf20Sopenharmony_ci#define CB_COLOR0_MASK 0x28100 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_0 0x28940 1218c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_1 0x28944 1228c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_2 0x28948 1238c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_3 0x2894c 1248c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_4 0x28950 1258c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_5 0x28954 1268c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_6 0x28958 1278c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_7 0x2895c 1288c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_8 0x28960 1298c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_9 0x28964 1308c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_10 0x28968 1318c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_11 0x2896c 1328c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_12 0x28970 1338c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_13 0x28974 1348c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_14 0x28978 1358c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_PS_15 0x2897c 1368c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_0 0x28980 1378c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_1 0x28984 1388c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_2 0x28988 1398c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_3 0x2898c 1408c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_4 0x28990 1418c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_5 0x28994 1428c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_6 0x28998 1438c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_7 0x2899c 1448c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_8 0x289a0 1458c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_9 0x289a4 1468c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_10 0x289a8 1478c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_11 0x289ac 1488c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_12 0x289b0 1498c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_13 0x289b4 1508c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_14 0x289b8 1518c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_VS_15 0x289bc 1528c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_0 0x289c0 1538c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_1 0x289c4 1548c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_2 0x289c8 1558c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_3 0x289cc 1568c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_4 0x289d0 1578c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_5 0x289d4 1588c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_6 0x289d8 1598c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_7 0x289dc 1608c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_8 0x289e0 1618c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_9 0x289e4 1628c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_10 0x289e8 1638c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_11 0x289ec 1648c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_12 0x289f0 1658c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_13 0x289f4 1668c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_14 0x289f8 1678c2ecf20Sopenharmony_ci#define SQ_ALU_CONST_CACHE_GS_15 0x289fc 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_ci#define CONFIG_MEMSIZE 0x5428 1708c2ecf20Sopenharmony_ci#define CONFIG_CNTL 0x5424 1718c2ecf20Sopenharmony_ci#define CP_STALLED_STAT1 0x8674 1728c2ecf20Sopenharmony_ci#define CP_STALLED_STAT2 0x8678 1738c2ecf20Sopenharmony_ci#define CP_BUSY_STAT 0x867C 1748c2ecf20Sopenharmony_ci#define CP_STAT 0x8680 1758c2ecf20Sopenharmony_ci#define CP_COHER_BASE 0x85F8 1768c2ecf20Sopenharmony_ci#define CP_DEBUG 0xC1FC 1778c2ecf20Sopenharmony_ci#define R_0086D8_CP_ME_CNTL 0x86D8 1788c2ecf20Sopenharmony_ci#define S_0086D8_CP_PFP_HALT(x) (((x) & 1)<<26) 1798c2ecf20Sopenharmony_ci#define C_0086D8_CP_PFP_HALT(x) ((x) & 0xFBFFFFFF) 1808c2ecf20Sopenharmony_ci#define S_0086D8_CP_ME_HALT(x) (((x) & 1)<<28) 1818c2ecf20Sopenharmony_ci#define C_0086D8_CP_ME_HALT(x) ((x) & 0xEFFFFFFF) 1828c2ecf20Sopenharmony_ci#define CP_ME_RAM_DATA 0xC160 1838c2ecf20Sopenharmony_ci#define CP_ME_RAM_RADDR 0xC158 1848c2ecf20Sopenharmony_ci#define CP_ME_RAM_WADDR 0xC15C 1858c2ecf20Sopenharmony_ci#define CP_MEQ_THRESHOLDS 0x8764 1868c2ecf20Sopenharmony_ci#define MEQ_END(x) ((x) << 16) 1878c2ecf20Sopenharmony_ci#define ROQ_END(x) ((x) << 24) 1888c2ecf20Sopenharmony_ci#define CP_PERFMON_CNTL 0x87FC 1898c2ecf20Sopenharmony_ci#define CP_PFP_UCODE_ADDR 0xC150 1908c2ecf20Sopenharmony_ci#define CP_PFP_UCODE_DATA 0xC154 1918c2ecf20Sopenharmony_ci#define CP_QUEUE_THRESHOLDS 0x8760 1928c2ecf20Sopenharmony_ci#define ROQ_IB1_START(x) ((x) << 0) 1938c2ecf20Sopenharmony_ci#define ROQ_IB2_START(x) ((x) << 8) 1948c2ecf20Sopenharmony_ci#define CP_RB_BASE 0xC100 1958c2ecf20Sopenharmony_ci#define CP_RB_CNTL 0xC104 1968c2ecf20Sopenharmony_ci#define RB_BUFSZ(x) ((x) << 0) 1978c2ecf20Sopenharmony_ci#define RB_BLKSZ(x) ((x) << 8) 1988c2ecf20Sopenharmony_ci#define RB_NO_UPDATE (1 << 27) 1998c2ecf20Sopenharmony_ci#define RB_RPTR_WR_ENA (1 << 31) 2008c2ecf20Sopenharmony_ci#define BUF_SWAP_32BIT (2 << 16) 2018c2ecf20Sopenharmony_ci#define CP_RB_RPTR 0x8700 2028c2ecf20Sopenharmony_ci#define CP_RB_RPTR_ADDR 0xC10C 2038c2ecf20Sopenharmony_ci#define RB_RPTR_SWAP(x) ((x) << 0) 2048c2ecf20Sopenharmony_ci#define CP_RB_RPTR_ADDR_HI 0xC110 2058c2ecf20Sopenharmony_ci#define CP_RB_RPTR_WR 0xC108 2068c2ecf20Sopenharmony_ci#define CP_RB_WPTR 0xC114 2078c2ecf20Sopenharmony_ci#define CP_RB_WPTR_ADDR 0xC118 2088c2ecf20Sopenharmony_ci#define CP_RB_WPTR_ADDR_HI 0xC11C 2098c2ecf20Sopenharmony_ci#define CP_RB_WPTR_DELAY 0x8704 2108c2ecf20Sopenharmony_ci#define CP_ROQ_IB1_STAT 0x8784 2118c2ecf20Sopenharmony_ci#define CP_ROQ_IB2_STAT 0x8788 2128c2ecf20Sopenharmony_ci#define CP_SEM_WAIT_TIMER 0x85BC 2138c2ecf20Sopenharmony_ci 2148c2ecf20Sopenharmony_ci#define DB_DEBUG 0x9830 2158c2ecf20Sopenharmony_ci#define PREZ_MUST_WAIT_FOR_POSTZ_DONE (1 << 31) 2168c2ecf20Sopenharmony_ci#define DB_DEPTH_BASE 0x2800C 2178c2ecf20Sopenharmony_ci#define DB_HTILE_DATA_BASE 0x28014 2188c2ecf20Sopenharmony_ci#define DB_HTILE_SURFACE 0x28D24 2198c2ecf20Sopenharmony_ci#define S_028D24_HTILE_WIDTH(x) (((x) & 0x1) << 0) 2208c2ecf20Sopenharmony_ci#define G_028D24_HTILE_WIDTH(x) (((x) >> 0) & 0x1) 2218c2ecf20Sopenharmony_ci#define C_028D24_HTILE_WIDTH 0xFFFFFFFE 2228c2ecf20Sopenharmony_ci#define S_028D24_HTILE_HEIGHT(x) (((x) & 0x1) << 1) 2238c2ecf20Sopenharmony_ci#define G_028D24_HTILE_HEIGHT(x) (((x) >> 1) & 0x1) 2248c2ecf20Sopenharmony_ci#define C_028D24_HTILE_HEIGHT 0xFFFFFFFD 2258c2ecf20Sopenharmony_ci#define G_028D24_LINEAR(x) (((x) >> 2) & 0x1) 2268c2ecf20Sopenharmony_ci#define DB_WATERMARKS 0x9838 2278c2ecf20Sopenharmony_ci#define DEPTH_FREE(x) ((x) << 0) 2288c2ecf20Sopenharmony_ci#define DEPTH_FLUSH(x) ((x) << 5) 2298c2ecf20Sopenharmony_ci#define DEPTH_PENDING_FREE(x) ((x) << 15) 2308c2ecf20Sopenharmony_ci#define DEPTH_CACHELINE_FREE(x) ((x) << 20) 2318c2ecf20Sopenharmony_ci 2328c2ecf20Sopenharmony_ci#define DCP_TILING_CONFIG 0x6CA0 2338c2ecf20Sopenharmony_ci#define PIPE_TILING(x) ((x) << 1) 2348c2ecf20Sopenharmony_ci#define BANK_TILING(x) ((x) << 4) 2358c2ecf20Sopenharmony_ci#define GROUP_SIZE(x) ((x) << 6) 2368c2ecf20Sopenharmony_ci#define ROW_TILING(x) ((x) << 8) 2378c2ecf20Sopenharmony_ci#define BANK_SWAPS(x) ((x) << 11) 2388c2ecf20Sopenharmony_ci#define SAMPLE_SPLIT(x) ((x) << 14) 2398c2ecf20Sopenharmony_ci#define BACKEND_MAP(x) ((x) << 16) 2408c2ecf20Sopenharmony_ci 2418c2ecf20Sopenharmony_ci#define GB_TILING_CONFIG 0x98F0 2428c2ecf20Sopenharmony_ci#define PIPE_TILING__SHIFT 1 2438c2ecf20Sopenharmony_ci#define PIPE_TILING__MASK 0x0000000e 2448c2ecf20Sopenharmony_ci 2458c2ecf20Sopenharmony_ci#define GC_USER_SHADER_PIPE_CONFIG 0x8954 2468c2ecf20Sopenharmony_ci#define INACTIVE_QD_PIPES(x) ((x) << 8) 2478c2ecf20Sopenharmony_ci#define INACTIVE_QD_PIPES_MASK 0x0000FF00 2488c2ecf20Sopenharmony_ci#define INACTIVE_SIMDS(x) ((x) << 16) 2498c2ecf20Sopenharmony_ci#define INACTIVE_SIMDS_MASK 0x00FF0000 2508c2ecf20Sopenharmony_ci 2518c2ecf20Sopenharmony_ci#define SQ_CONFIG 0x8c00 2528c2ecf20Sopenharmony_ci# define VC_ENABLE (1 << 0) 2538c2ecf20Sopenharmony_ci# define EXPORT_SRC_C (1 << 1) 2548c2ecf20Sopenharmony_ci# define DX9_CONSTS (1 << 2) 2558c2ecf20Sopenharmony_ci# define ALU_INST_PREFER_VECTOR (1 << 3) 2568c2ecf20Sopenharmony_ci# define DX10_CLAMP (1 << 4) 2578c2ecf20Sopenharmony_ci# define CLAUSE_SEQ_PRIO(x) ((x) << 8) 2588c2ecf20Sopenharmony_ci# define PS_PRIO(x) ((x) << 24) 2598c2ecf20Sopenharmony_ci# define VS_PRIO(x) ((x) << 26) 2608c2ecf20Sopenharmony_ci# define GS_PRIO(x) ((x) << 28) 2618c2ecf20Sopenharmony_ci# define ES_PRIO(x) ((x) << 30) 2628c2ecf20Sopenharmony_ci#define SQ_GPR_RESOURCE_MGMT_1 0x8c04 2638c2ecf20Sopenharmony_ci# define NUM_PS_GPRS(x) ((x) << 0) 2648c2ecf20Sopenharmony_ci# define NUM_VS_GPRS(x) ((x) << 16) 2658c2ecf20Sopenharmony_ci# define NUM_CLAUSE_TEMP_GPRS(x) ((x) << 28) 2668c2ecf20Sopenharmony_ci#define SQ_GPR_RESOURCE_MGMT_2 0x8c08 2678c2ecf20Sopenharmony_ci# define NUM_GS_GPRS(x) ((x) << 0) 2688c2ecf20Sopenharmony_ci# define NUM_ES_GPRS(x) ((x) << 16) 2698c2ecf20Sopenharmony_ci#define SQ_THREAD_RESOURCE_MGMT 0x8c0c 2708c2ecf20Sopenharmony_ci# define NUM_PS_THREADS(x) ((x) << 0) 2718c2ecf20Sopenharmony_ci# define NUM_VS_THREADS(x) ((x) << 8) 2728c2ecf20Sopenharmony_ci# define NUM_GS_THREADS(x) ((x) << 16) 2738c2ecf20Sopenharmony_ci# define NUM_ES_THREADS(x) ((x) << 24) 2748c2ecf20Sopenharmony_ci#define SQ_STACK_RESOURCE_MGMT_1 0x8c10 2758c2ecf20Sopenharmony_ci# define NUM_PS_STACK_ENTRIES(x) ((x) << 0) 2768c2ecf20Sopenharmony_ci# define NUM_VS_STACK_ENTRIES(x) ((x) << 16) 2778c2ecf20Sopenharmony_ci#define SQ_STACK_RESOURCE_MGMT_2 0x8c14 2788c2ecf20Sopenharmony_ci# define NUM_GS_STACK_ENTRIES(x) ((x) << 0) 2798c2ecf20Sopenharmony_ci# define NUM_ES_STACK_ENTRIES(x) ((x) << 16) 2808c2ecf20Sopenharmony_ci#define SQ_ESGS_RING_BASE 0x8c40 2818c2ecf20Sopenharmony_ci#define SQ_GSVS_RING_BASE 0x8c48 2828c2ecf20Sopenharmony_ci#define SQ_ESTMP_RING_BASE 0x8c50 2838c2ecf20Sopenharmony_ci#define SQ_GSTMP_RING_BASE 0x8c58 2848c2ecf20Sopenharmony_ci#define SQ_VSTMP_RING_BASE 0x8c60 2858c2ecf20Sopenharmony_ci#define SQ_PSTMP_RING_BASE 0x8c68 2868c2ecf20Sopenharmony_ci#define SQ_FBUF_RING_BASE 0x8c70 2878c2ecf20Sopenharmony_ci#define SQ_REDUC_RING_BASE 0x8c78 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ci#define GRBM_CNTL 0x8000 2908c2ecf20Sopenharmony_ci# define GRBM_READ_TIMEOUT(x) ((x) << 0) 2918c2ecf20Sopenharmony_ci#define GRBM_STATUS 0x8010 2928c2ecf20Sopenharmony_ci#define CMDFIFO_AVAIL_MASK 0x0000001F 2938c2ecf20Sopenharmony_ci#define GUI_ACTIVE (1<<31) 2948c2ecf20Sopenharmony_ci#define GRBM_STATUS2 0x8014 2958c2ecf20Sopenharmony_ci#define GRBM_SOFT_RESET 0x8020 2968c2ecf20Sopenharmony_ci#define SOFT_RESET_CP (1<<0) 2978c2ecf20Sopenharmony_ci 2988c2ecf20Sopenharmony_ci#define CG_THERMAL_CTRL 0x7F0 2998c2ecf20Sopenharmony_ci#define DIG_THERM_DPM(x) ((x) << 12) 3008c2ecf20Sopenharmony_ci#define DIG_THERM_DPM_MASK 0x000FF000 3018c2ecf20Sopenharmony_ci#define DIG_THERM_DPM_SHIFT 12 3028c2ecf20Sopenharmony_ci#define CG_THERMAL_STATUS 0x7F4 3038c2ecf20Sopenharmony_ci#define ASIC_T(x) ((x) << 0) 3048c2ecf20Sopenharmony_ci#define ASIC_T_MASK 0x1FF 3058c2ecf20Sopenharmony_ci#define ASIC_T_SHIFT 0 3068c2ecf20Sopenharmony_ci#define CG_THERMAL_INT 0x7F8 3078c2ecf20Sopenharmony_ci#define DIG_THERM_INTH(x) ((x) << 8) 3088c2ecf20Sopenharmony_ci#define DIG_THERM_INTH_MASK 0x0000FF00 3098c2ecf20Sopenharmony_ci#define DIG_THERM_INTH_SHIFT 8 3108c2ecf20Sopenharmony_ci#define DIG_THERM_INTL(x) ((x) << 16) 3118c2ecf20Sopenharmony_ci#define DIG_THERM_INTL_MASK 0x00FF0000 3128c2ecf20Sopenharmony_ci#define DIG_THERM_INTL_SHIFT 16 3138c2ecf20Sopenharmony_ci#define THERM_INT_MASK_HIGH (1 << 24) 3148c2ecf20Sopenharmony_ci#define THERM_INT_MASK_LOW (1 << 25) 3158c2ecf20Sopenharmony_ci 3168c2ecf20Sopenharmony_ci#define RV770_CG_THERMAL_INT 0x734 3178c2ecf20Sopenharmony_ci 3188c2ecf20Sopenharmony_ci#define HDP_HOST_PATH_CNTL 0x2C00 3198c2ecf20Sopenharmony_ci#define HDP_NONSURFACE_BASE 0x2C04 3208c2ecf20Sopenharmony_ci#define HDP_NONSURFACE_INFO 0x2C08 3218c2ecf20Sopenharmony_ci#define HDP_NONSURFACE_SIZE 0x2C0C 3228c2ecf20Sopenharmony_ci#define HDP_REG_COHERENCY_FLUSH_CNTL 0x54A0 3238c2ecf20Sopenharmony_ci#define HDP_TILING_CONFIG 0x2F3C 3248c2ecf20Sopenharmony_ci#define HDP_DEBUG1 0x2F34 3258c2ecf20Sopenharmony_ci 3268c2ecf20Sopenharmony_ci#define MC_CONFIG 0x2000 3278c2ecf20Sopenharmony_ci#define MC_VM_AGP_TOP 0x2184 3288c2ecf20Sopenharmony_ci#define MC_VM_AGP_BOT 0x2188 3298c2ecf20Sopenharmony_ci#define MC_VM_AGP_BASE 0x218C 3308c2ecf20Sopenharmony_ci#define MC_VM_FB_LOCATION 0x2180 3318c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCB_RD_UVD_CNTL 0x2124 3328c2ecf20Sopenharmony_ci#define ENABLE_L1_TLB (1 << 0) 3338c2ecf20Sopenharmony_ci#define ENABLE_L1_FRAGMENT_PROCESSING (1 << 1) 3348c2ecf20Sopenharmony_ci#define ENABLE_L1_STRICT_ORDERING (1 << 2) 3358c2ecf20Sopenharmony_ci#define SYSTEM_ACCESS_MODE_MASK 0x000000C0 3368c2ecf20Sopenharmony_ci#define SYSTEM_ACCESS_MODE_SHIFT 6 3378c2ecf20Sopenharmony_ci#define SYSTEM_ACCESS_MODE_PA_ONLY (0 << 6) 3388c2ecf20Sopenharmony_ci#define SYSTEM_ACCESS_MODE_USE_SYS_MAP (1 << 6) 3398c2ecf20Sopenharmony_ci#define SYSTEM_ACCESS_MODE_IN_SYS (2 << 6) 3408c2ecf20Sopenharmony_ci#define SYSTEM_ACCESS_MODE_NOT_IN_SYS (3 << 6) 3418c2ecf20Sopenharmony_ci#define SYSTEM_APERTURE_UNMAPPED_ACCESS_PASS_THRU (0 << 8) 3428c2ecf20Sopenharmony_ci#define SYSTEM_APERTURE_UNMAPPED_ACCESS_DEFAULT_PAGE (1 << 8) 3438c2ecf20Sopenharmony_ci#define ENABLE_SEMAPHORE_MODE (1 << 10) 3448c2ecf20Sopenharmony_ci#define ENABLE_WAIT_L2_QUERY (1 << 11) 3458c2ecf20Sopenharmony_ci#define EFFECTIVE_L1_TLB_SIZE(x) (((x) & 7) << 12) 3468c2ecf20Sopenharmony_ci#define EFFECTIVE_L1_TLB_SIZE_MASK 0x00007000 3478c2ecf20Sopenharmony_ci#define EFFECTIVE_L1_TLB_SIZE_SHIFT 12 3488c2ecf20Sopenharmony_ci#define EFFECTIVE_L1_QUEUE_SIZE(x) (((x) & 7) << 15) 3498c2ecf20Sopenharmony_ci#define EFFECTIVE_L1_QUEUE_SIZE_MASK 0x00038000 3508c2ecf20Sopenharmony_ci#define EFFECTIVE_L1_QUEUE_SIZE_SHIFT 15 3518c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCD_RD_A_CNTL 0x219C 3528c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCD_RD_B_CNTL 0x21A0 3538c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCB_RD_GFX_CNTL 0x21FC 3548c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCB_RD_HDP_CNTL 0x2204 3558c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCB_RD_PDMA_CNTL 0x2208 3568c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCB_RD_SEM_CNTL 0x220C 3578c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCB_RD_SYS_CNTL 0x2200 3588c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCB_WR_UVD_CNTL 0x212c 3598c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCD_WR_A_CNTL 0x21A4 3608c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCD_WR_B_CNTL 0x21A8 3618c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCB_WR_GFX_CNTL 0x2210 3628c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCB_WR_HDP_CNTL 0x2218 3638c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCB_WR_PDMA_CNTL 0x221C 3648c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCB_WR_SEM_CNTL 0x2220 3658c2ecf20Sopenharmony_ci#define MC_VM_L1_TLB_MCB_WR_SYS_CNTL 0x2214 3668c2ecf20Sopenharmony_ci#define MC_VM_SYSTEM_APERTURE_LOW_ADDR 0x2190 3678c2ecf20Sopenharmony_ci#define LOGICAL_PAGE_NUMBER_MASK 0x000FFFFF 3688c2ecf20Sopenharmony_ci#define LOGICAL_PAGE_NUMBER_SHIFT 0 3698c2ecf20Sopenharmony_ci#define MC_VM_SYSTEM_APERTURE_HIGH_ADDR 0x2194 3708c2ecf20Sopenharmony_ci#define MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR 0x2198 3718c2ecf20Sopenharmony_ci 3728c2ecf20Sopenharmony_ci#define RS_DQ_RD_RET_CONF 0x2348 3738c2ecf20Sopenharmony_ci 3748c2ecf20Sopenharmony_ci#define PA_CL_ENHANCE 0x8A14 3758c2ecf20Sopenharmony_ci#define CLIP_VTX_REORDER_ENA (1 << 0) 3768c2ecf20Sopenharmony_ci#define NUM_CLIP_SEQ(x) ((x) << 1) 3778c2ecf20Sopenharmony_ci#define PA_SC_AA_CONFIG 0x28C04 3788c2ecf20Sopenharmony_ci#define PA_SC_AA_SAMPLE_LOCS_2S 0x8B40 3798c2ecf20Sopenharmony_ci#define PA_SC_AA_SAMPLE_LOCS_4S 0x8B44 3808c2ecf20Sopenharmony_ci#define PA_SC_AA_SAMPLE_LOCS_8S_WD0 0x8B48 3818c2ecf20Sopenharmony_ci#define PA_SC_AA_SAMPLE_LOCS_8S_WD1 0x8B4C 3828c2ecf20Sopenharmony_ci#define S0_X(x) ((x) << 0) 3838c2ecf20Sopenharmony_ci#define S0_Y(x) ((x) << 4) 3848c2ecf20Sopenharmony_ci#define S1_X(x) ((x) << 8) 3858c2ecf20Sopenharmony_ci#define S1_Y(x) ((x) << 12) 3868c2ecf20Sopenharmony_ci#define S2_X(x) ((x) << 16) 3878c2ecf20Sopenharmony_ci#define S2_Y(x) ((x) << 20) 3888c2ecf20Sopenharmony_ci#define S3_X(x) ((x) << 24) 3898c2ecf20Sopenharmony_ci#define S3_Y(x) ((x) << 28) 3908c2ecf20Sopenharmony_ci#define S4_X(x) ((x) << 0) 3918c2ecf20Sopenharmony_ci#define S4_Y(x) ((x) << 4) 3928c2ecf20Sopenharmony_ci#define S5_X(x) ((x) << 8) 3938c2ecf20Sopenharmony_ci#define S5_Y(x) ((x) << 12) 3948c2ecf20Sopenharmony_ci#define S6_X(x) ((x) << 16) 3958c2ecf20Sopenharmony_ci#define S6_Y(x) ((x) << 20) 3968c2ecf20Sopenharmony_ci#define S7_X(x) ((x) << 24) 3978c2ecf20Sopenharmony_ci#define S7_Y(x) ((x) << 28) 3988c2ecf20Sopenharmony_ci#define PA_SC_CLIPRECT_RULE 0x2820c 3998c2ecf20Sopenharmony_ci#define PA_SC_ENHANCE 0x8BF0 4008c2ecf20Sopenharmony_ci#define FORCE_EOV_MAX_CLK_CNT(x) ((x) << 0) 4018c2ecf20Sopenharmony_ci#define FORCE_EOV_MAX_TILE_CNT(x) ((x) << 12) 4028c2ecf20Sopenharmony_ci#define PA_SC_LINE_STIPPLE 0x28A0C 4038c2ecf20Sopenharmony_ci#define PA_SC_LINE_STIPPLE_STATE 0x8B10 4048c2ecf20Sopenharmony_ci#define PA_SC_MODE_CNTL 0x28A4C 4058c2ecf20Sopenharmony_ci#define PA_SC_MULTI_CHIP_CNTL 0x8B20 4068c2ecf20Sopenharmony_ci 4078c2ecf20Sopenharmony_ci#define PA_SC_SCREEN_SCISSOR_TL 0x28030 4088c2ecf20Sopenharmony_ci#define PA_SC_GENERIC_SCISSOR_TL 0x28240 4098c2ecf20Sopenharmony_ci#define PA_SC_WINDOW_SCISSOR_TL 0x28204 4108c2ecf20Sopenharmony_ci 4118c2ecf20Sopenharmony_ci#define PCIE_PORT_INDEX 0x0038 4128c2ecf20Sopenharmony_ci#define PCIE_PORT_DATA 0x003C 4138c2ecf20Sopenharmony_ci 4148c2ecf20Sopenharmony_ci#define CHMAP 0x2004 4158c2ecf20Sopenharmony_ci#define NOOFCHAN_SHIFT 12 4168c2ecf20Sopenharmony_ci#define NOOFCHAN_MASK 0x00003000 4178c2ecf20Sopenharmony_ci 4188c2ecf20Sopenharmony_ci#define RAMCFG 0x2408 4198c2ecf20Sopenharmony_ci#define NOOFBANK_SHIFT 0 4208c2ecf20Sopenharmony_ci#define NOOFBANK_MASK 0x00000001 4218c2ecf20Sopenharmony_ci#define NOOFRANK_SHIFT 1 4228c2ecf20Sopenharmony_ci#define NOOFRANK_MASK 0x00000002 4238c2ecf20Sopenharmony_ci#define NOOFROWS_SHIFT 2 4248c2ecf20Sopenharmony_ci#define NOOFROWS_MASK 0x0000001C 4258c2ecf20Sopenharmony_ci#define NOOFCOLS_SHIFT 5 4268c2ecf20Sopenharmony_ci#define NOOFCOLS_MASK 0x00000060 4278c2ecf20Sopenharmony_ci#define CHANSIZE_SHIFT 7 4288c2ecf20Sopenharmony_ci#define CHANSIZE_MASK 0x00000080 4298c2ecf20Sopenharmony_ci#define BURSTLENGTH_SHIFT 8 4308c2ecf20Sopenharmony_ci#define BURSTLENGTH_MASK 0x00000100 4318c2ecf20Sopenharmony_ci#define CHANSIZE_OVERRIDE (1 << 10) 4328c2ecf20Sopenharmony_ci 4338c2ecf20Sopenharmony_ci#define SCRATCH_REG0 0x8500 4348c2ecf20Sopenharmony_ci#define SCRATCH_REG1 0x8504 4358c2ecf20Sopenharmony_ci#define SCRATCH_REG2 0x8508 4368c2ecf20Sopenharmony_ci#define SCRATCH_REG3 0x850C 4378c2ecf20Sopenharmony_ci#define SCRATCH_REG4 0x8510 4388c2ecf20Sopenharmony_ci#define SCRATCH_REG5 0x8514 4398c2ecf20Sopenharmony_ci#define SCRATCH_REG6 0x8518 4408c2ecf20Sopenharmony_ci#define SCRATCH_REG7 0x851C 4418c2ecf20Sopenharmony_ci#define SCRATCH_UMSK 0x8540 4428c2ecf20Sopenharmony_ci#define SCRATCH_ADDR 0x8544 4438c2ecf20Sopenharmony_ci 4448c2ecf20Sopenharmony_ci#define SPI_CONFIG_CNTL 0x9100 4458c2ecf20Sopenharmony_ci#define GPR_WRITE_PRIORITY(x) ((x) << 0) 4468c2ecf20Sopenharmony_ci#define DISABLE_INTERP_1 (1 << 5) 4478c2ecf20Sopenharmony_ci#define SPI_CONFIG_CNTL_1 0x913C 4488c2ecf20Sopenharmony_ci#define VTX_DONE_DELAY(x) ((x) << 0) 4498c2ecf20Sopenharmony_ci#define INTERP_ONE_PRIM_PER_ROW (1 << 4) 4508c2ecf20Sopenharmony_ci#define SPI_INPUT_Z 0x286D8 4518c2ecf20Sopenharmony_ci#define SPI_PS_IN_CONTROL_0 0x286CC 4528c2ecf20Sopenharmony_ci#define NUM_INTERP(x) ((x)<<0) 4538c2ecf20Sopenharmony_ci#define POSITION_ENA (1<<8) 4548c2ecf20Sopenharmony_ci#define POSITION_CENTROID (1<<9) 4558c2ecf20Sopenharmony_ci#define POSITION_ADDR(x) ((x)<<10) 4568c2ecf20Sopenharmony_ci#define PARAM_GEN(x) ((x)<<15) 4578c2ecf20Sopenharmony_ci#define PARAM_GEN_ADDR(x) ((x)<<19) 4588c2ecf20Sopenharmony_ci#define BARYC_SAMPLE_CNTL(x) ((x)<<26) 4598c2ecf20Sopenharmony_ci#define PERSP_GRADIENT_ENA (1<<28) 4608c2ecf20Sopenharmony_ci#define LINEAR_GRADIENT_ENA (1<<29) 4618c2ecf20Sopenharmony_ci#define POSITION_SAMPLE (1<<30) 4628c2ecf20Sopenharmony_ci#define BARYC_AT_SAMPLE_ENA (1<<31) 4638c2ecf20Sopenharmony_ci#define SPI_PS_IN_CONTROL_1 0x286D0 4648c2ecf20Sopenharmony_ci#define GEN_INDEX_PIX (1<<0) 4658c2ecf20Sopenharmony_ci#define GEN_INDEX_PIX_ADDR(x) ((x)<<1) 4668c2ecf20Sopenharmony_ci#define FRONT_FACE_ENA (1<<8) 4678c2ecf20Sopenharmony_ci#define FRONT_FACE_CHAN(x) ((x)<<9) 4688c2ecf20Sopenharmony_ci#define FRONT_FACE_ALL_BITS (1<<11) 4698c2ecf20Sopenharmony_ci#define FRONT_FACE_ADDR(x) ((x)<<12) 4708c2ecf20Sopenharmony_ci#define FOG_ADDR(x) ((x)<<17) 4718c2ecf20Sopenharmony_ci#define FIXED_PT_POSITION_ENA (1<<24) 4728c2ecf20Sopenharmony_ci#define FIXED_PT_POSITION_ADDR(x) ((x)<<25) 4738c2ecf20Sopenharmony_ci 4748c2ecf20Sopenharmony_ci#define SQ_MS_FIFO_SIZES 0x8CF0 4758c2ecf20Sopenharmony_ci#define CACHE_FIFO_SIZE(x) ((x) << 0) 4768c2ecf20Sopenharmony_ci#define FETCH_FIFO_HIWATER(x) ((x) << 8) 4778c2ecf20Sopenharmony_ci#define DONE_FIFO_HIWATER(x) ((x) << 16) 4788c2ecf20Sopenharmony_ci#define ALU_UPDATE_FIFO_HIWATER(x) ((x) << 24) 4798c2ecf20Sopenharmony_ci#define SQ_PGM_START_ES 0x28880 4808c2ecf20Sopenharmony_ci#define SQ_PGM_START_FS 0x28894 4818c2ecf20Sopenharmony_ci#define SQ_PGM_START_GS 0x2886C 4828c2ecf20Sopenharmony_ci#define SQ_PGM_START_PS 0x28840 4838c2ecf20Sopenharmony_ci#define SQ_PGM_RESOURCES_PS 0x28850 4848c2ecf20Sopenharmony_ci#define SQ_PGM_EXPORTS_PS 0x28854 4858c2ecf20Sopenharmony_ci#define SQ_PGM_CF_OFFSET_PS 0x288cc 4868c2ecf20Sopenharmony_ci#define SQ_PGM_START_VS 0x28858 4878c2ecf20Sopenharmony_ci#define SQ_PGM_RESOURCES_VS 0x28868 4888c2ecf20Sopenharmony_ci#define SQ_PGM_CF_OFFSET_VS 0x288d0 4898c2ecf20Sopenharmony_ci 4908c2ecf20Sopenharmony_ci#define SQ_VTX_CONSTANT_WORD0_0 0x30000 4918c2ecf20Sopenharmony_ci#define SQ_VTX_CONSTANT_WORD1_0 0x30004 4928c2ecf20Sopenharmony_ci#define SQ_VTX_CONSTANT_WORD2_0 0x30008 4938c2ecf20Sopenharmony_ci# define SQ_VTXC_BASE_ADDR_HI(x) ((x) << 0) 4948c2ecf20Sopenharmony_ci# define SQ_VTXC_STRIDE(x) ((x) << 8) 4958c2ecf20Sopenharmony_ci# define SQ_VTXC_ENDIAN_SWAP(x) ((x) << 30) 4968c2ecf20Sopenharmony_ci# define SQ_ENDIAN_NONE 0 4978c2ecf20Sopenharmony_ci# define SQ_ENDIAN_8IN16 1 4988c2ecf20Sopenharmony_ci# define SQ_ENDIAN_8IN32 2 4998c2ecf20Sopenharmony_ci#define SQ_VTX_CONSTANT_WORD3_0 0x3000c 5008c2ecf20Sopenharmony_ci#define SQ_VTX_CONSTANT_WORD6_0 0x38018 5018c2ecf20Sopenharmony_ci#define S__SQ_VTX_CONSTANT_TYPE(x) (((x) & 3) << 30) 5028c2ecf20Sopenharmony_ci#define G__SQ_VTX_CONSTANT_TYPE(x) (((x) >> 30) & 3) 5038c2ecf20Sopenharmony_ci#define SQ_TEX_VTX_INVALID_TEXTURE 0x0 5048c2ecf20Sopenharmony_ci#define SQ_TEX_VTX_INVALID_BUFFER 0x1 5058c2ecf20Sopenharmony_ci#define SQ_TEX_VTX_VALID_TEXTURE 0x2 5068c2ecf20Sopenharmony_ci#define SQ_TEX_VTX_VALID_BUFFER 0x3 5078c2ecf20Sopenharmony_ci 5088c2ecf20Sopenharmony_ci 5098c2ecf20Sopenharmony_ci#define SX_MISC 0x28350 5108c2ecf20Sopenharmony_ci#define SX_MEMORY_EXPORT_BASE 0x9010 5118c2ecf20Sopenharmony_ci#define SX_DEBUG_1 0x9054 5128c2ecf20Sopenharmony_ci#define SMX_EVENT_RELEASE (1 << 0) 5138c2ecf20Sopenharmony_ci#define ENABLE_NEW_SMX_ADDRESS (1 << 16) 5148c2ecf20Sopenharmony_ci 5158c2ecf20Sopenharmony_ci#define TA_CNTL_AUX 0x9508 5168c2ecf20Sopenharmony_ci#define DISABLE_CUBE_WRAP (1 << 0) 5178c2ecf20Sopenharmony_ci#define DISABLE_CUBE_ANISO (1 << 1) 5188c2ecf20Sopenharmony_ci#define SYNC_GRADIENT (1 << 24) 5198c2ecf20Sopenharmony_ci#define SYNC_WALKER (1 << 25) 5208c2ecf20Sopenharmony_ci#define SYNC_ALIGNER (1 << 26) 5218c2ecf20Sopenharmony_ci#define BILINEAR_PRECISION_6_BIT (0 << 31) 5228c2ecf20Sopenharmony_ci#define BILINEAR_PRECISION_8_BIT (1 << 31) 5238c2ecf20Sopenharmony_ci 5248c2ecf20Sopenharmony_ci#define TC_CNTL 0x9608 5258c2ecf20Sopenharmony_ci#define TC_L2_SIZE(x) ((x)<<5) 5268c2ecf20Sopenharmony_ci#define L2_DISABLE_LATE_HIT (1<<9) 5278c2ecf20Sopenharmony_ci 5288c2ecf20Sopenharmony_ci#define VC_ENHANCE 0x9714 5298c2ecf20Sopenharmony_ci 5308c2ecf20Sopenharmony_ci#define VGT_CACHE_INVALIDATION 0x88C4 5318c2ecf20Sopenharmony_ci#define CACHE_INVALIDATION(x) ((x)<<0) 5328c2ecf20Sopenharmony_ci#define VC_ONLY 0 5338c2ecf20Sopenharmony_ci#define TC_ONLY 1 5348c2ecf20Sopenharmony_ci#define VC_AND_TC 2 5358c2ecf20Sopenharmony_ci#define VGT_DMA_BASE 0x287E8 5368c2ecf20Sopenharmony_ci#define VGT_DMA_BASE_HI 0x287E4 5378c2ecf20Sopenharmony_ci#define VGT_ES_PER_GS 0x88CC 5388c2ecf20Sopenharmony_ci#define VGT_GS_PER_ES 0x88C8 5398c2ecf20Sopenharmony_ci#define VGT_GS_PER_VS 0x88E8 5408c2ecf20Sopenharmony_ci#define VGT_GS_VERTEX_REUSE 0x88D4 5418c2ecf20Sopenharmony_ci#define VGT_PRIMITIVE_TYPE 0x8958 5428c2ecf20Sopenharmony_ci#define VGT_NUM_INSTANCES 0x8974 5438c2ecf20Sopenharmony_ci#define VGT_OUT_DEALLOC_CNTL 0x28C5C 5448c2ecf20Sopenharmony_ci#define DEALLOC_DIST_MASK 0x0000007F 5458c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BASE_OFFSET_0 0x28B10 5468c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BASE_OFFSET_1 0x28B14 5478c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BASE_OFFSET_2 0x28B18 5488c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BASE_OFFSET_3 0x28B1c 5498c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BASE_OFFSET_HI_0 0x28B44 5508c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BASE_OFFSET_HI_1 0x28B48 5518c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BASE_OFFSET_HI_2 0x28B4c 5528c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BASE_OFFSET_HI_3 0x28B50 5538c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BUFFER_BASE_0 0x28AD8 5548c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BUFFER_BASE_1 0x28AE8 5558c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BUFFER_BASE_2 0x28AF8 5568c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BUFFER_BASE_3 0x28B08 5578c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BUFFER_OFFSET_0 0x28ADC 5588c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BUFFER_OFFSET_1 0x28AEC 5598c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BUFFER_OFFSET_2 0x28AFC 5608c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BUFFER_OFFSET_3 0x28B0C 5618c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BUFFER_SIZE_0 0x28AD0 5628c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BUFFER_SIZE_1 0x28AE0 5638c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BUFFER_SIZE_2 0x28AF0 5648c2ecf20Sopenharmony_ci#define VGT_STRMOUT_BUFFER_SIZE_3 0x28B00 5658c2ecf20Sopenharmony_ci 5668c2ecf20Sopenharmony_ci#define VGT_STRMOUT_EN 0x28AB0 5678c2ecf20Sopenharmony_ci#define VGT_VERTEX_REUSE_BLOCK_CNTL 0x28C58 5688c2ecf20Sopenharmony_ci#define VTX_REUSE_DEPTH_MASK 0x000000FF 5698c2ecf20Sopenharmony_ci#define VGT_EVENT_INITIATOR 0x28a90 5708c2ecf20Sopenharmony_ci# define CACHE_FLUSH_AND_INV_EVENT_TS (0x14 << 0) 5718c2ecf20Sopenharmony_ci# define CACHE_FLUSH_AND_INV_EVENT (0x16 << 0) 5728c2ecf20Sopenharmony_ci 5738c2ecf20Sopenharmony_ci#define VM_CONTEXT0_CNTL 0x1410 5748c2ecf20Sopenharmony_ci#define ENABLE_CONTEXT (1 << 0) 5758c2ecf20Sopenharmony_ci#define PAGE_TABLE_DEPTH(x) (((x) & 3) << 1) 5768c2ecf20Sopenharmony_ci#define RANGE_PROTECTION_FAULT_ENABLE_DEFAULT (1 << 4) 5778c2ecf20Sopenharmony_ci#define VM_CONTEXT0_INVALIDATION_LOW_ADDR 0x1490 5788c2ecf20Sopenharmony_ci#define VM_CONTEXT0_INVALIDATION_HIGH_ADDR 0x14B0 5798c2ecf20Sopenharmony_ci#define VM_CONTEXT0_PAGE_TABLE_BASE_ADDR 0x1574 5808c2ecf20Sopenharmony_ci#define VM_CONTEXT0_PAGE_TABLE_START_ADDR 0x1594 5818c2ecf20Sopenharmony_ci#define VM_CONTEXT0_PAGE_TABLE_END_ADDR 0x15B4 5828c2ecf20Sopenharmony_ci#define VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR 0x1554 5838c2ecf20Sopenharmony_ci#define VM_CONTEXT0_REQUEST_RESPONSE 0x1470 5848c2ecf20Sopenharmony_ci#define REQUEST_TYPE(x) (((x) & 0xf) << 0) 5858c2ecf20Sopenharmony_ci#define RESPONSE_TYPE_MASK 0x000000F0 5868c2ecf20Sopenharmony_ci#define RESPONSE_TYPE_SHIFT 4 5878c2ecf20Sopenharmony_ci#define VM_L2_CNTL 0x1400 5888c2ecf20Sopenharmony_ci#define ENABLE_L2_CACHE (1 << 0) 5898c2ecf20Sopenharmony_ci#define ENABLE_L2_FRAGMENT_PROCESSING (1 << 1) 5908c2ecf20Sopenharmony_ci#define ENABLE_L2_PTE_CACHE_LRU_UPDATE_BY_WRITE (1 << 9) 5918c2ecf20Sopenharmony_ci#define EFFECTIVE_L2_QUEUE_SIZE(x) (((x) & 7) << 13) 5928c2ecf20Sopenharmony_ci#define VM_L2_CNTL2 0x1404 5938c2ecf20Sopenharmony_ci#define INVALIDATE_ALL_L1_TLBS (1 << 0) 5948c2ecf20Sopenharmony_ci#define INVALIDATE_L2_CACHE (1 << 1) 5958c2ecf20Sopenharmony_ci#define VM_L2_CNTL3 0x1408 5968c2ecf20Sopenharmony_ci#define BANK_SELECT_0(x) (((x) & 0x1f) << 0) 5978c2ecf20Sopenharmony_ci#define BANK_SELECT_1(x) (((x) & 0x1f) << 5) 5988c2ecf20Sopenharmony_ci#define L2_CACHE_UPDATE_MODE(x) (((x) & 3) << 10) 5998c2ecf20Sopenharmony_ci#define VM_L2_STATUS 0x140C 6008c2ecf20Sopenharmony_ci#define L2_BUSY (1 << 0) 6018c2ecf20Sopenharmony_ci 6028c2ecf20Sopenharmony_ci#define WAIT_UNTIL 0x8040 6038c2ecf20Sopenharmony_ci#define WAIT_CP_DMA_IDLE_bit (1 << 8) 6048c2ecf20Sopenharmony_ci#define WAIT_2D_IDLE_bit (1 << 14) 6058c2ecf20Sopenharmony_ci#define WAIT_3D_IDLE_bit (1 << 15) 6068c2ecf20Sopenharmony_ci#define WAIT_2D_IDLECLEAN_bit (1 << 16) 6078c2ecf20Sopenharmony_ci#define WAIT_3D_IDLECLEAN_bit (1 << 17) 6088c2ecf20Sopenharmony_ci 6098c2ecf20Sopenharmony_ci/* async DMA */ 6108c2ecf20Sopenharmony_ci#define DMA_TILING_CONFIG 0x3ec4 6118c2ecf20Sopenharmony_ci#define DMA_CONFIG 0x3e4c 6128c2ecf20Sopenharmony_ci 6138c2ecf20Sopenharmony_ci#define DMA_RB_CNTL 0xd000 6148c2ecf20Sopenharmony_ci# define DMA_RB_ENABLE (1 << 0) 6158c2ecf20Sopenharmony_ci# define DMA_RB_SIZE(x) ((x) << 1) /* log2 */ 6168c2ecf20Sopenharmony_ci# define DMA_RB_SWAP_ENABLE (1 << 9) /* 8IN32 */ 6178c2ecf20Sopenharmony_ci# define DMA_RPTR_WRITEBACK_ENABLE (1 << 12) 6188c2ecf20Sopenharmony_ci# define DMA_RPTR_WRITEBACK_SWAP_ENABLE (1 << 13) /* 8IN32 */ 6198c2ecf20Sopenharmony_ci# define DMA_RPTR_WRITEBACK_TIMER(x) ((x) << 16) /* log2 */ 6208c2ecf20Sopenharmony_ci#define DMA_RB_BASE 0xd004 6218c2ecf20Sopenharmony_ci#define DMA_RB_RPTR 0xd008 6228c2ecf20Sopenharmony_ci#define DMA_RB_WPTR 0xd00c 6238c2ecf20Sopenharmony_ci 6248c2ecf20Sopenharmony_ci#define DMA_RB_RPTR_ADDR_HI 0xd01c 6258c2ecf20Sopenharmony_ci#define DMA_RB_RPTR_ADDR_LO 0xd020 6268c2ecf20Sopenharmony_ci 6278c2ecf20Sopenharmony_ci#define DMA_IB_CNTL 0xd024 6288c2ecf20Sopenharmony_ci# define DMA_IB_ENABLE (1 << 0) 6298c2ecf20Sopenharmony_ci# define DMA_IB_SWAP_ENABLE (1 << 4) 6308c2ecf20Sopenharmony_ci#define DMA_IB_RPTR 0xd028 6318c2ecf20Sopenharmony_ci#define DMA_CNTL 0xd02c 6328c2ecf20Sopenharmony_ci# define TRAP_ENABLE (1 << 0) 6338c2ecf20Sopenharmony_ci# define SEM_INCOMPLETE_INT_ENABLE (1 << 1) 6348c2ecf20Sopenharmony_ci# define SEM_WAIT_INT_ENABLE (1 << 2) 6358c2ecf20Sopenharmony_ci# define DATA_SWAP_ENABLE (1 << 3) 6368c2ecf20Sopenharmony_ci# define FENCE_SWAP_ENABLE (1 << 4) 6378c2ecf20Sopenharmony_ci# define CTXEMPTY_INT_ENABLE (1 << 28) 6388c2ecf20Sopenharmony_ci#define DMA_STATUS_REG 0xd034 6398c2ecf20Sopenharmony_ci# define DMA_IDLE (1 << 0) 6408c2ecf20Sopenharmony_ci#define DMA_SEM_INCOMPLETE_TIMER_CNTL 0xd044 6418c2ecf20Sopenharmony_ci#define DMA_SEM_WAIT_FAIL_TIMER_CNTL 0xd048 6428c2ecf20Sopenharmony_ci#define DMA_MODE 0xd0bc 6438c2ecf20Sopenharmony_ci 6448c2ecf20Sopenharmony_ci/* async DMA packets */ 6458c2ecf20Sopenharmony_ci#define DMA_PACKET(cmd, t, s, n) ((((cmd) & 0xF) << 28) | \ 6468c2ecf20Sopenharmony_ci (((t) & 0x1) << 23) | \ 6478c2ecf20Sopenharmony_ci (((s) & 0x1) << 22) | \ 6488c2ecf20Sopenharmony_ci (((n) & 0xFFFF) << 0)) 6498c2ecf20Sopenharmony_ci/* async DMA Packet types */ 6508c2ecf20Sopenharmony_ci#define DMA_PACKET_WRITE 0x2 6518c2ecf20Sopenharmony_ci#define DMA_PACKET_COPY 0x3 6528c2ecf20Sopenharmony_ci#define DMA_PACKET_INDIRECT_BUFFER 0x4 6538c2ecf20Sopenharmony_ci#define DMA_PACKET_SEMAPHORE 0x5 6548c2ecf20Sopenharmony_ci#define DMA_PACKET_FENCE 0x6 6558c2ecf20Sopenharmony_ci#define DMA_PACKET_TRAP 0x7 6568c2ecf20Sopenharmony_ci#define DMA_PACKET_CONSTANT_FILL 0xd /* 7xx only */ 6578c2ecf20Sopenharmony_ci#define DMA_PACKET_NOP 0xf 6588c2ecf20Sopenharmony_ci 6598c2ecf20Sopenharmony_ci#define IH_RB_CNTL 0x3e00 6608c2ecf20Sopenharmony_ci# define IH_RB_ENABLE (1 << 0) 6618c2ecf20Sopenharmony_ci# define IH_RB_SIZE(x) ((x) << 1) /* log2 */ 6628c2ecf20Sopenharmony_ci# define IH_RB_FULL_DRAIN_ENABLE (1 << 6) 6638c2ecf20Sopenharmony_ci# define IH_WPTR_WRITEBACK_ENABLE (1 << 8) 6648c2ecf20Sopenharmony_ci# define IH_WPTR_WRITEBACK_TIMER(x) ((x) << 9) /* log2 */ 6658c2ecf20Sopenharmony_ci# define IH_WPTR_OVERFLOW_ENABLE (1 << 16) 6668c2ecf20Sopenharmony_ci# define IH_WPTR_OVERFLOW_CLEAR (1 << 31) 6678c2ecf20Sopenharmony_ci#define IH_RB_BASE 0x3e04 6688c2ecf20Sopenharmony_ci#define IH_RB_RPTR 0x3e08 6698c2ecf20Sopenharmony_ci#define IH_RB_WPTR 0x3e0c 6708c2ecf20Sopenharmony_ci# define RB_OVERFLOW (1 << 0) 6718c2ecf20Sopenharmony_ci# define WPTR_OFFSET_MASK 0x3fffc 6728c2ecf20Sopenharmony_ci#define IH_RB_WPTR_ADDR_HI 0x3e10 6738c2ecf20Sopenharmony_ci#define IH_RB_WPTR_ADDR_LO 0x3e14 6748c2ecf20Sopenharmony_ci#define IH_CNTL 0x3e18 6758c2ecf20Sopenharmony_ci# define ENABLE_INTR (1 << 0) 6768c2ecf20Sopenharmony_ci# define IH_MC_SWAP(x) ((x) << 1) 6778c2ecf20Sopenharmony_ci# define IH_MC_SWAP_NONE 0 6788c2ecf20Sopenharmony_ci# define IH_MC_SWAP_16BIT 1 6798c2ecf20Sopenharmony_ci# define IH_MC_SWAP_32BIT 2 6808c2ecf20Sopenharmony_ci# define IH_MC_SWAP_64BIT 3 6818c2ecf20Sopenharmony_ci# define RPTR_REARM (1 << 4) 6828c2ecf20Sopenharmony_ci# define MC_WRREQ_CREDIT(x) ((x) << 15) 6838c2ecf20Sopenharmony_ci# define MC_WR_CLEAN_CNT(x) ((x) << 20) 6848c2ecf20Sopenharmony_ci 6858c2ecf20Sopenharmony_ci#define RLC_CNTL 0x3f00 6868c2ecf20Sopenharmony_ci# define RLC_ENABLE (1 << 0) 6878c2ecf20Sopenharmony_ci#define RLC_HB_BASE 0x3f10 6888c2ecf20Sopenharmony_ci#define RLC_HB_CNTL 0x3f0c 6898c2ecf20Sopenharmony_ci#define RLC_HB_RPTR 0x3f20 6908c2ecf20Sopenharmony_ci#define RLC_HB_WPTR 0x3f1c 6918c2ecf20Sopenharmony_ci#define RLC_HB_WPTR_LSB_ADDR 0x3f14 6928c2ecf20Sopenharmony_ci#define RLC_HB_WPTR_MSB_ADDR 0x3f18 6938c2ecf20Sopenharmony_ci#define RLC_GPU_CLOCK_COUNT_LSB 0x3f38 6948c2ecf20Sopenharmony_ci#define RLC_GPU_CLOCK_COUNT_MSB 0x3f3c 6958c2ecf20Sopenharmony_ci#define RLC_CAPTURE_GPU_CLOCK_COUNT 0x3f40 6968c2ecf20Sopenharmony_ci#define RLC_MC_CNTL 0x3f44 6978c2ecf20Sopenharmony_ci#define RLC_UCODE_CNTL 0x3f48 6988c2ecf20Sopenharmony_ci#define RLC_UCODE_ADDR 0x3f2c 6998c2ecf20Sopenharmony_ci#define RLC_UCODE_DATA 0x3f30 7008c2ecf20Sopenharmony_ci 7018c2ecf20Sopenharmony_ci#define SRBM_SOFT_RESET 0xe60 7028c2ecf20Sopenharmony_ci# define SOFT_RESET_BIF (1 << 1) 7038c2ecf20Sopenharmony_ci# define SOFT_RESET_DMA (1 << 12) 7048c2ecf20Sopenharmony_ci# define SOFT_RESET_RLC (1 << 13) 7058c2ecf20Sopenharmony_ci# define SOFT_RESET_UVD (1 << 18) 7068c2ecf20Sopenharmony_ci# define RV770_SOFT_RESET_DMA (1 << 20) 7078c2ecf20Sopenharmony_ci 7088c2ecf20Sopenharmony_ci#define BIF_SCRATCH0 0x5438 7098c2ecf20Sopenharmony_ci 7108c2ecf20Sopenharmony_ci#define BUS_CNTL 0x5420 7118c2ecf20Sopenharmony_ci# define BIOS_ROM_DIS (1 << 1) 7128c2ecf20Sopenharmony_ci# define VGA_COHE_SPEC_TIMER_DIS (1 << 9) 7138c2ecf20Sopenharmony_ci 7148c2ecf20Sopenharmony_ci#define CP_INT_CNTL 0xc124 7158c2ecf20Sopenharmony_ci# define CNTX_BUSY_INT_ENABLE (1 << 19) 7168c2ecf20Sopenharmony_ci# define CNTX_EMPTY_INT_ENABLE (1 << 20) 7178c2ecf20Sopenharmony_ci# define SCRATCH_INT_ENABLE (1 << 25) 7188c2ecf20Sopenharmony_ci# define TIME_STAMP_INT_ENABLE (1 << 26) 7198c2ecf20Sopenharmony_ci# define IB2_INT_ENABLE (1 << 29) 7208c2ecf20Sopenharmony_ci# define IB1_INT_ENABLE (1 << 30) 7218c2ecf20Sopenharmony_ci# define RB_INT_ENABLE (1 << 31) 7228c2ecf20Sopenharmony_ci#define CP_INT_STATUS 0xc128 7238c2ecf20Sopenharmony_ci# define SCRATCH_INT_STAT (1 << 25) 7248c2ecf20Sopenharmony_ci# define TIME_STAMP_INT_STAT (1 << 26) 7258c2ecf20Sopenharmony_ci# define IB2_INT_STAT (1 << 29) 7268c2ecf20Sopenharmony_ci# define IB1_INT_STAT (1 << 30) 7278c2ecf20Sopenharmony_ci# define RB_INT_STAT (1 << 31) 7288c2ecf20Sopenharmony_ci 7298c2ecf20Sopenharmony_ci#define GRBM_INT_CNTL 0x8060 7308c2ecf20Sopenharmony_ci# define RDERR_INT_ENABLE (1 << 0) 7318c2ecf20Sopenharmony_ci# define WAIT_COUNT_TIMEOUT_INT_ENABLE (1 << 1) 7328c2ecf20Sopenharmony_ci# define GUI_IDLE_INT_ENABLE (1 << 19) 7338c2ecf20Sopenharmony_ci 7348c2ecf20Sopenharmony_ci#define INTERRUPT_CNTL 0x5468 7358c2ecf20Sopenharmony_ci# define IH_DUMMY_RD_OVERRIDE (1 << 0) 7368c2ecf20Sopenharmony_ci# define IH_DUMMY_RD_EN (1 << 1) 7378c2ecf20Sopenharmony_ci# define IH_REQ_NONSNOOP_EN (1 << 3) 7388c2ecf20Sopenharmony_ci# define GEN_IH_INT_EN (1 << 8) 7398c2ecf20Sopenharmony_ci#define INTERRUPT_CNTL2 0x546c 7408c2ecf20Sopenharmony_ci 7418c2ecf20Sopenharmony_ci#define D1MODE_VBLANK_STATUS 0x6534 7428c2ecf20Sopenharmony_ci#define D2MODE_VBLANK_STATUS 0x6d34 7438c2ecf20Sopenharmony_ci# define DxMODE_VBLANK_OCCURRED (1 << 0) 7448c2ecf20Sopenharmony_ci# define DxMODE_VBLANK_ACK (1 << 4) 7458c2ecf20Sopenharmony_ci# define DxMODE_VBLANK_STAT (1 << 12) 7468c2ecf20Sopenharmony_ci# define DxMODE_VBLANK_INTERRUPT (1 << 16) 7478c2ecf20Sopenharmony_ci# define DxMODE_VBLANK_INTERRUPT_TYPE (1 << 17) 7488c2ecf20Sopenharmony_ci#define D1MODE_VLINE_STATUS 0x653c 7498c2ecf20Sopenharmony_ci#define D2MODE_VLINE_STATUS 0x6d3c 7508c2ecf20Sopenharmony_ci# define DxMODE_VLINE_OCCURRED (1 << 0) 7518c2ecf20Sopenharmony_ci# define DxMODE_VLINE_ACK (1 << 4) 7528c2ecf20Sopenharmony_ci# define DxMODE_VLINE_STAT (1 << 12) 7538c2ecf20Sopenharmony_ci# define DxMODE_VLINE_INTERRUPT (1 << 16) 7548c2ecf20Sopenharmony_ci# define DxMODE_VLINE_INTERRUPT_TYPE (1 << 17) 7558c2ecf20Sopenharmony_ci#define DxMODE_INT_MASK 0x6540 7568c2ecf20Sopenharmony_ci# define D1MODE_VBLANK_INT_MASK (1 << 0) 7578c2ecf20Sopenharmony_ci# define D1MODE_VLINE_INT_MASK (1 << 4) 7588c2ecf20Sopenharmony_ci# define D2MODE_VBLANK_INT_MASK (1 << 8) 7598c2ecf20Sopenharmony_ci# define D2MODE_VLINE_INT_MASK (1 << 12) 7608c2ecf20Sopenharmony_ci#define DCE3_DISP_INTERRUPT_STATUS 0x7ddc 7618c2ecf20Sopenharmony_ci# define DC_HPD1_INTERRUPT (1 << 18) 7628c2ecf20Sopenharmony_ci# define DC_HPD2_INTERRUPT (1 << 19) 7638c2ecf20Sopenharmony_ci#define DISP_INTERRUPT_STATUS 0x7edc 7648c2ecf20Sopenharmony_ci# define LB_D1_VLINE_INTERRUPT (1 << 2) 7658c2ecf20Sopenharmony_ci# define LB_D2_VLINE_INTERRUPT (1 << 3) 7668c2ecf20Sopenharmony_ci# define LB_D1_VBLANK_INTERRUPT (1 << 4) 7678c2ecf20Sopenharmony_ci# define LB_D2_VBLANK_INTERRUPT (1 << 5) 7688c2ecf20Sopenharmony_ci# define DACA_AUTODETECT_INTERRUPT (1 << 16) 7698c2ecf20Sopenharmony_ci# define DACB_AUTODETECT_INTERRUPT (1 << 17) 7708c2ecf20Sopenharmony_ci# define DC_HOT_PLUG_DETECT1_INTERRUPT (1 << 18) 7718c2ecf20Sopenharmony_ci# define DC_HOT_PLUG_DETECT2_INTERRUPT (1 << 19) 7728c2ecf20Sopenharmony_ci# define DC_I2C_SW_DONE_INTERRUPT (1 << 20) 7738c2ecf20Sopenharmony_ci# define DC_I2C_HW_DONE_INTERRUPT (1 << 21) 7748c2ecf20Sopenharmony_ci#define DISP_INTERRUPT_STATUS_CONTINUE 0x7ee8 7758c2ecf20Sopenharmony_ci#define DCE3_DISP_INTERRUPT_STATUS_CONTINUE 0x7de8 7768c2ecf20Sopenharmony_ci# define DC_HPD4_INTERRUPT (1 << 14) 7778c2ecf20Sopenharmony_ci# define DC_HPD4_RX_INTERRUPT (1 << 15) 7788c2ecf20Sopenharmony_ci# define DC_HPD3_INTERRUPT (1 << 28) 7798c2ecf20Sopenharmony_ci# define DC_HPD1_RX_INTERRUPT (1 << 29) 7808c2ecf20Sopenharmony_ci# define DC_HPD2_RX_INTERRUPT (1 << 30) 7818c2ecf20Sopenharmony_ci#define DCE3_DISP_INTERRUPT_STATUS_CONTINUE2 0x7dec 7828c2ecf20Sopenharmony_ci# define DC_HPD3_RX_INTERRUPT (1 << 0) 7838c2ecf20Sopenharmony_ci# define DIGA_DP_VID_STREAM_DISABLE_INTERRUPT (1 << 1) 7848c2ecf20Sopenharmony_ci# define DIGA_DP_STEER_FIFO_OVERFLOW_INTERRUPT (1 << 2) 7858c2ecf20Sopenharmony_ci# define DIGB_DP_VID_STREAM_DISABLE_INTERRUPT (1 << 3) 7868c2ecf20Sopenharmony_ci# define DIGB_DP_STEER_FIFO_OVERFLOW_INTERRUPT (1 << 4) 7878c2ecf20Sopenharmony_ci# define AUX1_SW_DONE_INTERRUPT (1 << 5) 7888c2ecf20Sopenharmony_ci# define AUX1_LS_DONE_INTERRUPT (1 << 6) 7898c2ecf20Sopenharmony_ci# define AUX2_SW_DONE_INTERRUPT (1 << 7) 7908c2ecf20Sopenharmony_ci# define AUX2_LS_DONE_INTERRUPT (1 << 8) 7918c2ecf20Sopenharmony_ci# define AUX3_SW_DONE_INTERRUPT (1 << 9) 7928c2ecf20Sopenharmony_ci# define AUX3_LS_DONE_INTERRUPT (1 << 10) 7938c2ecf20Sopenharmony_ci# define AUX4_SW_DONE_INTERRUPT (1 << 11) 7948c2ecf20Sopenharmony_ci# define AUX4_LS_DONE_INTERRUPT (1 << 12) 7958c2ecf20Sopenharmony_ci# define DIGA_DP_FAST_TRAINING_COMPLETE_INTERRUPT (1 << 13) 7968c2ecf20Sopenharmony_ci# define DIGB_DP_FAST_TRAINING_COMPLETE_INTERRUPT (1 << 14) 7978c2ecf20Sopenharmony_ci/* DCE 3.2 */ 7988c2ecf20Sopenharmony_ci# define AUX5_SW_DONE_INTERRUPT (1 << 15) 7998c2ecf20Sopenharmony_ci# define AUX5_LS_DONE_INTERRUPT (1 << 16) 8008c2ecf20Sopenharmony_ci# define AUX6_SW_DONE_INTERRUPT (1 << 17) 8018c2ecf20Sopenharmony_ci# define AUX6_LS_DONE_INTERRUPT (1 << 18) 8028c2ecf20Sopenharmony_ci# define DC_HPD5_INTERRUPT (1 << 19) 8038c2ecf20Sopenharmony_ci# define DC_HPD5_RX_INTERRUPT (1 << 20) 8048c2ecf20Sopenharmony_ci# define DC_HPD6_INTERRUPT (1 << 21) 8058c2ecf20Sopenharmony_ci# define DC_HPD6_RX_INTERRUPT (1 << 22) 8068c2ecf20Sopenharmony_ci 8078c2ecf20Sopenharmony_ci#define DACA_AUTO_DETECT_CONTROL 0x7828 8088c2ecf20Sopenharmony_ci#define DACB_AUTO_DETECT_CONTROL 0x7a28 8098c2ecf20Sopenharmony_ci#define DCE3_DACA_AUTO_DETECT_CONTROL 0x7028 8108c2ecf20Sopenharmony_ci#define DCE3_DACB_AUTO_DETECT_CONTROL 0x7128 8118c2ecf20Sopenharmony_ci# define DACx_AUTODETECT_MODE(x) ((x) << 0) 8128c2ecf20Sopenharmony_ci# define DACx_AUTODETECT_MODE_NONE 0 8138c2ecf20Sopenharmony_ci# define DACx_AUTODETECT_MODE_CONNECT 1 8148c2ecf20Sopenharmony_ci# define DACx_AUTODETECT_MODE_DISCONNECT 2 8158c2ecf20Sopenharmony_ci# define DACx_AUTODETECT_FRAME_TIME_COUNTER(x) ((x) << 8) 8168c2ecf20Sopenharmony_ci/* bit 18 = R/C, 17 = G/Y, 16 = B/Comp */ 8178c2ecf20Sopenharmony_ci# define DACx_AUTODETECT_CHECK_MASK(x) ((x) << 16) 8188c2ecf20Sopenharmony_ci 8198c2ecf20Sopenharmony_ci#define DCE3_DACA_AUTODETECT_INT_CONTROL 0x7038 8208c2ecf20Sopenharmony_ci#define DCE3_DACB_AUTODETECT_INT_CONTROL 0x7138 8218c2ecf20Sopenharmony_ci#define DACA_AUTODETECT_INT_CONTROL 0x7838 8228c2ecf20Sopenharmony_ci#define DACB_AUTODETECT_INT_CONTROL 0x7a38 8238c2ecf20Sopenharmony_ci# define DACx_AUTODETECT_ACK (1 << 0) 8248c2ecf20Sopenharmony_ci# define DACx_AUTODETECT_INT_ENABLE (1 << 16) 8258c2ecf20Sopenharmony_ci 8268c2ecf20Sopenharmony_ci#define DC_HOT_PLUG_DETECT1_CONTROL 0x7d00 8278c2ecf20Sopenharmony_ci#define DC_HOT_PLUG_DETECT2_CONTROL 0x7d10 8288c2ecf20Sopenharmony_ci#define DC_HOT_PLUG_DETECT3_CONTROL 0x7d24 8298c2ecf20Sopenharmony_ci# define DC_HOT_PLUG_DETECTx_EN (1 << 0) 8308c2ecf20Sopenharmony_ci 8318c2ecf20Sopenharmony_ci#define DC_HOT_PLUG_DETECT1_INT_STATUS 0x7d04 8328c2ecf20Sopenharmony_ci#define DC_HOT_PLUG_DETECT2_INT_STATUS 0x7d14 8338c2ecf20Sopenharmony_ci#define DC_HOT_PLUG_DETECT3_INT_STATUS 0x7d28 8348c2ecf20Sopenharmony_ci# define DC_HOT_PLUG_DETECTx_INT_STATUS (1 << 0) 8358c2ecf20Sopenharmony_ci# define DC_HOT_PLUG_DETECTx_SENSE (1 << 1) 8368c2ecf20Sopenharmony_ci 8378c2ecf20Sopenharmony_ci/* DCE 3.0 */ 8388c2ecf20Sopenharmony_ci#define DC_HPD1_INT_STATUS 0x7d00 8398c2ecf20Sopenharmony_ci#define DC_HPD2_INT_STATUS 0x7d0c 8408c2ecf20Sopenharmony_ci#define DC_HPD3_INT_STATUS 0x7d18 8418c2ecf20Sopenharmony_ci#define DC_HPD4_INT_STATUS 0x7d24 8428c2ecf20Sopenharmony_ci/* DCE 3.2 */ 8438c2ecf20Sopenharmony_ci#define DC_HPD5_INT_STATUS 0x7dc0 8448c2ecf20Sopenharmony_ci#define DC_HPD6_INT_STATUS 0x7df4 8458c2ecf20Sopenharmony_ci# define DC_HPDx_INT_STATUS (1 << 0) 8468c2ecf20Sopenharmony_ci# define DC_HPDx_SENSE (1 << 1) 8478c2ecf20Sopenharmony_ci# define DC_HPDx_RX_INT_STATUS (1 << 8) 8488c2ecf20Sopenharmony_ci 8498c2ecf20Sopenharmony_ci#define DC_HOT_PLUG_DETECT1_INT_CONTROL 0x7d08 8508c2ecf20Sopenharmony_ci#define DC_HOT_PLUG_DETECT2_INT_CONTROL 0x7d18 8518c2ecf20Sopenharmony_ci#define DC_HOT_PLUG_DETECT3_INT_CONTROL 0x7d2c 8528c2ecf20Sopenharmony_ci# define DC_HOT_PLUG_DETECTx_INT_ACK (1 << 0) 8538c2ecf20Sopenharmony_ci# define DC_HOT_PLUG_DETECTx_INT_POLARITY (1 << 8) 8548c2ecf20Sopenharmony_ci# define DC_HOT_PLUG_DETECTx_INT_EN (1 << 16) 8558c2ecf20Sopenharmony_ci/* DCE 3.0 */ 8568c2ecf20Sopenharmony_ci#define DC_HPD1_INT_CONTROL 0x7d04 8578c2ecf20Sopenharmony_ci#define DC_HPD2_INT_CONTROL 0x7d10 8588c2ecf20Sopenharmony_ci#define DC_HPD3_INT_CONTROL 0x7d1c 8598c2ecf20Sopenharmony_ci#define DC_HPD4_INT_CONTROL 0x7d28 8608c2ecf20Sopenharmony_ci/* DCE 3.2 */ 8618c2ecf20Sopenharmony_ci#define DC_HPD5_INT_CONTROL 0x7dc4 8628c2ecf20Sopenharmony_ci#define DC_HPD6_INT_CONTROL 0x7df8 8638c2ecf20Sopenharmony_ci# define DC_HPDx_INT_ACK (1 << 0) 8648c2ecf20Sopenharmony_ci# define DC_HPDx_INT_POLARITY (1 << 8) 8658c2ecf20Sopenharmony_ci# define DC_HPDx_INT_EN (1 << 16) 8668c2ecf20Sopenharmony_ci# define DC_HPDx_RX_INT_ACK (1 << 20) 8678c2ecf20Sopenharmony_ci# define DC_HPDx_RX_INT_EN (1 << 24) 8688c2ecf20Sopenharmony_ci 8698c2ecf20Sopenharmony_ci/* DCE 3.0 */ 8708c2ecf20Sopenharmony_ci#define DC_HPD1_CONTROL 0x7d08 8718c2ecf20Sopenharmony_ci#define DC_HPD2_CONTROL 0x7d14 8728c2ecf20Sopenharmony_ci#define DC_HPD3_CONTROL 0x7d20 8738c2ecf20Sopenharmony_ci#define DC_HPD4_CONTROL 0x7d2c 8748c2ecf20Sopenharmony_ci/* DCE 3.2 */ 8758c2ecf20Sopenharmony_ci#define DC_HPD5_CONTROL 0x7dc8 8768c2ecf20Sopenharmony_ci#define DC_HPD6_CONTROL 0x7dfc 8778c2ecf20Sopenharmony_ci# define DC_HPDx_CONNECTION_TIMER(x) ((x) << 0) 8788c2ecf20Sopenharmony_ci# define DC_HPDx_RX_INT_TIMER(x) ((x) << 16) 8798c2ecf20Sopenharmony_ci/* DCE 3.2 */ 8808c2ecf20Sopenharmony_ci# define DC_HPDx_EN (1 << 28) 8818c2ecf20Sopenharmony_ci 8828c2ecf20Sopenharmony_ci#define D1GRPH_INTERRUPT_STATUS 0x6158 8838c2ecf20Sopenharmony_ci#define D2GRPH_INTERRUPT_STATUS 0x6958 8848c2ecf20Sopenharmony_ci# define DxGRPH_PFLIP_INT_OCCURRED (1 << 0) 8858c2ecf20Sopenharmony_ci# define DxGRPH_PFLIP_INT_CLEAR (1 << 8) 8868c2ecf20Sopenharmony_ci#define D1GRPH_INTERRUPT_CONTROL 0x615c 8878c2ecf20Sopenharmony_ci#define D2GRPH_INTERRUPT_CONTROL 0x695c 8888c2ecf20Sopenharmony_ci# define DxGRPH_PFLIP_INT_MASK (1 << 0) 8898c2ecf20Sopenharmony_ci# define DxGRPH_PFLIP_INT_TYPE (1 << 8) 8908c2ecf20Sopenharmony_ci 8918c2ecf20Sopenharmony_ci/* PCIE link stuff */ 8928c2ecf20Sopenharmony_ci#define PCIE_LC_TRAINING_CNTL 0xa1 /* PCIE_P */ 8938c2ecf20Sopenharmony_ci# define LC_POINT_7_PLUS_EN (1 << 6) 8948c2ecf20Sopenharmony_ci#define PCIE_LC_LINK_WIDTH_CNTL 0xa2 /* PCIE_P */ 8958c2ecf20Sopenharmony_ci# define LC_LINK_WIDTH_SHIFT 0 8968c2ecf20Sopenharmony_ci# define LC_LINK_WIDTH_MASK 0x7 8978c2ecf20Sopenharmony_ci# define LC_LINK_WIDTH_X0 0 8988c2ecf20Sopenharmony_ci# define LC_LINK_WIDTH_X1 1 8998c2ecf20Sopenharmony_ci# define LC_LINK_WIDTH_X2 2 9008c2ecf20Sopenharmony_ci# define LC_LINK_WIDTH_X4 3 9018c2ecf20Sopenharmony_ci# define LC_LINK_WIDTH_X8 4 9028c2ecf20Sopenharmony_ci# define LC_LINK_WIDTH_X16 6 9038c2ecf20Sopenharmony_ci# define LC_LINK_WIDTH_RD_SHIFT 4 9048c2ecf20Sopenharmony_ci# define LC_LINK_WIDTH_RD_MASK 0x70 9058c2ecf20Sopenharmony_ci# define LC_RECONFIG_ARC_MISSING_ESCAPE (1 << 7) 9068c2ecf20Sopenharmony_ci# define LC_RECONFIG_NOW (1 << 8) 9078c2ecf20Sopenharmony_ci# define LC_RENEGOTIATION_SUPPORT (1 << 9) 9088c2ecf20Sopenharmony_ci# define LC_RENEGOTIATE_EN (1 << 10) 9098c2ecf20Sopenharmony_ci# define LC_SHORT_RECONFIG_EN (1 << 11) 9108c2ecf20Sopenharmony_ci# define LC_UPCONFIGURE_SUPPORT (1 << 12) 9118c2ecf20Sopenharmony_ci# define LC_UPCONFIGURE_DIS (1 << 13) 9128c2ecf20Sopenharmony_ci#define PCIE_LC_SPEED_CNTL 0xa4 /* PCIE_P */ 9138c2ecf20Sopenharmony_ci# define LC_GEN2_EN_STRAP (1 << 0) 9148c2ecf20Sopenharmony_ci# define LC_TARGET_LINK_SPEED_OVERRIDE_EN (1 << 1) 9158c2ecf20Sopenharmony_ci# define LC_FORCE_EN_HW_SPEED_CHANGE (1 << 5) 9168c2ecf20Sopenharmony_ci# define LC_FORCE_DIS_HW_SPEED_CHANGE (1 << 6) 9178c2ecf20Sopenharmony_ci# define LC_SPEED_CHANGE_ATTEMPTS_ALLOWED_MASK (0x3 << 8) 9188c2ecf20Sopenharmony_ci# define LC_SPEED_CHANGE_ATTEMPTS_ALLOWED_SHIFT 3 9198c2ecf20Sopenharmony_ci# define LC_CURRENT_DATA_RATE (1 << 11) 9208c2ecf20Sopenharmony_ci# define LC_VOLTAGE_TIMER_SEL_MASK (0xf << 14) 9218c2ecf20Sopenharmony_ci# define LC_CLR_FAILED_SPD_CHANGE_CNT (1 << 21) 9228c2ecf20Sopenharmony_ci# define LC_OTHER_SIDE_EVER_SENT_GEN2 (1 << 23) 9238c2ecf20Sopenharmony_ci# define LC_OTHER_SIDE_SUPPORTS_GEN2 (1 << 24) 9248c2ecf20Sopenharmony_ci#define MM_CFGREGS_CNTL 0x544c 9258c2ecf20Sopenharmony_ci# define MM_WR_TO_CFG_EN (1 << 3) 9268c2ecf20Sopenharmony_ci#define LINK_CNTL2 0x88 /* F0 */ 9278c2ecf20Sopenharmony_ci# define TARGET_LINK_SPEED_MASK (0xf << 0) 9288c2ecf20Sopenharmony_ci# define SELECTABLE_DEEMPHASIS (1 << 6) 9298c2ecf20Sopenharmony_ci 9308c2ecf20Sopenharmony_ci/* Audio */ 9318c2ecf20Sopenharmony_ci#define AZ_HOT_PLUG_CONTROL 0x7300 9328c2ecf20Sopenharmony_ci# define AZ_FORCE_CODEC_WAKE (1 << 0) 9338c2ecf20Sopenharmony_ci# define JACK_DETECTION_ENABLE (1 << 4) 9348c2ecf20Sopenharmony_ci# define UNSOLICITED_RESPONSE_ENABLE (1 << 8) 9358c2ecf20Sopenharmony_ci# define CODEC_HOT_PLUG_ENABLE (1 << 12) 9368c2ecf20Sopenharmony_ci# define AUDIO_ENABLED (1 << 31) 9378c2ecf20Sopenharmony_ci/* DCE3 adds */ 9388c2ecf20Sopenharmony_ci# define PIN0_JACK_DETECTION_ENABLE (1 << 4) 9398c2ecf20Sopenharmony_ci# define PIN1_JACK_DETECTION_ENABLE (1 << 5) 9408c2ecf20Sopenharmony_ci# define PIN2_JACK_DETECTION_ENABLE (1 << 6) 9418c2ecf20Sopenharmony_ci# define PIN3_JACK_DETECTION_ENABLE (1 << 7) 9428c2ecf20Sopenharmony_ci# define PIN0_AUDIO_ENABLED (1 << 24) 9438c2ecf20Sopenharmony_ci# define PIN1_AUDIO_ENABLED (1 << 25) 9448c2ecf20Sopenharmony_ci# define PIN2_AUDIO_ENABLED (1 << 26) 9458c2ecf20Sopenharmony_ci# define PIN3_AUDIO_ENABLED (1 << 27) 9468c2ecf20Sopenharmony_ci 9478c2ecf20Sopenharmony_ci/* Audio clocks DCE 2.0/3.0 */ 9488c2ecf20Sopenharmony_ci#define AUDIO_DTO 0x7340 9498c2ecf20Sopenharmony_ci# define AUDIO_DTO_PHASE(x) (((x) & 0xffff) << 0) 9508c2ecf20Sopenharmony_ci# define AUDIO_DTO_MODULE(x) (((x) & 0xffff) << 16) 9518c2ecf20Sopenharmony_ci 9528c2ecf20Sopenharmony_ci/* Audio clocks DCE 3.2 */ 9538c2ecf20Sopenharmony_ci#define DCCG_AUDIO_DTO0_PHASE 0x0514 9548c2ecf20Sopenharmony_ci#define DCCG_AUDIO_DTO0_MODULE 0x0518 9558c2ecf20Sopenharmony_ci#define DCCG_AUDIO_DTO0_LOAD 0x051c 9568c2ecf20Sopenharmony_ci# define DTO_LOAD (1 << 31) 9578c2ecf20Sopenharmony_ci#define DCCG_AUDIO_DTO0_CNTL 0x0520 9588c2ecf20Sopenharmony_ci# define DCCG_AUDIO_DTO_WALLCLOCK_RATIO(x) (((x) & 7) << 0) 9598c2ecf20Sopenharmony_ci# define DCCG_AUDIO_DTO_WALLCLOCK_RATIO_MASK 7 9608c2ecf20Sopenharmony_ci# define DCCG_AUDIO_DTO_WALLCLOCK_RATIO_SHIFT 0 9618c2ecf20Sopenharmony_ci 9628c2ecf20Sopenharmony_ci#define DCCG_AUDIO_DTO1_PHASE 0x0524 9638c2ecf20Sopenharmony_ci#define DCCG_AUDIO_DTO1_MODULE 0x0528 9648c2ecf20Sopenharmony_ci#define DCCG_AUDIO_DTO1_LOAD 0x052c 9658c2ecf20Sopenharmony_ci#define DCCG_AUDIO_DTO1_CNTL 0x0530 9668c2ecf20Sopenharmony_ci 9678c2ecf20Sopenharmony_ci#define DCCG_AUDIO_DTO_SELECT 0x0534 9688c2ecf20Sopenharmony_ci 9698c2ecf20Sopenharmony_ci/* digital blocks */ 9708c2ecf20Sopenharmony_ci#define TMDSA_CNTL 0x7880 9718c2ecf20Sopenharmony_ci# define TMDSA_HDMI_EN (1 << 2) 9728c2ecf20Sopenharmony_ci#define LVTMA_CNTL 0x7a80 9738c2ecf20Sopenharmony_ci# define LVTMA_HDMI_EN (1 << 2) 9748c2ecf20Sopenharmony_ci#define DDIA_CNTL 0x7200 9758c2ecf20Sopenharmony_ci# define DDIA_HDMI_EN (1 << 2) 9768c2ecf20Sopenharmony_ci#define DIG0_CNTL 0x75a0 9778c2ecf20Sopenharmony_ci# define DIG_MODE(x) (((x) & 7) << 8) 9788c2ecf20Sopenharmony_ci# define DIG_MODE_DP 0 9798c2ecf20Sopenharmony_ci# define DIG_MODE_LVDS 1 9808c2ecf20Sopenharmony_ci# define DIG_MODE_TMDS_DVI 2 9818c2ecf20Sopenharmony_ci# define DIG_MODE_TMDS_HDMI 3 9828c2ecf20Sopenharmony_ci# define DIG_MODE_SDVO 4 9838c2ecf20Sopenharmony_ci#define DIG1_CNTL 0x79a0 9848c2ecf20Sopenharmony_ci 9858c2ecf20Sopenharmony_ci#define AZ_F0_CODEC_PIN0_CONTROL_CHANNEL_SPEAKER 0x71bc 9868c2ecf20Sopenharmony_ci#define SPEAKER_ALLOCATION(x) (((x) & 0x7f) << 0) 9878c2ecf20Sopenharmony_ci#define SPEAKER_ALLOCATION_MASK (0x7f << 0) 9888c2ecf20Sopenharmony_ci#define SPEAKER_ALLOCATION_SHIFT 0 9898c2ecf20Sopenharmony_ci#define HDMI_CONNECTION (1 << 16) 9908c2ecf20Sopenharmony_ci#define DP_CONNECTION (1 << 17) 9918c2ecf20Sopenharmony_ci 9928c2ecf20Sopenharmony_ci#define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR0 0x71c8 /* LPCM */ 9938c2ecf20Sopenharmony_ci#define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR1 0x71cc /* AC3 */ 9948c2ecf20Sopenharmony_ci#define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR2 0x71d0 /* MPEG1 */ 9958c2ecf20Sopenharmony_ci#define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR3 0x71d4 /* MP3 */ 9968c2ecf20Sopenharmony_ci#define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR4 0x71d8 /* MPEG2 */ 9978c2ecf20Sopenharmony_ci#define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR5 0x71dc /* AAC */ 9988c2ecf20Sopenharmony_ci#define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR6 0x71e0 /* DTS */ 9998c2ecf20Sopenharmony_ci#define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR7 0x71e4 /* ATRAC */ 10008c2ecf20Sopenharmony_ci#define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR8 0x71e8 /* one bit audio - leave at 0 (default) */ 10018c2ecf20Sopenharmony_ci#define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR9 0x71ec /* Dolby Digital */ 10028c2ecf20Sopenharmony_ci#define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR10 0x71f0 /* DTS-HD */ 10038c2ecf20Sopenharmony_ci#define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR11 0x71f4 /* MAT-MLP */ 10048c2ecf20Sopenharmony_ci#define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR12 0x71f8 /* DTS */ 10058c2ecf20Sopenharmony_ci#define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR13 0x71fc /* WMA Pro */ 10068c2ecf20Sopenharmony_ci# define MAX_CHANNELS(x) (((x) & 0x7) << 0) 10078c2ecf20Sopenharmony_ci/* max channels minus one. 7 = 8 channels */ 10088c2ecf20Sopenharmony_ci# define SUPPORTED_FREQUENCIES(x) (((x) & 0xff) << 8) 10098c2ecf20Sopenharmony_ci# define DESCRIPTOR_BYTE_2(x) (((x) & 0xff) << 16) 10108c2ecf20Sopenharmony_ci# define SUPPORTED_FREQUENCIES_STEREO(x) (((x) & 0xff) << 24) /* LPCM only */ 10118c2ecf20Sopenharmony_ci/* SUPPORTED_FREQUENCIES, SUPPORTED_FREQUENCIES_STEREO 10128c2ecf20Sopenharmony_ci * bit0 = 32 kHz 10138c2ecf20Sopenharmony_ci * bit1 = 44.1 kHz 10148c2ecf20Sopenharmony_ci * bit2 = 48 kHz 10158c2ecf20Sopenharmony_ci * bit3 = 88.2 kHz 10168c2ecf20Sopenharmony_ci * bit4 = 96 kHz 10178c2ecf20Sopenharmony_ci * bit5 = 176.4 kHz 10188c2ecf20Sopenharmony_ci * bit6 = 192 kHz 10198c2ecf20Sopenharmony_ci */ 10208c2ecf20Sopenharmony_ci 10218c2ecf20Sopenharmony_ci/* rs6xx/rs740 and r6xx share the same HDMI blocks, however, rs6xx has only one 10228c2ecf20Sopenharmony_ci * instance of the blocks while r6xx has 2. DCE 3.0 cards are slightly 10238c2ecf20Sopenharmony_ci * different due to the new DIG blocks, but also have 2 instances. 10248c2ecf20Sopenharmony_ci * DCE 3.0 HDMI blocks are part of each DIG encoder. 10258c2ecf20Sopenharmony_ci */ 10268c2ecf20Sopenharmony_ci 10278c2ecf20Sopenharmony_ci/* rs6xx/rs740/r6xx/dce3 */ 10288c2ecf20Sopenharmony_ci#define HDMI0_CONTROL 0x7400 10298c2ecf20Sopenharmony_ci/* rs6xx/rs740/r6xx */ 10308c2ecf20Sopenharmony_ci# define HDMI0_ENABLE (1 << 0) 10318c2ecf20Sopenharmony_ci# define HDMI0_STREAM(x) (((x) & 3) << 2) 10328c2ecf20Sopenharmony_ci# define HDMI0_STREAM_TMDSA 0 10338c2ecf20Sopenharmony_ci# define HDMI0_STREAM_LVTMA 1 10348c2ecf20Sopenharmony_ci# define HDMI0_STREAM_DVOA 2 10358c2ecf20Sopenharmony_ci# define HDMI0_STREAM_DDIA 3 10368c2ecf20Sopenharmony_ci/* rs6xx/r6xx/dce3 */ 10378c2ecf20Sopenharmony_ci# define HDMI0_ERROR_ACK (1 << 8) 10388c2ecf20Sopenharmony_ci# define HDMI0_ERROR_MASK (1 << 9) 10398c2ecf20Sopenharmony_ci#define HDMI0_STATUS 0x7404 10408c2ecf20Sopenharmony_ci# define HDMI0_ACTIVE_AVMUTE (1 << 0) 10418c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_ENABLE (1 << 4) 10428c2ecf20Sopenharmony_ci# define HDMI0_AZ_FORMAT_WTRIG (1 << 28) 10438c2ecf20Sopenharmony_ci# define HDMI0_AZ_FORMAT_WTRIG_INT (1 << 29) 10448c2ecf20Sopenharmony_ci#define HDMI0_AUDIO_PACKET_CONTROL 0x7408 10458c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_SAMPLE_SEND (1 << 0) 10468c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_DELAY_EN(x) (((x) & 3) << 4) 10478c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_DELAY_EN_MASK (3 << 4) 10488c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_SEND_MAX_PACKETS (1 << 8) 10498c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_TEST_EN (1 << 12) 10508c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_PACKETS_PER_LINE(x) (((x) & 0x1f) << 16) 10518c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_PACKETS_PER_LINE_MASK (0x1f << 16) 10528c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_CHANNEL_SWAP (1 << 24) 10538c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_UPDATE (1 << 26) 10548c2ecf20Sopenharmony_ci# define HDMI0_AZ_FORMAT_WTRIG_MASK (1 << 28) 10558c2ecf20Sopenharmony_ci# define HDMI0_AZ_FORMAT_WTRIG_ACK (1 << 29) 10568c2ecf20Sopenharmony_ci#define HDMI0_AUDIO_CRC_CONTROL 0x740c 10578c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_CRC_EN (1 << 0) 10588c2ecf20Sopenharmony_ci#define DCE3_HDMI0_ACR_PACKET_CONTROL 0x740c 10598c2ecf20Sopenharmony_ci#define HDMI0_VBI_PACKET_CONTROL 0x7410 10608c2ecf20Sopenharmony_ci# define HDMI0_NULL_SEND (1 << 0) 10618c2ecf20Sopenharmony_ci# define HDMI0_GC_SEND (1 << 4) 10628c2ecf20Sopenharmony_ci# define HDMI0_GC_CONT (1 << 5) /* 0 - once; 1 - every frame */ 10638c2ecf20Sopenharmony_ci#define HDMI0_INFOFRAME_CONTROL0 0x7414 10648c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_SEND (1 << 0) 10658c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_CONT (1 << 1) 10668c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_INFO_SEND (1 << 4) 10678c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_INFO_CONT (1 << 5) 10688c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_INFO_SOURCE (1 << 6) /* 0 - sound block; 1 - hdmi regs */ 10698c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_INFO_UPDATE (1 << 7) 10708c2ecf20Sopenharmony_ci# define HDMI0_MPEG_INFO_SEND (1 << 8) 10718c2ecf20Sopenharmony_ci# define HDMI0_MPEG_INFO_CONT (1 << 9) 10728c2ecf20Sopenharmony_ci# define HDMI0_MPEG_INFO_UPDATE (1 << 10) 10738c2ecf20Sopenharmony_ci#define HDMI0_INFOFRAME_CONTROL1 0x7418 10748c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_LINE(x) (((x) & 0x3f) << 0) 10758c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_LINE_MASK (0x3f << 0) 10768c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_INFO_LINE(x) (((x) & 0x3f) << 8) 10778c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_INFO_LINE_MASK (0x3f << 8) 10788c2ecf20Sopenharmony_ci# define HDMI0_MPEG_INFO_LINE(x) (((x) & 0x3f) << 16) 10798c2ecf20Sopenharmony_ci#define HDMI0_GENERIC_PACKET_CONTROL 0x741c 10808c2ecf20Sopenharmony_ci# define HDMI0_GENERIC0_SEND (1 << 0) 10818c2ecf20Sopenharmony_ci# define HDMI0_GENERIC0_CONT (1 << 1) 10828c2ecf20Sopenharmony_ci# define HDMI0_GENERIC0_UPDATE (1 << 2) 10838c2ecf20Sopenharmony_ci# define HDMI0_GENERIC1_SEND (1 << 4) 10848c2ecf20Sopenharmony_ci# define HDMI0_GENERIC1_CONT (1 << 5) 10858c2ecf20Sopenharmony_ci# define HDMI0_GENERIC0_LINE(x) (((x) & 0x3f) << 16) 10868c2ecf20Sopenharmony_ci# define HDMI0_GENERIC0_LINE_MASK (0x3f << 16) 10878c2ecf20Sopenharmony_ci# define HDMI0_GENERIC1_LINE(x) (((x) & 0x3f) << 24) 10888c2ecf20Sopenharmony_ci# define HDMI0_GENERIC1_LINE_MASK (0x3f << 24) 10898c2ecf20Sopenharmony_ci#define HDMI0_GC 0x7428 10908c2ecf20Sopenharmony_ci# define HDMI0_GC_AVMUTE (1 << 0) 10918c2ecf20Sopenharmony_ci#define HDMI0_AVI_INFO0 0x7454 10928c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_CHECKSUM(x) (((x) & 0xff) << 0) 10938c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_S(x) (((x) & 3) << 8) 10948c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_B(x) (((x) & 3) << 10) 10958c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_A(x) (((x) & 1) << 12) 10968c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_Y(x) (((x) & 3) << 13) 10978c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_Y_RGB 0 10988c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_Y_YCBCR422 1 10998c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_Y_YCBCR444 2 11008c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_Y_A_B_S(x) (((x) & 0xff) << 8) 11018c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_R(x) (((x) & 0xf) << 16) 11028c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_M(x) (((x) & 0x3) << 20) 11038c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_C(x) (((x) & 0x3) << 22) 11048c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_C_M_R(x) (((x) & 0xff) << 16) 11058c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_SC(x) (((x) & 0x3) << 24) 11068c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_ITC_EC_Q_SC(x) (((x) & 0xff) << 24) 11078c2ecf20Sopenharmony_ci#define HDMI0_AVI_INFO1 0x7458 11088c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_VIC(x) (((x) & 0x7f) << 0) /* don't use avi infoframe v1 */ 11098c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_PR(x) (((x) & 0xf) << 8) /* don't use avi infoframe v1 */ 11108c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_TOP(x) (((x) & 0xffff) << 16) 11118c2ecf20Sopenharmony_ci#define HDMI0_AVI_INFO2 0x745c 11128c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_BOTTOM(x) (((x) & 0xffff) << 0) 11138c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_LEFT(x) (((x) & 0xffff) << 16) 11148c2ecf20Sopenharmony_ci#define HDMI0_AVI_INFO3 0x7460 11158c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_RIGHT(x) (((x) & 0xffff) << 0) 11168c2ecf20Sopenharmony_ci# define HDMI0_AVI_INFO_VERSION(x) (((x) & 3) << 24) 11178c2ecf20Sopenharmony_ci#define HDMI0_MPEG_INFO0 0x7464 11188c2ecf20Sopenharmony_ci# define HDMI0_MPEG_INFO_CHECKSUM(x) (((x) & 0xff) << 0) 11198c2ecf20Sopenharmony_ci# define HDMI0_MPEG_INFO_MB0(x) (((x) & 0xff) << 8) 11208c2ecf20Sopenharmony_ci# define HDMI0_MPEG_INFO_MB1(x) (((x) & 0xff) << 16) 11218c2ecf20Sopenharmony_ci# define HDMI0_MPEG_INFO_MB2(x) (((x) & 0xff) << 24) 11228c2ecf20Sopenharmony_ci#define HDMI0_MPEG_INFO1 0x7468 11238c2ecf20Sopenharmony_ci# define HDMI0_MPEG_INFO_MB3(x) (((x) & 0xff) << 0) 11248c2ecf20Sopenharmony_ci# define HDMI0_MPEG_INFO_MF(x) (((x) & 3) << 8) 11258c2ecf20Sopenharmony_ci# define HDMI0_MPEG_INFO_FR(x) (((x) & 1) << 12) 11268c2ecf20Sopenharmony_ci#define HDMI0_GENERIC0_HDR 0x746c 11278c2ecf20Sopenharmony_ci#define HDMI0_GENERIC0_0 0x7470 11288c2ecf20Sopenharmony_ci#define HDMI0_GENERIC0_1 0x7474 11298c2ecf20Sopenharmony_ci#define HDMI0_GENERIC0_2 0x7478 11308c2ecf20Sopenharmony_ci#define HDMI0_GENERIC0_3 0x747c 11318c2ecf20Sopenharmony_ci#define HDMI0_GENERIC0_4 0x7480 11328c2ecf20Sopenharmony_ci#define HDMI0_GENERIC0_5 0x7484 11338c2ecf20Sopenharmony_ci#define HDMI0_GENERIC0_6 0x7488 11348c2ecf20Sopenharmony_ci#define HDMI0_GENERIC1_HDR 0x748c 11358c2ecf20Sopenharmony_ci#define HDMI0_GENERIC1_0 0x7490 11368c2ecf20Sopenharmony_ci#define HDMI0_GENERIC1_1 0x7494 11378c2ecf20Sopenharmony_ci#define HDMI0_GENERIC1_2 0x7498 11388c2ecf20Sopenharmony_ci#define HDMI0_GENERIC1_3 0x749c 11398c2ecf20Sopenharmony_ci#define HDMI0_GENERIC1_4 0x74a0 11408c2ecf20Sopenharmony_ci#define HDMI0_GENERIC1_5 0x74a4 11418c2ecf20Sopenharmony_ci#define HDMI0_GENERIC1_6 0x74a8 11428c2ecf20Sopenharmony_ci#define HDMI0_ACR_32_0 0x74ac 11438c2ecf20Sopenharmony_ci# define HDMI0_ACR_CTS_32(x) (((x) & 0xfffff) << 12) 11448c2ecf20Sopenharmony_ci# define HDMI0_ACR_CTS_32_MASK (0xfffff << 12) 11458c2ecf20Sopenharmony_ci#define HDMI0_ACR_32_1 0x74b0 11468c2ecf20Sopenharmony_ci# define HDMI0_ACR_N_32(x) (((x) & 0xfffff) << 0) 11478c2ecf20Sopenharmony_ci# define HDMI0_ACR_N_32_MASK (0xfffff << 0) 11488c2ecf20Sopenharmony_ci#define HDMI0_ACR_44_0 0x74b4 11498c2ecf20Sopenharmony_ci# define HDMI0_ACR_CTS_44(x) (((x) & 0xfffff) << 12) 11508c2ecf20Sopenharmony_ci# define HDMI0_ACR_CTS_44_MASK (0xfffff << 12) 11518c2ecf20Sopenharmony_ci#define HDMI0_ACR_44_1 0x74b8 11528c2ecf20Sopenharmony_ci# define HDMI0_ACR_N_44(x) (((x) & 0xfffff) << 0) 11538c2ecf20Sopenharmony_ci# define HDMI0_ACR_N_44_MASK (0xfffff << 0) 11548c2ecf20Sopenharmony_ci#define HDMI0_ACR_48_0 0x74bc 11558c2ecf20Sopenharmony_ci# define HDMI0_ACR_CTS_48(x) (((x) & 0xfffff) << 12) 11568c2ecf20Sopenharmony_ci# define HDMI0_ACR_CTS_48_MASK (0xfffff << 12) 11578c2ecf20Sopenharmony_ci#define HDMI0_ACR_48_1 0x74c0 11588c2ecf20Sopenharmony_ci# define HDMI0_ACR_N_48(x) (((x) & 0xfffff) << 0) 11598c2ecf20Sopenharmony_ci# define HDMI0_ACR_N_48_MASK (0xfffff << 0) 11608c2ecf20Sopenharmony_ci#define HDMI0_ACR_STATUS_0 0x74c4 11618c2ecf20Sopenharmony_ci#define HDMI0_ACR_STATUS_1 0x74c8 11628c2ecf20Sopenharmony_ci#define HDMI0_AUDIO_INFO0 0x74cc 11638c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_INFO_CHECKSUM(x) (((x) & 0xff) << 0) 11648c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_INFO_CC(x) (((x) & 7) << 8) 11658c2ecf20Sopenharmony_ci#define HDMI0_AUDIO_INFO1 0x74d0 11668c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_INFO_CA(x) (((x) & 0xff) << 0) 11678c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_INFO_LSV(x) (((x) & 0xf) << 11) 11688c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_INFO_DM_INH(x) (((x) & 1) << 15) 11698c2ecf20Sopenharmony_ci# define HDMI0_AUDIO_INFO_DM_INH_LSV(x) (((x) & 0xff) << 8) 11708c2ecf20Sopenharmony_ci#define HDMI0_60958_0 0x74d4 11718c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_A(x) (((x) & 1) << 0) 11728c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_B(x) (((x) & 1) << 1) 11738c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_C(x) (((x) & 1) << 2) 11748c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_D(x) (((x) & 3) << 3) 11758c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_MODE(x) (((x) & 3) << 6) 11768c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_CATEGORY_CODE(x) (((x) & 0xff) << 8) 11778c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_SOURCE_NUMBER(x) (((x) & 0xf) << 16) 11788c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_CHANNEL_NUMBER_L(x) (((x) & 0xf) << 20) 11798c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_CHANNEL_NUMBER_L_MASK (0xf << 20) 11808c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_SAMPLING_FREQUENCY(x) (((x) & 0xf) << 24) 11818c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_CLOCK_ACCURACY(x) (((x) & 3) << 28) 11828c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_CLOCK_ACCURACY_MASK (3 << 28) 11838c2ecf20Sopenharmony_ci#define HDMI0_60958_1 0x74d8 11848c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_WORD_LENGTH(x) (((x) & 0xf) << 0) 11858c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_ORIGINAL_SAMPLING_FREQUENCY(x) (((x) & 0xf) << 4) 11868c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_VALID_L(x) (((x) & 1) << 16) 11878c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_VALID_R(x) (((x) & 1) << 18) 11888c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_CHANNEL_NUMBER_R(x) (((x) & 0xf) << 20) 11898c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_CHANNEL_NUMBER_R_MASK (0xf << 20) 11908c2ecf20Sopenharmony_ci#define HDMI0_ACR_PACKET_CONTROL 0x74dc 11918c2ecf20Sopenharmony_ci# define HDMI0_ACR_SEND (1 << 0) 11928c2ecf20Sopenharmony_ci# define HDMI0_ACR_CONT (1 << 1) 11938c2ecf20Sopenharmony_ci# define HDMI0_ACR_SELECT(x) (((x) & 3) << 4) 11948c2ecf20Sopenharmony_ci# define HDMI0_ACR_HW 0 11958c2ecf20Sopenharmony_ci# define HDMI0_ACR_32 1 11968c2ecf20Sopenharmony_ci# define HDMI0_ACR_44 2 11978c2ecf20Sopenharmony_ci# define HDMI0_ACR_48 3 11988c2ecf20Sopenharmony_ci# define HDMI0_ACR_SOURCE (1 << 8) /* 0 - hw; 1 - cts value */ 11998c2ecf20Sopenharmony_ci# define HDMI0_ACR_AUTO_SEND (1 << 12) 12008c2ecf20Sopenharmony_ci#define DCE3_HDMI0_AUDIO_CRC_CONTROL 0x74dc 12018c2ecf20Sopenharmony_ci#define HDMI0_RAMP_CONTROL0 0x74e0 12028c2ecf20Sopenharmony_ci# define HDMI0_RAMP_MAX_COUNT(x) (((x) & 0xffffff) << 0) 12038c2ecf20Sopenharmony_ci#define HDMI0_RAMP_CONTROL1 0x74e4 12048c2ecf20Sopenharmony_ci# define HDMI0_RAMP_MIN_COUNT(x) (((x) & 0xffffff) << 0) 12058c2ecf20Sopenharmony_ci#define HDMI0_RAMP_CONTROL2 0x74e8 12068c2ecf20Sopenharmony_ci# define HDMI0_RAMP_INC_COUNT(x) (((x) & 0xffffff) << 0) 12078c2ecf20Sopenharmony_ci#define HDMI0_RAMP_CONTROL3 0x74ec 12088c2ecf20Sopenharmony_ci# define HDMI0_RAMP_DEC_COUNT(x) (((x) & 0xffffff) << 0) 12098c2ecf20Sopenharmony_ci/* HDMI0_60958_2 is r7xx only */ 12108c2ecf20Sopenharmony_ci#define HDMI0_60958_2 0x74f0 12118c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_CHANNEL_NUMBER_2(x) (((x) & 0xf) << 0) 12128c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_CHANNEL_NUMBER_3(x) (((x) & 0xf) << 4) 12138c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_CHANNEL_NUMBER_4(x) (((x) & 0xf) << 8) 12148c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_CHANNEL_NUMBER_5(x) (((x) & 0xf) << 12) 12158c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_CHANNEL_NUMBER_6(x) (((x) & 0xf) << 16) 12168c2ecf20Sopenharmony_ci# define HDMI0_60958_CS_CHANNEL_NUMBER_7(x) (((x) & 0xf) << 20) 12178c2ecf20Sopenharmony_ci/* r6xx only; second instance starts at 0x7700 */ 12188c2ecf20Sopenharmony_ci#define HDMI1_CONTROL 0x7700 12198c2ecf20Sopenharmony_ci#define HDMI1_STATUS 0x7704 12208c2ecf20Sopenharmony_ci#define HDMI1_AUDIO_PACKET_CONTROL 0x7708 12218c2ecf20Sopenharmony_ci/* DCE3; second instance starts at 0x7800 NOT 0x7700 */ 12228c2ecf20Sopenharmony_ci#define DCE3_HDMI1_CONTROL 0x7800 12238c2ecf20Sopenharmony_ci#define DCE3_HDMI1_STATUS 0x7804 12248c2ecf20Sopenharmony_ci#define DCE3_HDMI1_AUDIO_PACKET_CONTROL 0x7808 12258c2ecf20Sopenharmony_ci/* DCE3.2 (for interrupts) */ 12268c2ecf20Sopenharmony_ci#define AFMT_STATUS 0x7600 12278c2ecf20Sopenharmony_ci# define AFMT_AUDIO_ENABLE (1 << 4) 12288c2ecf20Sopenharmony_ci# define AFMT_AZ_FORMAT_WTRIG (1 << 28) 12298c2ecf20Sopenharmony_ci# define AFMT_AZ_FORMAT_WTRIG_INT (1 << 29) 12308c2ecf20Sopenharmony_ci# define AFMT_AZ_AUDIO_ENABLE_CHG (1 << 30) 12318c2ecf20Sopenharmony_ci#define AFMT_AUDIO_PACKET_CONTROL 0x7604 12328c2ecf20Sopenharmony_ci# define AFMT_AUDIO_SAMPLE_SEND (1 << 0) 12338c2ecf20Sopenharmony_ci# define AFMT_AUDIO_TEST_EN (1 << 12) 12348c2ecf20Sopenharmony_ci# define AFMT_AUDIO_CHANNEL_SWAP (1 << 24) 12358c2ecf20Sopenharmony_ci# define AFMT_60958_CS_UPDATE (1 << 26) 12368c2ecf20Sopenharmony_ci# define AFMT_AZ_AUDIO_ENABLE_CHG_MASK (1 << 27) 12378c2ecf20Sopenharmony_ci# define AFMT_AZ_FORMAT_WTRIG_MASK (1 << 28) 12388c2ecf20Sopenharmony_ci# define AFMT_AZ_FORMAT_WTRIG_ACK (1 << 29) 12398c2ecf20Sopenharmony_ci# define AFMT_AZ_AUDIO_ENABLE_CHG_ACK (1 << 30) 12408c2ecf20Sopenharmony_ci 12418c2ecf20Sopenharmony_ci/* DCE3 FMT blocks */ 12428c2ecf20Sopenharmony_ci#define FMT_CONTROL 0x6700 12438c2ecf20Sopenharmony_ci# define FMT_PIXEL_ENCODING (1 << 16) 12448c2ecf20Sopenharmony_ci /* 0 = RGB 4:4:4 or YCbCr 4:4:4, 1 = YCbCr 4:2:2 */ 12458c2ecf20Sopenharmony_ci#define FMT_BIT_DEPTH_CONTROL 0x6710 12468c2ecf20Sopenharmony_ci# define FMT_TRUNCATE_EN (1 << 0) 12478c2ecf20Sopenharmony_ci# define FMT_TRUNCATE_DEPTH (1 << 4) 12488c2ecf20Sopenharmony_ci# define FMT_SPATIAL_DITHER_EN (1 << 8) 12498c2ecf20Sopenharmony_ci# define FMT_SPATIAL_DITHER_MODE(x) ((x) << 9) 12508c2ecf20Sopenharmony_ci# define FMT_SPATIAL_DITHER_DEPTH (1 << 12) 12518c2ecf20Sopenharmony_ci# define FMT_FRAME_RANDOM_ENABLE (1 << 13) 12528c2ecf20Sopenharmony_ci# define FMT_RGB_RANDOM_ENABLE (1 << 14) 12538c2ecf20Sopenharmony_ci# define FMT_HIGHPASS_RANDOM_ENABLE (1 << 15) 12548c2ecf20Sopenharmony_ci# define FMT_TEMPORAL_DITHER_EN (1 << 16) 12558c2ecf20Sopenharmony_ci# define FMT_TEMPORAL_DITHER_DEPTH (1 << 20) 12568c2ecf20Sopenharmony_ci# define FMT_TEMPORAL_DITHER_OFFSET(x) ((x) << 21) 12578c2ecf20Sopenharmony_ci# define FMT_TEMPORAL_LEVEL (1 << 24) 12588c2ecf20Sopenharmony_ci# define FMT_TEMPORAL_DITHER_RESET (1 << 25) 12598c2ecf20Sopenharmony_ci# define FMT_25FRC_SEL(x) ((x) << 26) 12608c2ecf20Sopenharmony_ci# define FMT_50FRC_SEL(x) ((x) << 28) 12618c2ecf20Sopenharmony_ci# define FMT_75FRC_SEL(x) ((x) << 30) 12628c2ecf20Sopenharmony_ci#define FMT_CLAMP_CONTROL 0x672c 12638c2ecf20Sopenharmony_ci# define FMT_CLAMP_DATA_EN (1 << 0) 12648c2ecf20Sopenharmony_ci# define FMT_CLAMP_COLOR_FORMAT(x) ((x) << 16) 12658c2ecf20Sopenharmony_ci# define FMT_CLAMP_6BPC 0 12668c2ecf20Sopenharmony_ci# define FMT_CLAMP_8BPC 1 12678c2ecf20Sopenharmony_ci# define FMT_CLAMP_10BPC 2 12688c2ecf20Sopenharmony_ci 12698c2ecf20Sopenharmony_ci/* Power management */ 12708c2ecf20Sopenharmony_ci#define CG_SPLL_FUNC_CNTL 0x600 12718c2ecf20Sopenharmony_ci# define SPLL_RESET (1 << 0) 12728c2ecf20Sopenharmony_ci# define SPLL_SLEEP (1 << 1) 12738c2ecf20Sopenharmony_ci# define SPLL_REF_DIV(x) ((x) << 2) 12748c2ecf20Sopenharmony_ci# define SPLL_REF_DIV_MASK (7 << 2) 12758c2ecf20Sopenharmony_ci# define SPLL_FB_DIV(x) ((x) << 5) 12768c2ecf20Sopenharmony_ci# define SPLL_FB_DIV_MASK (0xff << 5) 12778c2ecf20Sopenharmony_ci# define SPLL_PULSEEN (1 << 13) 12788c2ecf20Sopenharmony_ci# define SPLL_PULSENUM(x) ((x) << 14) 12798c2ecf20Sopenharmony_ci# define SPLL_PULSENUM_MASK (3 << 14) 12808c2ecf20Sopenharmony_ci# define SPLL_SW_HILEN(x) ((x) << 16) 12818c2ecf20Sopenharmony_ci# define SPLL_SW_HILEN_MASK (0xf << 16) 12828c2ecf20Sopenharmony_ci# define SPLL_SW_LOLEN(x) ((x) << 20) 12838c2ecf20Sopenharmony_ci# define SPLL_SW_LOLEN_MASK (0xf << 20) 12848c2ecf20Sopenharmony_ci# define SPLL_DIVEN (1 << 24) 12858c2ecf20Sopenharmony_ci# define SPLL_BYPASS_EN (1 << 25) 12868c2ecf20Sopenharmony_ci# define SPLL_CHG_STATUS (1 << 29) 12878c2ecf20Sopenharmony_ci# define SPLL_CTLREQ (1 << 30) 12888c2ecf20Sopenharmony_ci# define SPLL_CTLACK (1 << 31) 12898c2ecf20Sopenharmony_ci 12908c2ecf20Sopenharmony_ci#define GENERAL_PWRMGT 0x618 12918c2ecf20Sopenharmony_ci# define GLOBAL_PWRMGT_EN (1 << 0) 12928c2ecf20Sopenharmony_ci# define STATIC_PM_EN (1 << 1) 12938c2ecf20Sopenharmony_ci# define MOBILE_SU (1 << 2) 12948c2ecf20Sopenharmony_ci# define THERMAL_PROTECTION_DIS (1 << 3) 12958c2ecf20Sopenharmony_ci# define THERMAL_PROTECTION_TYPE (1 << 4) 12968c2ecf20Sopenharmony_ci# define ENABLE_GEN2PCIE (1 << 5) 12978c2ecf20Sopenharmony_ci# define SW_GPIO_INDEX(x) ((x) << 6) 12988c2ecf20Sopenharmony_ci# define SW_GPIO_INDEX_MASK (3 << 6) 12998c2ecf20Sopenharmony_ci# define LOW_VOLT_D2_ACPI (1 << 8) 13008c2ecf20Sopenharmony_ci# define LOW_VOLT_D3_ACPI (1 << 9) 13018c2ecf20Sopenharmony_ci# define VOLT_PWRMGT_EN (1 << 10) 13028c2ecf20Sopenharmony_ci#define CG_TPC 0x61c 13038c2ecf20Sopenharmony_ci# define TPCC(x) ((x) << 0) 13048c2ecf20Sopenharmony_ci# define TPCC_MASK (0x7fffff << 0) 13058c2ecf20Sopenharmony_ci# define TPU(x) ((x) << 23) 13068c2ecf20Sopenharmony_ci# define TPU_MASK (0x1f << 23) 13078c2ecf20Sopenharmony_ci#define SCLK_PWRMGT_CNTL 0x620 13088c2ecf20Sopenharmony_ci# define SCLK_PWRMGT_OFF (1 << 0) 13098c2ecf20Sopenharmony_ci# define SCLK_TURNOFF (1 << 1) 13108c2ecf20Sopenharmony_ci# define SPLL_TURNOFF (1 << 2) 13118c2ecf20Sopenharmony_ci# define SU_SCLK_USE_BCLK (1 << 3) 13128c2ecf20Sopenharmony_ci# define DYNAMIC_GFX_ISLAND_PWR_DOWN (1 << 4) 13138c2ecf20Sopenharmony_ci# define DYNAMIC_GFX_ISLAND_PWR_LP (1 << 5) 13148c2ecf20Sopenharmony_ci# define CLK_TURN_ON_STAGGER (1 << 6) 13158c2ecf20Sopenharmony_ci# define CLK_TURN_OFF_STAGGER (1 << 7) 13168c2ecf20Sopenharmony_ci# define FIR_FORCE_TREND_SEL (1 << 8) 13178c2ecf20Sopenharmony_ci# define FIR_TREND_MODE (1 << 9) 13188c2ecf20Sopenharmony_ci# define DYN_GFX_CLK_OFF_EN (1 << 10) 13198c2ecf20Sopenharmony_ci# define VDDC3D_TURNOFF_D1 (1 << 11) 13208c2ecf20Sopenharmony_ci# define VDDC3D_TURNOFF_D2 (1 << 12) 13218c2ecf20Sopenharmony_ci# define VDDC3D_TURNOFF_D3 (1 << 13) 13228c2ecf20Sopenharmony_ci# define SPLL_TURNOFF_D2 (1 << 14) 13238c2ecf20Sopenharmony_ci# define SCLK_LOW_D1 (1 << 15) 13248c2ecf20Sopenharmony_ci# define DYN_GFX_CLK_OFF_MC_EN (1 << 16) 13258c2ecf20Sopenharmony_ci#define MCLK_PWRMGT_CNTL 0x624 13268c2ecf20Sopenharmony_ci# define MPLL_PWRMGT_OFF (1 << 0) 13278c2ecf20Sopenharmony_ci# define YCLK_TURNOFF (1 << 1) 13288c2ecf20Sopenharmony_ci# define MPLL_TURNOFF (1 << 2) 13298c2ecf20Sopenharmony_ci# define SU_MCLK_USE_BCLK (1 << 3) 13308c2ecf20Sopenharmony_ci# define DLL_READY (1 << 4) 13318c2ecf20Sopenharmony_ci# define MC_BUSY (1 << 5) 13328c2ecf20Sopenharmony_ci# define MC_INT_CNTL (1 << 7) 13338c2ecf20Sopenharmony_ci# define MRDCKA_SLEEP (1 << 8) 13348c2ecf20Sopenharmony_ci# define MRDCKB_SLEEP (1 << 9) 13358c2ecf20Sopenharmony_ci# define MRDCKC_SLEEP (1 << 10) 13368c2ecf20Sopenharmony_ci# define MRDCKD_SLEEP (1 << 11) 13378c2ecf20Sopenharmony_ci# define MRDCKE_SLEEP (1 << 12) 13388c2ecf20Sopenharmony_ci# define MRDCKF_SLEEP (1 << 13) 13398c2ecf20Sopenharmony_ci# define MRDCKG_SLEEP (1 << 14) 13408c2ecf20Sopenharmony_ci# define MRDCKH_SLEEP (1 << 15) 13418c2ecf20Sopenharmony_ci# define MRDCKA_RESET (1 << 16) 13428c2ecf20Sopenharmony_ci# define MRDCKB_RESET (1 << 17) 13438c2ecf20Sopenharmony_ci# define MRDCKC_RESET (1 << 18) 13448c2ecf20Sopenharmony_ci# define MRDCKD_RESET (1 << 19) 13458c2ecf20Sopenharmony_ci# define MRDCKE_RESET (1 << 20) 13468c2ecf20Sopenharmony_ci# define MRDCKF_RESET (1 << 21) 13478c2ecf20Sopenharmony_ci# define MRDCKG_RESET (1 << 22) 13488c2ecf20Sopenharmony_ci# define MRDCKH_RESET (1 << 23) 13498c2ecf20Sopenharmony_ci# define DLL_READY_READ (1 << 24) 13508c2ecf20Sopenharmony_ci# define USE_DISPLAY_GAP (1 << 25) 13518c2ecf20Sopenharmony_ci# define USE_DISPLAY_URGENT_NORMAL (1 << 26) 13528c2ecf20Sopenharmony_ci# define USE_DISPLAY_GAP_CTXSW (1 << 27) 13538c2ecf20Sopenharmony_ci# define MPLL_TURNOFF_D2 (1 << 28) 13548c2ecf20Sopenharmony_ci# define USE_DISPLAY_URGENT_CTXSW (1 << 29) 13558c2ecf20Sopenharmony_ci 13568c2ecf20Sopenharmony_ci#define MPLL_TIME 0x634 13578c2ecf20Sopenharmony_ci# define MPLL_LOCK_TIME(x) ((x) << 0) 13588c2ecf20Sopenharmony_ci# define MPLL_LOCK_TIME_MASK (0xffff << 0) 13598c2ecf20Sopenharmony_ci# define MPLL_RESET_TIME(x) ((x) << 16) 13608c2ecf20Sopenharmony_ci# define MPLL_RESET_TIME_MASK (0xffff << 16) 13618c2ecf20Sopenharmony_ci 13628c2ecf20Sopenharmony_ci#define SCLK_FREQ_SETTING_STEP_0_PART1 0x648 13638c2ecf20Sopenharmony_ci# define STEP_0_SPLL_POST_DIV(x) ((x) << 0) 13648c2ecf20Sopenharmony_ci# define STEP_0_SPLL_POST_DIV_MASK (0xff << 0) 13658c2ecf20Sopenharmony_ci# define STEP_0_SPLL_FB_DIV(x) ((x) << 8) 13668c2ecf20Sopenharmony_ci# define STEP_0_SPLL_FB_DIV_MASK (0xff << 8) 13678c2ecf20Sopenharmony_ci# define STEP_0_SPLL_REF_DIV(x) ((x) << 16) 13688c2ecf20Sopenharmony_ci# define STEP_0_SPLL_REF_DIV_MASK (7 << 16) 13698c2ecf20Sopenharmony_ci# define STEP_0_SPLL_STEP_TIME(x) ((x) << 19) 13708c2ecf20Sopenharmony_ci# define STEP_0_SPLL_STEP_TIME_MASK (0x1fff << 19) 13718c2ecf20Sopenharmony_ci#define SCLK_FREQ_SETTING_STEP_0_PART2 0x64c 13728c2ecf20Sopenharmony_ci# define STEP_0_PULSE_HIGH_CNT(x) ((x) << 0) 13738c2ecf20Sopenharmony_ci# define STEP_0_PULSE_HIGH_CNT_MASK (0x1ff << 0) 13748c2ecf20Sopenharmony_ci# define STEP_0_POST_DIV_EN (1 << 9) 13758c2ecf20Sopenharmony_ci# define STEP_0_SPLL_STEP_ENABLE (1 << 30) 13768c2ecf20Sopenharmony_ci# define STEP_0_SPLL_ENTRY_VALID (1 << 31) 13778c2ecf20Sopenharmony_ci 13788c2ecf20Sopenharmony_ci#define VID_RT 0x6f8 13798c2ecf20Sopenharmony_ci# define VID_CRT(x) ((x) << 0) 13808c2ecf20Sopenharmony_ci# define VID_CRT_MASK (0x1fff << 0) 13818c2ecf20Sopenharmony_ci# define VID_CRTU(x) ((x) << 13) 13828c2ecf20Sopenharmony_ci# define VID_CRTU_MASK (7 << 13) 13838c2ecf20Sopenharmony_ci# define SSTU(x) ((x) << 16) 13848c2ecf20Sopenharmony_ci# define SSTU_MASK (7 << 16) 13858c2ecf20Sopenharmony_ci#define CTXSW_PROFILE_INDEX 0x6fc 13868c2ecf20Sopenharmony_ci# define CTXSW_FREQ_VIDS_CFG_INDEX(x) ((x) << 0) 13878c2ecf20Sopenharmony_ci# define CTXSW_FREQ_VIDS_CFG_INDEX_MASK (3 << 0) 13888c2ecf20Sopenharmony_ci# define CTXSW_FREQ_VIDS_CFG_INDEX_SHIFT 0 13898c2ecf20Sopenharmony_ci# define CTXSW_FREQ_MCLK_CFG_INDEX(x) ((x) << 2) 13908c2ecf20Sopenharmony_ci# define CTXSW_FREQ_MCLK_CFG_INDEX_MASK (3 << 2) 13918c2ecf20Sopenharmony_ci# define CTXSW_FREQ_MCLK_CFG_INDEX_SHIFT 2 13928c2ecf20Sopenharmony_ci# define CTXSW_FREQ_SCLK_CFG_INDEX(x) ((x) << 4) 13938c2ecf20Sopenharmony_ci# define CTXSW_FREQ_SCLK_CFG_INDEX_MASK (0x1f << 4) 13948c2ecf20Sopenharmony_ci# define CTXSW_FREQ_SCLK_CFG_INDEX_SHIFT 4 13958c2ecf20Sopenharmony_ci# define CTXSW_FREQ_STATE_SPLL_RESET_EN (1 << 9) 13968c2ecf20Sopenharmony_ci# define CTXSW_FREQ_STATE_ENABLE (1 << 10) 13978c2ecf20Sopenharmony_ci# define CTXSW_FREQ_DISPLAY_WATERMARK (1 << 11) 13988c2ecf20Sopenharmony_ci# define CTXSW_FREQ_GEN2PCIE_VOLT (1 << 12) 13998c2ecf20Sopenharmony_ci 14008c2ecf20Sopenharmony_ci#define TARGET_AND_CURRENT_PROFILE_INDEX 0x70c 14018c2ecf20Sopenharmony_ci# define TARGET_PROFILE_INDEX_MASK (3 << 0) 14028c2ecf20Sopenharmony_ci# define TARGET_PROFILE_INDEX_SHIFT 0 14038c2ecf20Sopenharmony_ci# define CURRENT_PROFILE_INDEX_MASK (3 << 2) 14048c2ecf20Sopenharmony_ci# define CURRENT_PROFILE_INDEX_SHIFT 2 14058c2ecf20Sopenharmony_ci# define DYN_PWR_ENTER_INDEX(x) ((x) << 4) 14068c2ecf20Sopenharmony_ci# define DYN_PWR_ENTER_INDEX_MASK (3 << 4) 14078c2ecf20Sopenharmony_ci# define DYN_PWR_ENTER_INDEX_SHIFT 4 14088c2ecf20Sopenharmony_ci# define CURR_MCLK_INDEX_MASK (3 << 6) 14098c2ecf20Sopenharmony_ci# define CURR_MCLK_INDEX_SHIFT 6 14108c2ecf20Sopenharmony_ci# define CURR_SCLK_INDEX_MASK (0x1f << 8) 14118c2ecf20Sopenharmony_ci# define CURR_SCLK_INDEX_SHIFT 8 14128c2ecf20Sopenharmony_ci# define CURR_VID_INDEX_MASK (3 << 13) 14138c2ecf20Sopenharmony_ci# define CURR_VID_INDEX_SHIFT 13 14148c2ecf20Sopenharmony_ci 14158c2ecf20Sopenharmony_ci#define LOWER_GPIO_ENABLE 0x710 14168c2ecf20Sopenharmony_ci#define UPPER_GPIO_ENABLE 0x714 14178c2ecf20Sopenharmony_ci#define CTXSW_VID_LOWER_GPIO_CNTL 0x718 14188c2ecf20Sopenharmony_ci 14198c2ecf20Sopenharmony_ci#define VID_UPPER_GPIO_CNTL 0x740 14208c2ecf20Sopenharmony_ci#define CG_CTX_CGTT3D_R 0x744 14218c2ecf20Sopenharmony_ci# define PHC(x) ((x) << 0) 14228c2ecf20Sopenharmony_ci# define PHC_MASK (0x1ff << 0) 14238c2ecf20Sopenharmony_ci# define SDC(x) ((x) << 9) 14248c2ecf20Sopenharmony_ci# define SDC_MASK (0x3fff << 9) 14258c2ecf20Sopenharmony_ci#define CG_VDDC3D_OOR 0x748 14268c2ecf20Sopenharmony_ci# define SU(x) ((x) << 23) 14278c2ecf20Sopenharmony_ci# define SU_MASK (0xf << 23) 14288c2ecf20Sopenharmony_ci#define CG_FTV 0x74c 14298c2ecf20Sopenharmony_ci#define CG_FFCT_0 0x750 14308c2ecf20Sopenharmony_ci# define UTC_0(x) ((x) << 0) 14318c2ecf20Sopenharmony_ci# define UTC_0_MASK (0x3ff << 0) 14328c2ecf20Sopenharmony_ci# define DTC_0(x) ((x) << 10) 14338c2ecf20Sopenharmony_ci# define DTC_0_MASK (0x3ff << 10) 14348c2ecf20Sopenharmony_ci 14358c2ecf20Sopenharmony_ci#define CG_BSP 0x78c 14368c2ecf20Sopenharmony_ci# define BSP(x) ((x) << 0) 14378c2ecf20Sopenharmony_ci# define BSP_MASK (0xffff << 0) 14388c2ecf20Sopenharmony_ci# define BSU(x) ((x) << 16) 14398c2ecf20Sopenharmony_ci# define BSU_MASK (0xf << 16) 14408c2ecf20Sopenharmony_ci#define CG_RT 0x790 14418c2ecf20Sopenharmony_ci# define FLS(x) ((x) << 0) 14428c2ecf20Sopenharmony_ci# define FLS_MASK (0xffff << 0) 14438c2ecf20Sopenharmony_ci# define FMS(x) ((x) << 16) 14448c2ecf20Sopenharmony_ci# define FMS_MASK (0xffff << 16) 14458c2ecf20Sopenharmony_ci#define CG_LT 0x794 14468c2ecf20Sopenharmony_ci# define FHS(x) ((x) << 0) 14478c2ecf20Sopenharmony_ci# define FHS_MASK (0xffff << 0) 14488c2ecf20Sopenharmony_ci#define CG_GIT 0x798 14498c2ecf20Sopenharmony_ci# define CG_GICST(x) ((x) << 0) 14508c2ecf20Sopenharmony_ci# define CG_GICST_MASK (0xffff << 0) 14518c2ecf20Sopenharmony_ci# define CG_GIPOT(x) ((x) << 16) 14528c2ecf20Sopenharmony_ci# define CG_GIPOT_MASK (0xffff << 16) 14538c2ecf20Sopenharmony_ci 14548c2ecf20Sopenharmony_ci#define CG_SSP 0x7a8 14558c2ecf20Sopenharmony_ci# define CG_SST(x) ((x) << 0) 14568c2ecf20Sopenharmony_ci# define CG_SST_MASK (0xffff << 0) 14578c2ecf20Sopenharmony_ci# define CG_SSTU(x) ((x) << 16) 14588c2ecf20Sopenharmony_ci# define CG_SSTU_MASK (0xf << 16) 14598c2ecf20Sopenharmony_ci 14608c2ecf20Sopenharmony_ci#define CG_RLC_REQ_AND_RSP 0x7c4 14618c2ecf20Sopenharmony_ci# define RLC_CG_REQ_TYPE_MASK 0xf 14628c2ecf20Sopenharmony_ci# define RLC_CG_REQ_TYPE_SHIFT 0 14638c2ecf20Sopenharmony_ci# define CG_RLC_RSP_TYPE_MASK 0xf0 14648c2ecf20Sopenharmony_ci# define CG_RLC_RSP_TYPE_SHIFT 4 14658c2ecf20Sopenharmony_ci 14668c2ecf20Sopenharmony_ci#define CG_FC_T 0x7cc 14678c2ecf20Sopenharmony_ci# define FC_T(x) ((x) << 0) 14688c2ecf20Sopenharmony_ci# define FC_T_MASK (0xffff << 0) 14698c2ecf20Sopenharmony_ci# define FC_TU(x) ((x) << 16) 14708c2ecf20Sopenharmony_ci# define FC_TU_MASK (0x1f << 16) 14718c2ecf20Sopenharmony_ci 14728c2ecf20Sopenharmony_ci#define GPIOPAD_MASK 0x1798 14738c2ecf20Sopenharmony_ci#define GPIOPAD_A 0x179c 14748c2ecf20Sopenharmony_ci#define GPIOPAD_EN 0x17a0 14758c2ecf20Sopenharmony_ci 14768c2ecf20Sopenharmony_ci#define GRBM_PWR_CNTL 0x800c 14778c2ecf20Sopenharmony_ci# define REQ_TYPE_MASK 0xf 14788c2ecf20Sopenharmony_ci# define REQ_TYPE_SHIFT 0 14798c2ecf20Sopenharmony_ci# define RSP_TYPE_MASK 0xf0 14808c2ecf20Sopenharmony_ci# define RSP_TYPE_SHIFT 4 14818c2ecf20Sopenharmony_ci 14828c2ecf20Sopenharmony_ci/* 14838c2ecf20Sopenharmony_ci * UVD 14848c2ecf20Sopenharmony_ci */ 14858c2ecf20Sopenharmony_ci#define UVD_SEMA_ADDR_LOW 0xef00 14868c2ecf20Sopenharmony_ci#define UVD_SEMA_ADDR_HIGH 0xef04 14878c2ecf20Sopenharmony_ci#define UVD_SEMA_CMD 0xef08 14888c2ecf20Sopenharmony_ci 14898c2ecf20Sopenharmony_ci#define UVD_GPCOM_VCPU_CMD 0xef0c 14908c2ecf20Sopenharmony_ci#define UVD_GPCOM_VCPU_DATA0 0xef10 14918c2ecf20Sopenharmony_ci#define UVD_GPCOM_VCPU_DATA1 0xef14 14928c2ecf20Sopenharmony_ci#define UVD_ENGINE_CNTL 0xef18 14938c2ecf20Sopenharmony_ci#define UVD_NO_OP 0xeffc 14948c2ecf20Sopenharmony_ci 14958c2ecf20Sopenharmony_ci#define UVD_SEMA_CNTL 0xf400 14968c2ecf20Sopenharmony_ci#define UVD_RB_ARB_CTRL 0xf480 14978c2ecf20Sopenharmony_ci 14988c2ecf20Sopenharmony_ci#define UVD_LMI_EXT40_ADDR 0xf498 14998c2ecf20Sopenharmony_ci#define UVD_CGC_GATE 0xf4a8 15008c2ecf20Sopenharmony_ci#define UVD_LMI_CTRL2 0xf4f4 15018c2ecf20Sopenharmony_ci#define UVD_MASTINT_EN 0xf500 15028c2ecf20Sopenharmony_ci#define UVD_FW_START 0xf51C 15038c2ecf20Sopenharmony_ci#define UVD_LMI_ADDR_EXT 0xf594 15048c2ecf20Sopenharmony_ci#define UVD_LMI_CTRL 0xf598 15058c2ecf20Sopenharmony_ci#define UVD_LMI_SWAP_CNTL 0xf5b4 15068c2ecf20Sopenharmony_ci#define UVD_MP_SWAP_CNTL 0xf5bC 15078c2ecf20Sopenharmony_ci#define UVD_MPC_CNTL 0xf5dC 15088c2ecf20Sopenharmony_ci#define UVD_MPC_SET_MUXA0 0xf5e4 15098c2ecf20Sopenharmony_ci#define UVD_MPC_SET_MUXA1 0xf5e8 15108c2ecf20Sopenharmony_ci#define UVD_MPC_SET_MUXB0 0xf5eC 15118c2ecf20Sopenharmony_ci#define UVD_MPC_SET_MUXB1 0xf5f0 15128c2ecf20Sopenharmony_ci#define UVD_MPC_SET_MUX 0xf5f4 15138c2ecf20Sopenharmony_ci#define UVD_MPC_SET_ALU 0xf5f8 15148c2ecf20Sopenharmony_ci 15158c2ecf20Sopenharmony_ci#define UVD_VCPU_CACHE_OFFSET0 0xf608 15168c2ecf20Sopenharmony_ci#define UVD_VCPU_CACHE_SIZE0 0xf60c 15178c2ecf20Sopenharmony_ci#define UVD_VCPU_CACHE_OFFSET1 0xf610 15188c2ecf20Sopenharmony_ci#define UVD_VCPU_CACHE_SIZE1 0xf614 15198c2ecf20Sopenharmony_ci#define UVD_VCPU_CACHE_OFFSET2 0xf618 15208c2ecf20Sopenharmony_ci#define UVD_VCPU_CACHE_SIZE2 0xf61c 15218c2ecf20Sopenharmony_ci 15228c2ecf20Sopenharmony_ci#define UVD_VCPU_CNTL 0xf660 15238c2ecf20Sopenharmony_ci#define UVD_SOFT_RESET 0xf680 15248c2ecf20Sopenharmony_ci#define RBC_SOFT_RESET (1<<0) 15258c2ecf20Sopenharmony_ci#define LBSI_SOFT_RESET (1<<1) 15268c2ecf20Sopenharmony_ci#define LMI_SOFT_RESET (1<<2) 15278c2ecf20Sopenharmony_ci#define VCPU_SOFT_RESET (1<<3) 15288c2ecf20Sopenharmony_ci#define CSM_SOFT_RESET (1<<5) 15298c2ecf20Sopenharmony_ci#define CXW_SOFT_RESET (1<<6) 15308c2ecf20Sopenharmony_ci#define TAP_SOFT_RESET (1<<7) 15318c2ecf20Sopenharmony_ci#define LMI_UMC_SOFT_RESET (1<<13) 15328c2ecf20Sopenharmony_ci#define UVD_RBC_IB_BASE 0xf684 15338c2ecf20Sopenharmony_ci#define UVD_RBC_IB_SIZE 0xf688 15348c2ecf20Sopenharmony_ci#define UVD_RBC_RB_BASE 0xf68c 15358c2ecf20Sopenharmony_ci#define UVD_RBC_RB_RPTR 0xf690 15368c2ecf20Sopenharmony_ci#define UVD_RBC_RB_WPTR 0xf694 15378c2ecf20Sopenharmony_ci#define UVD_RBC_RB_WPTR_CNTL 0xf698 15388c2ecf20Sopenharmony_ci 15398c2ecf20Sopenharmony_ci#define UVD_STATUS 0xf6bc 15408c2ecf20Sopenharmony_ci 15418c2ecf20Sopenharmony_ci#define UVD_SEMA_TIMEOUT_STATUS 0xf6c0 15428c2ecf20Sopenharmony_ci#define UVD_SEMA_WAIT_INCOMPLETE_TIMEOUT_CNTL 0xf6c4 15438c2ecf20Sopenharmony_ci#define UVD_SEMA_WAIT_FAULT_TIMEOUT_CNTL 0xf6c8 15448c2ecf20Sopenharmony_ci#define UVD_SEMA_SIGNAL_INCOMPLETE_TIMEOUT_CNTL 0xf6cc 15458c2ecf20Sopenharmony_ci 15468c2ecf20Sopenharmony_ci#define UVD_RBC_RB_CNTL 0xf6a4 15478c2ecf20Sopenharmony_ci#define UVD_RBC_RB_RPTR_ADDR 0xf6a8 15488c2ecf20Sopenharmony_ci 15498c2ecf20Sopenharmony_ci#define UVD_CONTEXT_ID 0xf6f4 15508c2ecf20Sopenharmony_ci 15518c2ecf20Sopenharmony_ci/* rs780 only */ 15528c2ecf20Sopenharmony_ci#define GFX_MACRO_BYPASS_CNTL 0x30c0 15538c2ecf20Sopenharmony_ci#define SPLL_BYPASS_CNTL (1 << 0) 15548c2ecf20Sopenharmony_ci#define UPLL_BYPASS_CNTL (1 << 1) 15558c2ecf20Sopenharmony_ci 15568c2ecf20Sopenharmony_ci#define CG_UPLL_FUNC_CNTL 0x7e0 15578c2ecf20Sopenharmony_ci# define UPLL_RESET_MASK 0x00000001 15588c2ecf20Sopenharmony_ci# define UPLL_SLEEP_MASK 0x00000002 15598c2ecf20Sopenharmony_ci# define UPLL_BYPASS_EN_MASK 0x00000004 15608c2ecf20Sopenharmony_ci# define UPLL_CTLREQ_MASK 0x00000008 15618c2ecf20Sopenharmony_ci# define UPLL_FB_DIV(x) ((x) << 4) 15628c2ecf20Sopenharmony_ci# define UPLL_FB_DIV_MASK 0x0000FFF0 15638c2ecf20Sopenharmony_ci# define UPLL_REF_DIV(x) ((x) << 16) 15648c2ecf20Sopenharmony_ci# define UPLL_REF_DIV_MASK 0x003F0000 15658c2ecf20Sopenharmony_ci# define UPLL_REFCLK_SRC_SEL_MASK 0x20000000 15668c2ecf20Sopenharmony_ci# define UPLL_CTLACK_MASK 0x40000000 15678c2ecf20Sopenharmony_ci# define UPLL_CTLACK2_MASK 0x80000000 15688c2ecf20Sopenharmony_ci#define CG_UPLL_FUNC_CNTL_2 0x7e4 15698c2ecf20Sopenharmony_ci# define UPLL_SW_HILEN(x) ((x) << 0) 15708c2ecf20Sopenharmony_ci# define UPLL_SW_LOLEN(x) ((x) << 4) 15718c2ecf20Sopenharmony_ci# define UPLL_SW_HILEN2(x) ((x) << 8) 15728c2ecf20Sopenharmony_ci# define UPLL_SW_LOLEN2(x) ((x) << 12) 15738c2ecf20Sopenharmony_ci# define UPLL_DIVEN_MASK 0x00010000 15748c2ecf20Sopenharmony_ci# define UPLL_DIVEN2_MASK 0x00020000 15758c2ecf20Sopenharmony_ci# define UPLL_SW_MASK 0x0003FFFF 15768c2ecf20Sopenharmony_ci# define VCLK_SRC_SEL(x) ((x) << 20) 15778c2ecf20Sopenharmony_ci# define VCLK_SRC_SEL_MASK 0x01F00000 15788c2ecf20Sopenharmony_ci# define DCLK_SRC_SEL(x) ((x) << 25) 15798c2ecf20Sopenharmony_ci# define DCLK_SRC_SEL_MASK 0x3E000000 15808c2ecf20Sopenharmony_ci 15818c2ecf20Sopenharmony_ci/* 15828c2ecf20Sopenharmony_ci * PM4 15838c2ecf20Sopenharmony_ci */ 15848c2ecf20Sopenharmony_ci#define PACKET0(reg, n) ((RADEON_PACKET_TYPE0 << 30) | \ 15858c2ecf20Sopenharmony_ci (((reg) >> 2) & 0xFFFF) | \ 15868c2ecf20Sopenharmony_ci ((n) & 0x3FFF) << 16) 15878c2ecf20Sopenharmony_ci#define PACKET3(op, n) ((RADEON_PACKET_TYPE3 << 30) | \ 15888c2ecf20Sopenharmony_ci (((op) & 0xFF) << 8) | \ 15898c2ecf20Sopenharmony_ci ((n) & 0x3FFF) << 16) 15908c2ecf20Sopenharmony_ci 15918c2ecf20Sopenharmony_ci/* Packet 3 types */ 15928c2ecf20Sopenharmony_ci#define PACKET3_NOP 0x10 15938c2ecf20Sopenharmony_ci#define PACKET3_INDIRECT_BUFFER_END 0x17 15948c2ecf20Sopenharmony_ci#define PACKET3_SET_PREDICATION 0x20 15958c2ecf20Sopenharmony_ci#define PACKET3_REG_RMW 0x21 15968c2ecf20Sopenharmony_ci#define PACKET3_COND_EXEC 0x22 15978c2ecf20Sopenharmony_ci#define PACKET3_PRED_EXEC 0x23 15988c2ecf20Sopenharmony_ci#define PACKET3_START_3D_CMDBUF 0x24 15998c2ecf20Sopenharmony_ci#define PACKET3_DRAW_INDEX_2 0x27 16008c2ecf20Sopenharmony_ci#define PACKET3_CONTEXT_CONTROL 0x28 16018c2ecf20Sopenharmony_ci#define PACKET3_DRAW_INDEX_IMMD_BE 0x29 16028c2ecf20Sopenharmony_ci#define PACKET3_INDEX_TYPE 0x2A 16038c2ecf20Sopenharmony_ci#define PACKET3_DRAW_INDEX 0x2B 16048c2ecf20Sopenharmony_ci#define PACKET3_DRAW_INDEX_AUTO 0x2D 16058c2ecf20Sopenharmony_ci#define PACKET3_DRAW_INDEX_IMMD 0x2E 16068c2ecf20Sopenharmony_ci#define PACKET3_NUM_INSTANCES 0x2F 16078c2ecf20Sopenharmony_ci#define PACKET3_STRMOUT_BUFFER_UPDATE 0x34 16088c2ecf20Sopenharmony_ci#define PACKET3_INDIRECT_BUFFER_MP 0x38 16098c2ecf20Sopenharmony_ci#define PACKET3_MEM_SEMAPHORE 0x39 16108c2ecf20Sopenharmony_ci# define PACKET3_SEM_WAIT_ON_SIGNAL (0x1 << 12) 16118c2ecf20Sopenharmony_ci# define PACKET3_SEM_SEL_SIGNAL (0x6 << 29) 16128c2ecf20Sopenharmony_ci# define PACKET3_SEM_SEL_WAIT (0x7 << 29) 16138c2ecf20Sopenharmony_ci#define PACKET3_MPEG_INDEX 0x3A 16148c2ecf20Sopenharmony_ci#define PACKET3_COPY_DW 0x3B 16158c2ecf20Sopenharmony_ci#define PACKET3_WAIT_REG_MEM 0x3C 16168c2ecf20Sopenharmony_ci#define PACKET3_MEM_WRITE 0x3D 16178c2ecf20Sopenharmony_ci#define PACKET3_INDIRECT_BUFFER 0x32 16188c2ecf20Sopenharmony_ci#define PACKET3_CP_DMA 0x41 16198c2ecf20Sopenharmony_ci/* 1. header 16208c2ecf20Sopenharmony_ci * 2. SRC_ADDR_LO [31:0] 16218c2ecf20Sopenharmony_ci * 3. CP_SYNC [31] | SRC_ADDR_HI [7:0] 16228c2ecf20Sopenharmony_ci * 4. DST_ADDR_LO [31:0] 16238c2ecf20Sopenharmony_ci * 5. DST_ADDR_HI [7:0] 16248c2ecf20Sopenharmony_ci * 6. COMMAND [29:22] | BYTE_COUNT [20:0] 16258c2ecf20Sopenharmony_ci */ 16268c2ecf20Sopenharmony_ci# define PACKET3_CP_DMA_CP_SYNC (1 << 31) 16278c2ecf20Sopenharmony_ci/* COMMAND */ 16288c2ecf20Sopenharmony_ci# define PACKET3_CP_DMA_CMD_SRC_SWAP(x) ((x) << 22) 16298c2ecf20Sopenharmony_ci /* 0 - none 16308c2ecf20Sopenharmony_ci * 1 - 8 in 16 16318c2ecf20Sopenharmony_ci * 2 - 8 in 32 16328c2ecf20Sopenharmony_ci * 3 - 8 in 64 16338c2ecf20Sopenharmony_ci */ 16348c2ecf20Sopenharmony_ci# define PACKET3_CP_DMA_CMD_DST_SWAP(x) ((x) << 24) 16358c2ecf20Sopenharmony_ci /* 0 - none 16368c2ecf20Sopenharmony_ci * 1 - 8 in 16 16378c2ecf20Sopenharmony_ci * 2 - 8 in 32 16388c2ecf20Sopenharmony_ci * 3 - 8 in 64 16398c2ecf20Sopenharmony_ci */ 16408c2ecf20Sopenharmony_ci# define PACKET3_CP_DMA_CMD_SAS (1 << 26) 16418c2ecf20Sopenharmony_ci /* 0 - memory 16428c2ecf20Sopenharmony_ci * 1 - register 16438c2ecf20Sopenharmony_ci */ 16448c2ecf20Sopenharmony_ci# define PACKET3_CP_DMA_CMD_DAS (1 << 27) 16458c2ecf20Sopenharmony_ci /* 0 - memory 16468c2ecf20Sopenharmony_ci * 1 - register 16478c2ecf20Sopenharmony_ci */ 16488c2ecf20Sopenharmony_ci# define PACKET3_CP_DMA_CMD_SAIC (1 << 28) 16498c2ecf20Sopenharmony_ci# define PACKET3_CP_DMA_CMD_DAIC (1 << 29) 16508c2ecf20Sopenharmony_ci#define PACKET3_PFP_SYNC_ME 0x42 /* r7xx+ only */ 16518c2ecf20Sopenharmony_ci#define PACKET3_SURFACE_SYNC 0x43 16528c2ecf20Sopenharmony_ci# define PACKET3_CB0_DEST_BASE_ENA (1 << 6) 16538c2ecf20Sopenharmony_ci# define PACKET3_FULL_CACHE_ENA (1 << 20) /* r7xx+ only */ 16548c2ecf20Sopenharmony_ci# define PACKET3_TC_ACTION_ENA (1 << 23) 16558c2ecf20Sopenharmony_ci# define PACKET3_VC_ACTION_ENA (1 << 24) 16568c2ecf20Sopenharmony_ci# define PACKET3_CB_ACTION_ENA (1 << 25) 16578c2ecf20Sopenharmony_ci# define PACKET3_DB_ACTION_ENA (1 << 26) 16588c2ecf20Sopenharmony_ci# define PACKET3_SH_ACTION_ENA (1 << 27) 16598c2ecf20Sopenharmony_ci# define PACKET3_SMX_ACTION_ENA (1 << 28) 16608c2ecf20Sopenharmony_ci#define PACKET3_ME_INITIALIZE 0x44 16618c2ecf20Sopenharmony_ci#define PACKET3_ME_INITIALIZE_DEVICE_ID(x) ((x) << 16) 16628c2ecf20Sopenharmony_ci#define PACKET3_COND_WRITE 0x45 16638c2ecf20Sopenharmony_ci#define PACKET3_EVENT_WRITE 0x46 16648c2ecf20Sopenharmony_ci#define EVENT_TYPE(x) ((x) << 0) 16658c2ecf20Sopenharmony_ci#define EVENT_INDEX(x) ((x) << 8) 16668c2ecf20Sopenharmony_ci /* 0 - any non-TS event 16678c2ecf20Sopenharmony_ci * 1 - ZPASS_DONE 16688c2ecf20Sopenharmony_ci * 2 - SAMPLE_PIPELINESTAT 16698c2ecf20Sopenharmony_ci * 3 - SAMPLE_STREAMOUTSTAT* 16708c2ecf20Sopenharmony_ci * 4 - *S_PARTIAL_FLUSH 16718c2ecf20Sopenharmony_ci * 5 - TS events 16728c2ecf20Sopenharmony_ci */ 16738c2ecf20Sopenharmony_ci#define PACKET3_EVENT_WRITE_EOP 0x47 16748c2ecf20Sopenharmony_ci#define DATA_SEL(x) ((x) << 29) 16758c2ecf20Sopenharmony_ci /* 0 - discard 16768c2ecf20Sopenharmony_ci * 1 - send low 32bit data 16778c2ecf20Sopenharmony_ci * 2 - send 64bit data 16788c2ecf20Sopenharmony_ci * 3 - send 64bit counter value 16798c2ecf20Sopenharmony_ci */ 16808c2ecf20Sopenharmony_ci#define INT_SEL(x) ((x) << 24) 16818c2ecf20Sopenharmony_ci /* 0 - none 16828c2ecf20Sopenharmony_ci * 1 - interrupt only (DATA_SEL = 0) 16838c2ecf20Sopenharmony_ci * 2 - interrupt when data write is confirmed 16848c2ecf20Sopenharmony_ci */ 16858c2ecf20Sopenharmony_ci#define PACKET3_ONE_REG_WRITE 0x57 16868c2ecf20Sopenharmony_ci#define PACKET3_SET_CONFIG_REG 0x68 16878c2ecf20Sopenharmony_ci#define PACKET3_SET_CONFIG_REG_OFFSET 0x00008000 16888c2ecf20Sopenharmony_ci#define PACKET3_SET_CONFIG_REG_END 0x0000ac00 16898c2ecf20Sopenharmony_ci#define PACKET3_SET_CONTEXT_REG 0x69 16908c2ecf20Sopenharmony_ci#define PACKET3_SET_CONTEXT_REG_OFFSET 0x00028000 16918c2ecf20Sopenharmony_ci#define PACKET3_SET_CONTEXT_REG_END 0x00029000 16928c2ecf20Sopenharmony_ci#define PACKET3_SET_ALU_CONST 0x6A 16938c2ecf20Sopenharmony_ci#define PACKET3_SET_ALU_CONST_OFFSET 0x00030000 16948c2ecf20Sopenharmony_ci#define PACKET3_SET_ALU_CONST_END 0x00032000 16958c2ecf20Sopenharmony_ci#define PACKET3_SET_BOOL_CONST 0x6B 16968c2ecf20Sopenharmony_ci#define PACKET3_SET_BOOL_CONST_OFFSET 0x0003e380 16978c2ecf20Sopenharmony_ci#define PACKET3_SET_BOOL_CONST_END 0x00040000 16988c2ecf20Sopenharmony_ci#define PACKET3_SET_LOOP_CONST 0x6C 16998c2ecf20Sopenharmony_ci#define PACKET3_SET_LOOP_CONST_OFFSET 0x0003e200 17008c2ecf20Sopenharmony_ci#define PACKET3_SET_LOOP_CONST_END 0x0003e380 17018c2ecf20Sopenharmony_ci#define PACKET3_SET_RESOURCE 0x6D 17028c2ecf20Sopenharmony_ci#define PACKET3_SET_RESOURCE_OFFSET 0x00038000 17038c2ecf20Sopenharmony_ci#define PACKET3_SET_RESOURCE_END 0x0003c000 17048c2ecf20Sopenharmony_ci#define PACKET3_SET_SAMPLER 0x6E 17058c2ecf20Sopenharmony_ci#define PACKET3_SET_SAMPLER_OFFSET 0x0003c000 17068c2ecf20Sopenharmony_ci#define PACKET3_SET_SAMPLER_END 0x0003cff0 17078c2ecf20Sopenharmony_ci#define PACKET3_SET_CTL_CONST 0x6F 17088c2ecf20Sopenharmony_ci#define PACKET3_SET_CTL_CONST_OFFSET 0x0003cff0 17098c2ecf20Sopenharmony_ci#define PACKET3_SET_CTL_CONST_END 0x0003e200 17108c2ecf20Sopenharmony_ci#define PACKET3_STRMOUT_BASE_UPDATE 0x72 /* r7xx */ 17118c2ecf20Sopenharmony_ci#define PACKET3_SURFACE_BASE_UPDATE 0x73 17128c2ecf20Sopenharmony_ci 17138c2ecf20Sopenharmony_ci#define R_000011_K8_FB_LOCATION 0x11 17148c2ecf20Sopenharmony_ci#define R_000012_MC_MISC_UMA_CNTL 0x12 17158c2ecf20Sopenharmony_ci#define G_000012_K8_ADDR_EXT(x) (((x) >> 0) & 0xFF) 17168c2ecf20Sopenharmony_ci#define R_0028F8_MC_INDEX 0x28F8 17178c2ecf20Sopenharmony_ci#define S_0028F8_MC_IND_ADDR(x) (((x) & 0x1FF) << 0) 17188c2ecf20Sopenharmony_ci#define C_0028F8_MC_IND_ADDR 0xFFFFFE00 17198c2ecf20Sopenharmony_ci#define S_0028F8_MC_IND_WR_EN(x) (((x) & 0x1) << 9) 17208c2ecf20Sopenharmony_ci#define R_0028FC_MC_DATA 0x28FC 17218c2ecf20Sopenharmony_ci 17228c2ecf20Sopenharmony_ci#define R_008020_GRBM_SOFT_RESET 0x8020 17238c2ecf20Sopenharmony_ci#define S_008020_SOFT_RESET_CP(x) (((x) & 1) << 0) 17248c2ecf20Sopenharmony_ci#define S_008020_SOFT_RESET_CB(x) (((x) & 1) << 1) 17258c2ecf20Sopenharmony_ci#define S_008020_SOFT_RESET_CR(x) (((x) & 1) << 2) 17268c2ecf20Sopenharmony_ci#define S_008020_SOFT_RESET_DB(x) (((x) & 1) << 3) 17278c2ecf20Sopenharmony_ci#define S_008020_SOFT_RESET_PA(x) (((x) & 1) << 5) 17288c2ecf20Sopenharmony_ci#define S_008020_SOFT_RESET_SC(x) (((x) & 1) << 6) 17298c2ecf20Sopenharmony_ci#define S_008020_SOFT_RESET_SMX(x) (((x) & 1) << 7) 17308c2ecf20Sopenharmony_ci#define S_008020_SOFT_RESET_SPI(x) (((x) & 1) << 8) 17318c2ecf20Sopenharmony_ci#define S_008020_SOFT_RESET_SH(x) (((x) & 1) << 9) 17328c2ecf20Sopenharmony_ci#define S_008020_SOFT_RESET_SX(x) (((x) & 1) << 10) 17338c2ecf20Sopenharmony_ci#define S_008020_SOFT_RESET_TC(x) (((x) & 1) << 11) 17348c2ecf20Sopenharmony_ci#define S_008020_SOFT_RESET_TA(x) (((x) & 1) << 12) 17358c2ecf20Sopenharmony_ci#define S_008020_SOFT_RESET_VC(x) (((x) & 1) << 13) 17368c2ecf20Sopenharmony_ci#define S_008020_SOFT_RESET_VGT(x) (((x) & 1) << 14) 17378c2ecf20Sopenharmony_ci#define R_008010_GRBM_STATUS 0x8010 17388c2ecf20Sopenharmony_ci#define S_008010_CMDFIFO_AVAIL(x) (((x) & 0x1F) << 0) 17398c2ecf20Sopenharmony_ci#define S_008010_CP_RQ_PENDING(x) (((x) & 1) << 6) 17408c2ecf20Sopenharmony_ci#define S_008010_CF_RQ_PENDING(x) (((x) & 1) << 7) 17418c2ecf20Sopenharmony_ci#define S_008010_PF_RQ_PENDING(x) (((x) & 1) << 8) 17428c2ecf20Sopenharmony_ci#define S_008010_GRBM_EE_BUSY(x) (((x) & 1) << 10) 17438c2ecf20Sopenharmony_ci#define S_008010_VC_BUSY(x) (((x) & 1) << 11) 17448c2ecf20Sopenharmony_ci#define S_008010_DB03_CLEAN(x) (((x) & 1) << 12) 17458c2ecf20Sopenharmony_ci#define S_008010_CB03_CLEAN(x) (((x) & 1) << 13) 17468c2ecf20Sopenharmony_ci#define S_008010_VGT_BUSY_NO_DMA(x) (((x) & 1) << 16) 17478c2ecf20Sopenharmony_ci#define S_008010_VGT_BUSY(x) (((x) & 1) << 17) 17488c2ecf20Sopenharmony_ci#define S_008010_TA03_BUSY(x) (((x) & 1) << 18) 17498c2ecf20Sopenharmony_ci#define S_008010_TC_BUSY(x) (((x) & 1) << 19) 17508c2ecf20Sopenharmony_ci#define S_008010_SX_BUSY(x) (((x) & 1) << 20) 17518c2ecf20Sopenharmony_ci#define S_008010_SH_BUSY(x) (((x) & 1) << 21) 17528c2ecf20Sopenharmony_ci#define S_008010_SPI03_BUSY(x) (((x) & 1) << 22) 17538c2ecf20Sopenharmony_ci#define S_008010_SMX_BUSY(x) (((x) & 1) << 23) 17548c2ecf20Sopenharmony_ci#define S_008010_SC_BUSY(x) (((x) & 1) << 24) 17558c2ecf20Sopenharmony_ci#define S_008010_PA_BUSY(x) (((x) & 1) << 25) 17568c2ecf20Sopenharmony_ci#define S_008010_DB03_BUSY(x) (((x) & 1) << 26) 17578c2ecf20Sopenharmony_ci#define S_008010_CR_BUSY(x) (((x) & 1) << 27) 17588c2ecf20Sopenharmony_ci#define S_008010_CP_COHERENCY_BUSY(x) (((x) & 1) << 28) 17598c2ecf20Sopenharmony_ci#define S_008010_CP_BUSY(x) (((x) & 1) << 29) 17608c2ecf20Sopenharmony_ci#define S_008010_CB03_BUSY(x) (((x) & 1) << 30) 17618c2ecf20Sopenharmony_ci#define S_008010_GUI_ACTIVE(x) (((x) & 1) << 31) 17628c2ecf20Sopenharmony_ci#define G_008010_CMDFIFO_AVAIL(x) (((x) >> 0) & 0x1F) 17638c2ecf20Sopenharmony_ci#define G_008010_CP_RQ_PENDING(x) (((x) >> 6) & 1) 17648c2ecf20Sopenharmony_ci#define G_008010_CF_RQ_PENDING(x) (((x) >> 7) & 1) 17658c2ecf20Sopenharmony_ci#define G_008010_PF_RQ_PENDING(x) (((x) >> 8) & 1) 17668c2ecf20Sopenharmony_ci#define G_008010_GRBM_EE_BUSY(x) (((x) >> 10) & 1) 17678c2ecf20Sopenharmony_ci#define G_008010_VC_BUSY(x) (((x) >> 11) & 1) 17688c2ecf20Sopenharmony_ci#define G_008010_DB03_CLEAN(x) (((x) >> 12) & 1) 17698c2ecf20Sopenharmony_ci#define G_008010_CB03_CLEAN(x) (((x) >> 13) & 1) 17708c2ecf20Sopenharmony_ci#define G_008010_TA_BUSY(x) (((x) >> 14) & 1) 17718c2ecf20Sopenharmony_ci#define G_008010_VGT_BUSY_NO_DMA(x) (((x) >> 16) & 1) 17728c2ecf20Sopenharmony_ci#define G_008010_VGT_BUSY(x) (((x) >> 17) & 1) 17738c2ecf20Sopenharmony_ci#define G_008010_TA03_BUSY(x) (((x) >> 18) & 1) 17748c2ecf20Sopenharmony_ci#define G_008010_TC_BUSY(x) (((x) >> 19) & 1) 17758c2ecf20Sopenharmony_ci#define G_008010_SX_BUSY(x) (((x) >> 20) & 1) 17768c2ecf20Sopenharmony_ci#define G_008010_SH_BUSY(x) (((x) >> 21) & 1) 17778c2ecf20Sopenharmony_ci#define G_008010_SPI03_BUSY(x) (((x) >> 22) & 1) 17788c2ecf20Sopenharmony_ci#define G_008010_SMX_BUSY(x) (((x) >> 23) & 1) 17798c2ecf20Sopenharmony_ci#define G_008010_SC_BUSY(x) (((x) >> 24) & 1) 17808c2ecf20Sopenharmony_ci#define G_008010_PA_BUSY(x) (((x) >> 25) & 1) 17818c2ecf20Sopenharmony_ci#define G_008010_DB03_BUSY(x) (((x) >> 26) & 1) 17828c2ecf20Sopenharmony_ci#define G_008010_CR_BUSY(x) (((x) >> 27) & 1) 17838c2ecf20Sopenharmony_ci#define G_008010_CP_COHERENCY_BUSY(x) (((x) >> 28) & 1) 17848c2ecf20Sopenharmony_ci#define G_008010_CP_BUSY(x) (((x) >> 29) & 1) 17858c2ecf20Sopenharmony_ci#define G_008010_CB03_BUSY(x) (((x) >> 30) & 1) 17868c2ecf20Sopenharmony_ci#define G_008010_GUI_ACTIVE(x) (((x) >> 31) & 1) 17878c2ecf20Sopenharmony_ci#define R_008014_GRBM_STATUS2 0x8014 17888c2ecf20Sopenharmony_ci#define S_008014_CR_CLEAN(x) (((x) & 1) << 0) 17898c2ecf20Sopenharmony_ci#define S_008014_SMX_CLEAN(x) (((x) & 1) << 1) 17908c2ecf20Sopenharmony_ci#define S_008014_SPI0_BUSY(x) (((x) & 1) << 8) 17918c2ecf20Sopenharmony_ci#define S_008014_SPI1_BUSY(x) (((x) & 1) << 9) 17928c2ecf20Sopenharmony_ci#define S_008014_SPI2_BUSY(x) (((x) & 1) << 10) 17938c2ecf20Sopenharmony_ci#define S_008014_SPI3_BUSY(x) (((x) & 1) << 11) 17948c2ecf20Sopenharmony_ci#define S_008014_TA0_BUSY(x) (((x) & 1) << 12) 17958c2ecf20Sopenharmony_ci#define S_008014_TA1_BUSY(x) (((x) & 1) << 13) 17968c2ecf20Sopenharmony_ci#define S_008014_TA2_BUSY(x) (((x) & 1) << 14) 17978c2ecf20Sopenharmony_ci#define S_008014_TA3_BUSY(x) (((x) & 1) << 15) 17988c2ecf20Sopenharmony_ci#define S_008014_DB0_BUSY(x) (((x) & 1) << 16) 17998c2ecf20Sopenharmony_ci#define S_008014_DB1_BUSY(x) (((x) & 1) << 17) 18008c2ecf20Sopenharmony_ci#define S_008014_DB2_BUSY(x) (((x) & 1) << 18) 18018c2ecf20Sopenharmony_ci#define S_008014_DB3_BUSY(x) (((x) & 1) << 19) 18028c2ecf20Sopenharmony_ci#define S_008014_CB0_BUSY(x) (((x) & 1) << 20) 18038c2ecf20Sopenharmony_ci#define S_008014_CB1_BUSY(x) (((x) & 1) << 21) 18048c2ecf20Sopenharmony_ci#define S_008014_CB2_BUSY(x) (((x) & 1) << 22) 18058c2ecf20Sopenharmony_ci#define S_008014_CB3_BUSY(x) (((x) & 1) << 23) 18068c2ecf20Sopenharmony_ci#define G_008014_CR_CLEAN(x) (((x) >> 0) & 1) 18078c2ecf20Sopenharmony_ci#define G_008014_SMX_CLEAN(x) (((x) >> 1) & 1) 18088c2ecf20Sopenharmony_ci#define G_008014_SPI0_BUSY(x) (((x) >> 8) & 1) 18098c2ecf20Sopenharmony_ci#define G_008014_SPI1_BUSY(x) (((x) >> 9) & 1) 18108c2ecf20Sopenharmony_ci#define G_008014_SPI2_BUSY(x) (((x) >> 10) & 1) 18118c2ecf20Sopenharmony_ci#define G_008014_SPI3_BUSY(x) (((x) >> 11) & 1) 18128c2ecf20Sopenharmony_ci#define G_008014_TA0_BUSY(x) (((x) >> 12) & 1) 18138c2ecf20Sopenharmony_ci#define G_008014_TA1_BUSY(x) (((x) >> 13) & 1) 18148c2ecf20Sopenharmony_ci#define G_008014_TA2_BUSY(x) (((x) >> 14) & 1) 18158c2ecf20Sopenharmony_ci#define G_008014_TA3_BUSY(x) (((x) >> 15) & 1) 18168c2ecf20Sopenharmony_ci#define G_008014_DB0_BUSY(x) (((x) >> 16) & 1) 18178c2ecf20Sopenharmony_ci#define G_008014_DB1_BUSY(x) (((x) >> 17) & 1) 18188c2ecf20Sopenharmony_ci#define G_008014_DB2_BUSY(x) (((x) >> 18) & 1) 18198c2ecf20Sopenharmony_ci#define G_008014_DB3_BUSY(x) (((x) >> 19) & 1) 18208c2ecf20Sopenharmony_ci#define G_008014_CB0_BUSY(x) (((x) >> 20) & 1) 18218c2ecf20Sopenharmony_ci#define G_008014_CB1_BUSY(x) (((x) >> 21) & 1) 18228c2ecf20Sopenharmony_ci#define G_008014_CB2_BUSY(x) (((x) >> 22) & 1) 18238c2ecf20Sopenharmony_ci#define G_008014_CB3_BUSY(x) (((x) >> 23) & 1) 18248c2ecf20Sopenharmony_ci#define R_000E50_SRBM_STATUS 0x0E50 18258c2ecf20Sopenharmony_ci#define G_000E50_RLC_RQ_PENDING(x) (((x) >> 3) & 1) 18268c2ecf20Sopenharmony_ci#define G_000E50_RCU_RQ_PENDING(x) (((x) >> 4) & 1) 18278c2ecf20Sopenharmony_ci#define G_000E50_GRBM_RQ_PENDING(x) (((x) >> 5) & 1) 18288c2ecf20Sopenharmony_ci#define G_000E50_HI_RQ_PENDING(x) (((x) >> 6) & 1) 18298c2ecf20Sopenharmony_ci#define G_000E50_IO_EXTERN_SIGNAL(x) (((x) >> 7) & 1) 18308c2ecf20Sopenharmony_ci#define G_000E50_VMC_BUSY(x) (((x) >> 8) & 1) 18318c2ecf20Sopenharmony_ci#define G_000E50_MCB_BUSY(x) (((x) >> 9) & 1) 18328c2ecf20Sopenharmony_ci#define G_000E50_MCDZ_BUSY(x) (((x) >> 10) & 1) 18338c2ecf20Sopenharmony_ci#define G_000E50_MCDY_BUSY(x) (((x) >> 11) & 1) 18348c2ecf20Sopenharmony_ci#define G_000E50_MCDX_BUSY(x) (((x) >> 12) & 1) 18358c2ecf20Sopenharmony_ci#define G_000E50_MCDW_BUSY(x) (((x) >> 13) & 1) 18368c2ecf20Sopenharmony_ci#define G_000E50_SEM_BUSY(x) (((x) >> 14) & 1) 18378c2ecf20Sopenharmony_ci#define G_000E50_RLC_BUSY(x) (((x) >> 15) & 1) 18388c2ecf20Sopenharmony_ci#define G_000E50_IH_BUSY(x) (((x) >> 17) & 1) 18398c2ecf20Sopenharmony_ci#define G_000E50_BIF_BUSY(x) (((x) >> 29) & 1) 18408c2ecf20Sopenharmony_ci#define R_000E60_SRBM_SOFT_RESET 0x0E60 18418c2ecf20Sopenharmony_ci#define S_000E60_SOFT_RESET_BIF(x) (((x) & 1) << 1) 18428c2ecf20Sopenharmony_ci#define S_000E60_SOFT_RESET_CG(x) (((x) & 1) << 2) 18438c2ecf20Sopenharmony_ci#define S_000E60_SOFT_RESET_CMC(x) (((x) & 1) << 3) 18448c2ecf20Sopenharmony_ci#define S_000E60_SOFT_RESET_CSC(x) (((x) & 1) << 4) 18458c2ecf20Sopenharmony_ci#define S_000E60_SOFT_RESET_DC(x) (((x) & 1) << 5) 18468c2ecf20Sopenharmony_ci#define S_000E60_SOFT_RESET_GRBM(x) (((x) & 1) << 8) 18478c2ecf20Sopenharmony_ci#define S_000E60_SOFT_RESET_HDP(x) (((x) & 1) << 9) 18488c2ecf20Sopenharmony_ci#define S_000E60_SOFT_RESET_IH(x) (((x) & 1) << 10) 18498c2ecf20Sopenharmony_ci#define S_000E60_SOFT_RESET_MC(x) (((x) & 1) << 11) 18508c2ecf20Sopenharmony_ci#define S_000E60_SOFT_RESET_RLC(x) (((x) & 1) << 13) 18518c2ecf20Sopenharmony_ci#define S_000E60_SOFT_RESET_ROM(x) (((x) & 1) << 14) 18528c2ecf20Sopenharmony_ci#define S_000E60_SOFT_RESET_SEM(x) (((x) & 1) << 15) 18538c2ecf20Sopenharmony_ci#define S_000E60_SOFT_RESET_TSC(x) (((x) & 1) << 16) 18548c2ecf20Sopenharmony_ci#define S_000E60_SOFT_RESET_VMC(x) (((x) & 1) << 17) 18558c2ecf20Sopenharmony_ci 18568c2ecf20Sopenharmony_ci#define R_005480_HDP_MEM_COHERENCY_FLUSH_CNTL 0x5480 18578c2ecf20Sopenharmony_ci 18588c2ecf20Sopenharmony_ci#define R_028C04_PA_SC_AA_CONFIG 0x028C04 18598c2ecf20Sopenharmony_ci#define S_028C04_MSAA_NUM_SAMPLES(x) (((x) & 0x3) << 0) 18608c2ecf20Sopenharmony_ci#define G_028C04_MSAA_NUM_SAMPLES(x) (((x) >> 0) & 0x3) 18618c2ecf20Sopenharmony_ci#define C_028C04_MSAA_NUM_SAMPLES 0xFFFFFFFC 18628c2ecf20Sopenharmony_ci#define S_028C04_AA_MASK_CENTROID_DTMN(x) (((x) & 0x1) << 4) 18638c2ecf20Sopenharmony_ci#define G_028C04_AA_MASK_CENTROID_DTMN(x) (((x) >> 4) & 0x1) 18648c2ecf20Sopenharmony_ci#define C_028C04_AA_MASK_CENTROID_DTMN 0xFFFFFFEF 18658c2ecf20Sopenharmony_ci#define S_028C04_MAX_SAMPLE_DIST(x) (((x) & 0xF) << 13) 18668c2ecf20Sopenharmony_ci#define G_028C04_MAX_SAMPLE_DIST(x) (((x) >> 13) & 0xF) 18678c2ecf20Sopenharmony_ci#define C_028C04_MAX_SAMPLE_DIST 0xFFFE1FFF 18688c2ecf20Sopenharmony_ci#define R_0280E0_CB_COLOR0_FRAG 0x0280E0 18698c2ecf20Sopenharmony_ci#define S_0280E0_BASE_256B(x) (((x) & 0xFFFFFFFF) << 0) 18708c2ecf20Sopenharmony_ci#define G_0280E0_BASE_256B(x) (((x) >> 0) & 0xFFFFFFFF) 18718c2ecf20Sopenharmony_ci#define C_0280E0_BASE_256B 0x00000000 18728c2ecf20Sopenharmony_ci#define R_0280E4_CB_COLOR1_FRAG 0x0280E4 18738c2ecf20Sopenharmony_ci#define R_0280E8_CB_COLOR2_FRAG 0x0280E8 18748c2ecf20Sopenharmony_ci#define R_0280EC_CB_COLOR3_FRAG 0x0280EC 18758c2ecf20Sopenharmony_ci#define R_0280F0_CB_COLOR4_FRAG 0x0280F0 18768c2ecf20Sopenharmony_ci#define R_0280F4_CB_COLOR5_FRAG 0x0280F4 18778c2ecf20Sopenharmony_ci#define R_0280F8_CB_COLOR6_FRAG 0x0280F8 18788c2ecf20Sopenharmony_ci#define R_0280FC_CB_COLOR7_FRAG 0x0280FC 18798c2ecf20Sopenharmony_ci#define R_0280C0_CB_COLOR0_TILE 0x0280C0 18808c2ecf20Sopenharmony_ci#define S_0280C0_BASE_256B(x) (((x) & 0xFFFFFFFF) << 0) 18818c2ecf20Sopenharmony_ci#define G_0280C0_BASE_256B(x) (((x) >> 0) & 0xFFFFFFFF) 18828c2ecf20Sopenharmony_ci#define C_0280C0_BASE_256B 0x00000000 18838c2ecf20Sopenharmony_ci#define R_0280C4_CB_COLOR1_TILE 0x0280C4 18848c2ecf20Sopenharmony_ci#define R_0280C8_CB_COLOR2_TILE 0x0280C8 18858c2ecf20Sopenharmony_ci#define R_0280CC_CB_COLOR3_TILE 0x0280CC 18868c2ecf20Sopenharmony_ci#define R_0280D0_CB_COLOR4_TILE 0x0280D0 18878c2ecf20Sopenharmony_ci#define R_0280D4_CB_COLOR5_TILE 0x0280D4 18888c2ecf20Sopenharmony_ci#define R_0280D8_CB_COLOR6_TILE 0x0280D8 18898c2ecf20Sopenharmony_ci#define R_0280DC_CB_COLOR7_TILE 0x0280DC 18908c2ecf20Sopenharmony_ci#define R_0280A0_CB_COLOR0_INFO 0x0280A0 18918c2ecf20Sopenharmony_ci#define S_0280A0_ENDIAN(x) (((x) & 0x3) << 0) 18928c2ecf20Sopenharmony_ci#define G_0280A0_ENDIAN(x) (((x) >> 0) & 0x3) 18938c2ecf20Sopenharmony_ci#define C_0280A0_ENDIAN 0xFFFFFFFC 18948c2ecf20Sopenharmony_ci#define S_0280A0_FORMAT(x) (((x) & 0x3F) << 2) 18958c2ecf20Sopenharmony_ci#define G_0280A0_FORMAT(x) (((x) >> 2) & 0x3F) 18968c2ecf20Sopenharmony_ci#define C_0280A0_FORMAT 0xFFFFFF03 18978c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_INVALID 0x00000000 18988c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_8 0x00000001 18998c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_4_4 0x00000002 19008c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_3_3_2 0x00000003 19018c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_16 0x00000005 19028c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_16_FLOAT 0x00000006 19038c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_8_8 0x00000007 19048c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_5_6_5 0x00000008 19058c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_6_5_5 0x00000009 19068c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_1_5_5_5 0x0000000A 19078c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_4_4_4_4 0x0000000B 19088c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_5_5_5_1 0x0000000C 19098c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_32 0x0000000D 19108c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_32_FLOAT 0x0000000E 19118c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_16_16 0x0000000F 19128c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_16_16_FLOAT 0x00000010 19138c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_8_24 0x00000011 19148c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_8_24_FLOAT 0x00000012 19158c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_24_8 0x00000013 19168c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_24_8_FLOAT 0x00000014 19178c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_10_11_11 0x00000015 19188c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_10_11_11_FLOAT 0x00000016 19198c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_11_11_10 0x00000017 19208c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_11_11_10_FLOAT 0x00000018 19218c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_2_10_10_10 0x00000019 19228c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_8_8_8_8 0x0000001A 19238c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_10_10_10_2 0x0000001B 19248c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_X24_8_32_FLOAT 0x0000001C 19258c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_32_32 0x0000001D 19268c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_32_32_FLOAT 0x0000001E 19278c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_16_16_16_16 0x0000001F 19288c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_16_16_16_16_FLOAT 0x00000020 19298c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_32_32_32_32 0x00000022 19308c2ecf20Sopenharmony_ci#define V_0280A0_COLOR_32_32_32_32_FLOAT 0x00000023 19318c2ecf20Sopenharmony_ci#define S_0280A0_ARRAY_MODE(x) (((x) & 0xF) << 8) 19328c2ecf20Sopenharmony_ci#define G_0280A0_ARRAY_MODE(x) (((x) >> 8) & 0xF) 19338c2ecf20Sopenharmony_ci#define C_0280A0_ARRAY_MODE 0xFFFFF0FF 19348c2ecf20Sopenharmony_ci#define V_0280A0_ARRAY_LINEAR_GENERAL 0x00000000 19358c2ecf20Sopenharmony_ci#define V_0280A0_ARRAY_LINEAR_ALIGNED 0x00000001 19368c2ecf20Sopenharmony_ci#define V_0280A0_ARRAY_1D_TILED_THIN1 0x00000002 19378c2ecf20Sopenharmony_ci#define V_0280A0_ARRAY_2D_TILED_THIN1 0x00000004 19388c2ecf20Sopenharmony_ci#define S_0280A0_NUMBER_TYPE(x) (((x) & 0x7) << 12) 19398c2ecf20Sopenharmony_ci#define G_0280A0_NUMBER_TYPE(x) (((x) >> 12) & 0x7) 19408c2ecf20Sopenharmony_ci#define C_0280A0_NUMBER_TYPE 0xFFFF8FFF 19418c2ecf20Sopenharmony_ci#define S_0280A0_READ_SIZE(x) (((x) & 0x1) << 15) 19428c2ecf20Sopenharmony_ci#define G_0280A0_READ_SIZE(x) (((x) >> 15) & 0x1) 19438c2ecf20Sopenharmony_ci#define C_0280A0_READ_SIZE 0xFFFF7FFF 19448c2ecf20Sopenharmony_ci#define S_0280A0_COMP_SWAP(x) (((x) & 0x3) << 16) 19458c2ecf20Sopenharmony_ci#define G_0280A0_COMP_SWAP(x) (((x) >> 16) & 0x3) 19468c2ecf20Sopenharmony_ci#define C_0280A0_COMP_SWAP 0xFFFCFFFF 19478c2ecf20Sopenharmony_ci#define S_0280A0_TILE_MODE(x) (((x) & 0x3) << 18) 19488c2ecf20Sopenharmony_ci#define G_0280A0_TILE_MODE(x) (((x) >> 18) & 0x3) 19498c2ecf20Sopenharmony_ci#define C_0280A0_TILE_MODE 0xFFF3FFFF 19508c2ecf20Sopenharmony_ci#define V_0280A0_TILE_DISABLE 0 19518c2ecf20Sopenharmony_ci#define V_0280A0_CLEAR_ENABLE 1 19528c2ecf20Sopenharmony_ci#define V_0280A0_FRAG_ENABLE 2 19538c2ecf20Sopenharmony_ci#define S_0280A0_BLEND_CLAMP(x) (((x) & 0x1) << 20) 19548c2ecf20Sopenharmony_ci#define G_0280A0_BLEND_CLAMP(x) (((x) >> 20) & 0x1) 19558c2ecf20Sopenharmony_ci#define C_0280A0_BLEND_CLAMP 0xFFEFFFFF 19568c2ecf20Sopenharmony_ci#define S_0280A0_CLEAR_COLOR(x) (((x) & 0x1) << 21) 19578c2ecf20Sopenharmony_ci#define G_0280A0_CLEAR_COLOR(x) (((x) >> 21) & 0x1) 19588c2ecf20Sopenharmony_ci#define C_0280A0_CLEAR_COLOR 0xFFDFFFFF 19598c2ecf20Sopenharmony_ci#define S_0280A0_BLEND_BYPASS(x) (((x) & 0x1) << 22) 19608c2ecf20Sopenharmony_ci#define G_0280A0_BLEND_BYPASS(x) (((x) >> 22) & 0x1) 19618c2ecf20Sopenharmony_ci#define C_0280A0_BLEND_BYPASS 0xFFBFFFFF 19628c2ecf20Sopenharmony_ci#define S_0280A0_BLEND_FLOAT32(x) (((x) & 0x1) << 23) 19638c2ecf20Sopenharmony_ci#define G_0280A0_BLEND_FLOAT32(x) (((x) >> 23) & 0x1) 19648c2ecf20Sopenharmony_ci#define C_0280A0_BLEND_FLOAT32 0xFF7FFFFF 19658c2ecf20Sopenharmony_ci#define S_0280A0_SIMPLE_FLOAT(x) (((x) & 0x1) << 24) 19668c2ecf20Sopenharmony_ci#define G_0280A0_SIMPLE_FLOAT(x) (((x) >> 24) & 0x1) 19678c2ecf20Sopenharmony_ci#define C_0280A0_SIMPLE_FLOAT 0xFEFFFFFF 19688c2ecf20Sopenharmony_ci#define S_0280A0_ROUND_MODE(x) (((x) & 0x1) << 25) 19698c2ecf20Sopenharmony_ci#define G_0280A0_ROUND_MODE(x) (((x) >> 25) & 0x1) 19708c2ecf20Sopenharmony_ci#define C_0280A0_ROUND_MODE 0xFDFFFFFF 19718c2ecf20Sopenharmony_ci#define S_0280A0_TILE_COMPACT(x) (((x) & 0x1) << 26) 19728c2ecf20Sopenharmony_ci#define G_0280A0_TILE_COMPACT(x) (((x) >> 26) & 0x1) 19738c2ecf20Sopenharmony_ci#define C_0280A0_TILE_COMPACT 0xFBFFFFFF 19748c2ecf20Sopenharmony_ci#define S_0280A0_SOURCE_FORMAT(x) (((x) & 0x1) << 27) 19758c2ecf20Sopenharmony_ci#define G_0280A0_SOURCE_FORMAT(x) (((x) >> 27) & 0x1) 19768c2ecf20Sopenharmony_ci#define C_0280A0_SOURCE_FORMAT 0xF7FFFFFF 19778c2ecf20Sopenharmony_ci#define R_0280A4_CB_COLOR1_INFO 0x0280A4 19788c2ecf20Sopenharmony_ci#define R_0280A8_CB_COLOR2_INFO 0x0280A8 19798c2ecf20Sopenharmony_ci#define R_0280AC_CB_COLOR3_INFO 0x0280AC 19808c2ecf20Sopenharmony_ci#define R_0280B0_CB_COLOR4_INFO 0x0280B0 19818c2ecf20Sopenharmony_ci#define R_0280B4_CB_COLOR5_INFO 0x0280B4 19828c2ecf20Sopenharmony_ci#define R_0280B8_CB_COLOR6_INFO 0x0280B8 19838c2ecf20Sopenharmony_ci#define R_0280BC_CB_COLOR7_INFO 0x0280BC 19848c2ecf20Sopenharmony_ci#define R_028060_CB_COLOR0_SIZE 0x028060 19858c2ecf20Sopenharmony_ci#define S_028060_PITCH_TILE_MAX(x) (((x) & 0x3FF) << 0) 19868c2ecf20Sopenharmony_ci#define G_028060_PITCH_TILE_MAX(x) (((x) >> 0) & 0x3FF) 19878c2ecf20Sopenharmony_ci#define C_028060_PITCH_TILE_MAX 0xFFFFFC00 19888c2ecf20Sopenharmony_ci#define S_028060_SLICE_TILE_MAX(x) (((x) & 0xFFFFF) << 10) 19898c2ecf20Sopenharmony_ci#define G_028060_SLICE_TILE_MAX(x) (((x) >> 10) & 0xFFFFF) 19908c2ecf20Sopenharmony_ci#define C_028060_SLICE_TILE_MAX 0xC00003FF 19918c2ecf20Sopenharmony_ci#define R_028064_CB_COLOR1_SIZE 0x028064 19928c2ecf20Sopenharmony_ci#define R_028068_CB_COLOR2_SIZE 0x028068 19938c2ecf20Sopenharmony_ci#define R_02806C_CB_COLOR3_SIZE 0x02806C 19948c2ecf20Sopenharmony_ci#define R_028070_CB_COLOR4_SIZE 0x028070 19958c2ecf20Sopenharmony_ci#define R_028074_CB_COLOR5_SIZE 0x028074 19968c2ecf20Sopenharmony_ci#define R_028078_CB_COLOR6_SIZE 0x028078 19978c2ecf20Sopenharmony_ci#define R_02807C_CB_COLOR7_SIZE 0x02807C 19988c2ecf20Sopenharmony_ci#define R_028238_CB_TARGET_MASK 0x028238 19998c2ecf20Sopenharmony_ci#define S_028238_TARGET0_ENABLE(x) (((x) & 0xF) << 0) 20008c2ecf20Sopenharmony_ci#define G_028238_TARGET0_ENABLE(x) (((x) >> 0) & 0xF) 20018c2ecf20Sopenharmony_ci#define C_028238_TARGET0_ENABLE 0xFFFFFFF0 20028c2ecf20Sopenharmony_ci#define S_028238_TARGET1_ENABLE(x) (((x) & 0xF) << 4) 20038c2ecf20Sopenharmony_ci#define G_028238_TARGET1_ENABLE(x) (((x) >> 4) & 0xF) 20048c2ecf20Sopenharmony_ci#define C_028238_TARGET1_ENABLE 0xFFFFFF0F 20058c2ecf20Sopenharmony_ci#define S_028238_TARGET2_ENABLE(x) (((x) & 0xF) << 8) 20068c2ecf20Sopenharmony_ci#define G_028238_TARGET2_ENABLE(x) (((x) >> 8) & 0xF) 20078c2ecf20Sopenharmony_ci#define C_028238_TARGET2_ENABLE 0xFFFFF0FF 20088c2ecf20Sopenharmony_ci#define S_028238_TARGET3_ENABLE(x) (((x) & 0xF) << 12) 20098c2ecf20Sopenharmony_ci#define G_028238_TARGET3_ENABLE(x) (((x) >> 12) & 0xF) 20108c2ecf20Sopenharmony_ci#define C_028238_TARGET3_ENABLE 0xFFFF0FFF 20118c2ecf20Sopenharmony_ci#define S_028238_TARGET4_ENABLE(x) (((x) & 0xF) << 16) 20128c2ecf20Sopenharmony_ci#define G_028238_TARGET4_ENABLE(x) (((x) >> 16) & 0xF) 20138c2ecf20Sopenharmony_ci#define C_028238_TARGET4_ENABLE 0xFFF0FFFF 20148c2ecf20Sopenharmony_ci#define S_028238_TARGET5_ENABLE(x) (((x) & 0xF) << 20) 20158c2ecf20Sopenharmony_ci#define G_028238_TARGET5_ENABLE(x) (((x) >> 20) & 0xF) 20168c2ecf20Sopenharmony_ci#define C_028238_TARGET5_ENABLE 0xFF0FFFFF 20178c2ecf20Sopenharmony_ci#define S_028238_TARGET6_ENABLE(x) (((x) & 0xF) << 24) 20188c2ecf20Sopenharmony_ci#define G_028238_TARGET6_ENABLE(x) (((x) >> 24) & 0xF) 20198c2ecf20Sopenharmony_ci#define C_028238_TARGET6_ENABLE 0xF0FFFFFF 20208c2ecf20Sopenharmony_ci#define S_028238_TARGET7_ENABLE(x) (((x) & 0xF) << 28) 20218c2ecf20Sopenharmony_ci#define G_028238_TARGET7_ENABLE(x) (((x) >> 28) & 0xF) 20228c2ecf20Sopenharmony_ci#define C_028238_TARGET7_ENABLE 0x0FFFFFFF 20238c2ecf20Sopenharmony_ci#define R_02823C_CB_SHADER_MASK 0x02823C 20248c2ecf20Sopenharmony_ci#define S_02823C_OUTPUT0_ENABLE(x) (((x) & 0xF) << 0) 20258c2ecf20Sopenharmony_ci#define G_02823C_OUTPUT0_ENABLE(x) (((x) >> 0) & 0xF) 20268c2ecf20Sopenharmony_ci#define C_02823C_OUTPUT0_ENABLE 0xFFFFFFF0 20278c2ecf20Sopenharmony_ci#define S_02823C_OUTPUT1_ENABLE(x) (((x) & 0xF) << 4) 20288c2ecf20Sopenharmony_ci#define G_02823C_OUTPUT1_ENABLE(x) (((x) >> 4) & 0xF) 20298c2ecf20Sopenharmony_ci#define C_02823C_OUTPUT1_ENABLE 0xFFFFFF0F 20308c2ecf20Sopenharmony_ci#define S_02823C_OUTPUT2_ENABLE(x) (((x) & 0xF) << 8) 20318c2ecf20Sopenharmony_ci#define G_02823C_OUTPUT2_ENABLE(x) (((x) >> 8) & 0xF) 20328c2ecf20Sopenharmony_ci#define C_02823C_OUTPUT2_ENABLE 0xFFFFF0FF 20338c2ecf20Sopenharmony_ci#define S_02823C_OUTPUT3_ENABLE(x) (((x) & 0xF) << 12) 20348c2ecf20Sopenharmony_ci#define G_02823C_OUTPUT3_ENABLE(x) (((x) >> 12) & 0xF) 20358c2ecf20Sopenharmony_ci#define C_02823C_OUTPUT3_ENABLE 0xFFFF0FFF 20368c2ecf20Sopenharmony_ci#define S_02823C_OUTPUT4_ENABLE(x) (((x) & 0xF) << 16) 20378c2ecf20Sopenharmony_ci#define G_02823C_OUTPUT4_ENABLE(x) (((x) >> 16) & 0xF) 20388c2ecf20Sopenharmony_ci#define C_02823C_OUTPUT4_ENABLE 0xFFF0FFFF 20398c2ecf20Sopenharmony_ci#define S_02823C_OUTPUT5_ENABLE(x) (((x) & 0xF) << 20) 20408c2ecf20Sopenharmony_ci#define G_02823C_OUTPUT5_ENABLE(x) (((x) >> 20) & 0xF) 20418c2ecf20Sopenharmony_ci#define C_02823C_OUTPUT5_ENABLE 0xFF0FFFFF 20428c2ecf20Sopenharmony_ci#define S_02823C_OUTPUT6_ENABLE(x) (((x) & 0xF) << 24) 20438c2ecf20Sopenharmony_ci#define G_02823C_OUTPUT6_ENABLE(x) (((x) >> 24) & 0xF) 20448c2ecf20Sopenharmony_ci#define C_02823C_OUTPUT6_ENABLE 0xF0FFFFFF 20458c2ecf20Sopenharmony_ci#define S_02823C_OUTPUT7_ENABLE(x) (((x) & 0xF) << 28) 20468c2ecf20Sopenharmony_ci#define G_02823C_OUTPUT7_ENABLE(x) (((x) >> 28) & 0xF) 20478c2ecf20Sopenharmony_ci#define C_02823C_OUTPUT7_ENABLE 0x0FFFFFFF 20488c2ecf20Sopenharmony_ci#define R_028AB0_VGT_STRMOUT_EN 0x028AB0 20498c2ecf20Sopenharmony_ci#define S_028AB0_STREAMOUT(x) (((x) & 0x1) << 0) 20508c2ecf20Sopenharmony_ci#define G_028AB0_STREAMOUT(x) (((x) >> 0) & 0x1) 20518c2ecf20Sopenharmony_ci#define C_028AB0_STREAMOUT 0xFFFFFFFE 20528c2ecf20Sopenharmony_ci#define R_028B20_VGT_STRMOUT_BUFFER_EN 0x028B20 20538c2ecf20Sopenharmony_ci#define S_028B20_BUFFER_0_EN(x) (((x) & 0x1) << 0) 20548c2ecf20Sopenharmony_ci#define G_028B20_BUFFER_0_EN(x) (((x) >> 0) & 0x1) 20558c2ecf20Sopenharmony_ci#define C_028B20_BUFFER_0_EN 0xFFFFFFFE 20568c2ecf20Sopenharmony_ci#define S_028B20_BUFFER_1_EN(x) (((x) & 0x1) << 1) 20578c2ecf20Sopenharmony_ci#define G_028B20_BUFFER_1_EN(x) (((x) >> 1) & 0x1) 20588c2ecf20Sopenharmony_ci#define C_028B20_BUFFER_1_EN 0xFFFFFFFD 20598c2ecf20Sopenharmony_ci#define S_028B20_BUFFER_2_EN(x) (((x) & 0x1) << 2) 20608c2ecf20Sopenharmony_ci#define G_028B20_BUFFER_2_EN(x) (((x) >> 2) & 0x1) 20618c2ecf20Sopenharmony_ci#define C_028B20_BUFFER_2_EN 0xFFFFFFFB 20628c2ecf20Sopenharmony_ci#define S_028B20_BUFFER_3_EN(x) (((x) & 0x1) << 3) 20638c2ecf20Sopenharmony_ci#define G_028B20_BUFFER_3_EN(x) (((x) >> 3) & 0x1) 20648c2ecf20Sopenharmony_ci#define C_028B20_BUFFER_3_EN 0xFFFFFFF7 20658c2ecf20Sopenharmony_ci#define S_028B20_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 20668c2ecf20Sopenharmony_ci#define G_028B20_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 20678c2ecf20Sopenharmony_ci#define C_028B20_SIZE 0x00000000 20688c2ecf20Sopenharmony_ci#define R_038000_SQ_TEX_RESOURCE_WORD0_0 0x038000 20698c2ecf20Sopenharmony_ci#define S_038000_DIM(x) (((x) & 0x7) << 0) 20708c2ecf20Sopenharmony_ci#define G_038000_DIM(x) (((x) >> 0) & 0x7) 20718c2ecf20Sopenharmony_ci#define C_038000_DIM 0xFFFFFFF8 20728c2ecf20Sopenharmony_ci#define V_038000_SQ_TEX_DIM_1D 0x00000000 20738c2ecf20Sopenharmony_ci#define V_038000_SQ_TEX_DIM_2D 0x00000001 20748c2ecf20Sopenharmony_ci#define V_038000_SQ_TEX_DIM_3D 0x00000002 20758c2ecf20Sopenharmony_ci#define V_038000_SQ_TEX_DIM_CUBEMAP 0x00000003 20768c2ecf20Sopenharmony_ci#define V_038000_SQ_TEX_DIM_1D_ARRAY 0x00000004 20778c2ecf20Sopenharmony_ci#define V_038000_SQ_TEX_DIM_2D_ARRAY 0x00000005 20788c2ecf20Sopenharmony_ci#define V_038000_SQ_TEX_DIM_2D_MSAA 0x00000006 20798c2ecf20Sopenharmony_ci#define V_038000_SQ_TEX_DIM_2D_ARRAY_MSAA 0x00000007 20808c2ecf20Sopenharmony_ci#define S_038000_TILE_MODE(x) (((x) & 0xF) << 3) 20818c2ecf20Sopenharmony_ci#define G_038000_TILE_MODE(x) (((x) >> 3) & 0xF) 20828c2ecf20Sopenharmony_ci#define C_038000_TILE_MODE 0xFFFFFF87 20838c2ecf20Sopenharmony_ci#define V_038000_ARRAY_LINEAR_GENERAL 0x00000000 20848c2ecf20Sopenharmony_ci#define V_038000_ARRAY_LINEAR_ALIGNED 0x00000001 20858c2ecf20Sopenharmony_ci#define V_038000_ARRAY_1D_TILED_THIN1 0x00000002 20868c2ecf20Sopenharmony_ci#define V_038000_ARRAY_2D_TILED_THIN1 0x00000004 20878c2ecf20Sopenharmony_ci#define S_038000_TILE_TYPE(x) (((x) & 0x1) << 7) 20888c2ecf20Sopenharmony_ci#define G_038000_TILE_TYPE(x) (((x) >> 7) & 0x1) 20898c2ecf20Sopenharmony_ci#define C_038000_TILE_TYPE 0xFFFFFF7F 20908c2ecf20Sopenharmony_ci#define S_038000_PITCH(x) (((x) & 0x7FF) << 8) 20918c2ecf20Sopenharmony_ci#define G_038000_PITCH(x) (((x) >> 8) & 0x7FF) 20928c2ecf20Sopenharmony_ci#define C_038000_PITCH 0xFFF800FF 20938c2ecf20Sopenharmony_ci#define S_038000_TEX_WIDTH(x) (((x) & 0x1FFF) << 19) 20948c2ecf20Sopenharmony_ci#define G_038000_TEX_WIDTH(x) (((x) >> 19) & 0x1FFF) 20958c2ecf20Sopenharmony_ci#define C_038000_TEX_WIDTH 0x0007FFFF 20968c2ecf20Sopenharmony_ci#define R_038004_SQ_TEX_RESOURCE_WORD1_0 0x038004 20978c2ecf20Sopenharmony_ci#define S_038004_TEX_HEIGHT(x) (((x) & 0x1FFF) << 0) 20988c2ecf20Sopenharmony_ci#define G_038004_TEX_HEIGHT(x) (((x) >> 0) & 0x1FFF) 20998c2ecf20Sopenharmony_ci#define C_038004_TEX_HEIGHT 0xFFFFE000 21008c2ecf20Sopenharmony_ci#define S_038004_TEX_DEPTH(x) (((x) & 0x1FFF) << 13) 21018c2ecf20Sopenharmony_ci#define G_038004_TEX_DEPTH(x) (((x) >> 13) & 0x1FFF) 21028c2ecf20Sopenharmony_ci#define C_038004_TEX_DEPTH 0xFC001FFF 21038c2ecf20Sopenharmony_ci#define S_038004_DATA_FORMAT(x) (((x) & 0x3F) << 26) 21048c2ecf20Sopenharmony_ci#define G_038004_DATA_FORMAT(x) (((x) >> 26) & 0x3F) 21058c2ecf20Sopenharmony_ci#define C_038004_DATA_FORMAT 0x03FFFFFF 21068c2ecf20Sopenharmony_ci#define V_038004_COLOR_INVALID 0x00000000 21078c2ecf20Sopenharmony_ci#define V_038004_COLOR_8 0x00000001 21088c2ecf20Sopenharmony_ci#define V_038004_COLOR_4_4 0x00000002 21098c2ecf20Sopenharmony_ci#define V_038004_COLOR_3_3_2 0x00000003 21108c2ecf20Sopenharmony_ci#define V_038004_COLOR_16 0x00000005 21118c2ecf20Sopenharmony_ci#define V_038004_COLOR_16_FLOAT 0x00000006 21128c2ecf20Sopenharmony_ci#define V_038004_COLOR_8_8 0x00000007 21138c2ecf20Sopenharmony_ci#define V_038004_COLOR_5_6_5 0x00000008 21148c2ecf20Sopenharmony_ci#define V_038004_COLOR_6_5_5 0x00000009 21158c2ecf20Sopenharmony_ci#define V_038004_COLOR_1_5_5_5 0x0000000A 21168c2ecf20Sopenharmony_ci#define V_038004_COLOR_4_4_4_4 0x0000000B 21178c2ecf20Sopenharmony_ci#define V_038004_COLOR_5_5_5_1 0x0000000C 21188c2ecf20Sopenharmony_ci#define V_038004_COLOR_32 0x0000000D 21198c2ecf20Sopenharmony_ci#define V_038004_COLOR_32_FLOAT 0x0000000E 21208c2ecf20Sopenharmony_ci#define V_038004_COLOR_16_16 0x0000000F 21218c2ecf20Sopenharmony_ci#define V_038004_COLOR_16_16_FLOAT 0x00000010 21228c2ecf20Sopenharmony_ci#define V_038004_COLOR_8_24 0x00000011 21238c2ecf20Sopenharmony_ci#define V_038004_COLOR_8_24_FLOAT 0x00000012 21248c2ecf20Sopenharmony_ci#define V_038004_COLOR_24_8 0x00000013 21258c2ecf20Sopenharmony_ci#define V_038004_COLOR_24_8_FLOAT 0x00000014 21268c2ecf20Sopenharmony_ci#define V_038004_COLOR_10_11_11 0x00000015 21278c2ecf20Sopenharmony_ci#define V_038004_COLOR_10_11_11_FLOAT 0x00000016 21288c2ecf20Sopenharmony_ci#define V_038004_COLOR_11_11_10 0x00000017 21298c2ecf20Sopenharmony_ci#define V_038004_COLOR_11_11_10_FLOAT 0x00000018 21308c2ecf20Sopenharmony_ci#define V_038004_COLOR_2_10_10_10 0x00000019 21318c2ecf20Sopenharmony_ci#define V_038004_COLOR_8_8_8_8 0x0000001A 21328c2ecf20Sopenharmony_ci#define V_038004_COLOR_10_10_10_2 0x0000001B 21338c2ecf20Sopenharmony_ci#define V_038004_COLOR_X24_8_32_FLOAT 0x0000001C 21348c2ecf20Sopenharmony_ci#define V_038004_COLOR_32_32 0x0000001D 21358c2ecf20Sopenharmony_ci#define V_038004_COLOR_32_32_FLOAT 0x0000001E 21368c2ecf20Sopenharmony_ci#define V_038004_COLOR_16_16_16_16 0x0000001F 21378c2ecf20Sopenharmony_ci#define V_038004_COLOR_16_16_16_16_FLOAT 0x00000020 21388c2ecf20Sopenharmony_ci#define V_038004_COLOR_32_32_32_32 0x00000022 21398c2ecf20Sopenharmony_ci#define V_038004_COLOR_32_32_32_32_FLOAT 0x00000023 21408c2ecf20Sopenharmony_ci#define V_038004_FMT_1 0x00000025 21418c2ecf20Sopenharmony_ci#define V_038004_FMT_GB_GR 0x00000027 21428c2ecf20Sopenharmony_ci#define V_038004_FMT_BG_RG 0x00000028 21438c2ecf20Sopenharmony_ci#define V_038004_FMT_32_AS_8 0x00000029 21448c2ecf20Sopenharmony_ci#define V_038004_FMT_32_AS_8_8 0x0000002A 21458c2ecf20Sopenharmony_ci#define V_038004_FMT_5_9_9_9_SHAREDEXP 0x0000002B 21468c2ecf20Sopenharmony_ci#define V_038004_FMT_8_8_8 0x0000002C 21478c2ecf20Sopenharmony_ci#define V_038004_FMT_16_16_16 0x0000002D 21488c2ecf20Sopenharmony_ci#define V_038004_FMT_16_16_16_FLOAT 0x0000002E 21498c2ecf20Sopenharmony_ci#define V_038004_FMT_32_32_32 0x0000002F 21508c2ecf20Sopenharmony_ci#define V_038004_FMT_32_32_32_FLOAT 0x00000030 21518c2ecf20Sopenharmony_ci#define V_038004_FMT_BC1 0x00000031 21528c2ecf20Sopenharmony_ci#define V_038004_FMT_BC2 0x00000032 21538c2ecf20Sopenharmony_ci#define V_038004_FMT_BC3 0x00000033 21548c2ecf20Sopenharmony_ci#define V_038004_FMT_BC4 0x00000034 21558c2ecf20Sopenharmony_ci#define V_038004_FMT_BC5 0x00000035 21568c2ecf20Sopenharmony_ci#define V_038004_FMT_BC6 0x00000036 21578c2ecf20Sopenharmony_ci#define V_038004_FMT_BC7 0x00000037 21588c2ecf20Sopenharmony_ci#define V_038004_FMT_32_AS_32_32_32_32 0x00000038 21598c2ecf20Sopenharmony_ci#define R_038010_SQ_TEX_RESOURCE_WORD4_0 0x038010 21608c2ecf20Sopenharmony_ci#define S_038010_FORMAT_COMP_X(x) (((x) & 0x3) << 0) 21618c2ecf20Sopenharmony_ci#define G_038010_FORMAT_COMP_X(x) (((x) >> 0) & 0x3) 21628c2ecf20Sopenharmony_ci#define C_038010_FORMAT_COMP_X 0xFFFFFFFC 21638c2ecf20Sopenharmony_ci#define S_038010_FORMAT_COMP_Y(x) (((x) & 0x3) << 2) 21648c2ecf20Sopenharmony_ci#define G_038010_FORMAT_COMP_Y(x) (((x) >> 2) & 0x3) 21658c2ecf20Sopenharmony_ci#define C_038010_FORMAT_COMP_Y 0xFFFFFFF3 21668c2ecf20Sopenharmony_ci#define S_038010_FORMAT_COMP_Z(x) (((x) & 0x3) << 4) 21678c2ecf20Sopenharmony_ci#define G_038010_FORMAT_COMP_Z(x) (((x) >> 4) & 0x3) 21688c2ecf20Sopenharmony_ci#define C_038010_FORMAT_COMP_Z 0xFFFFFFCF 21698c2ecf20Sopenharmony_ci#define S_038010_FORMAT_COMP_W(x) (((x) & 0x3) << 6) 21708c2ecf20Sopenharmony_ci#define G_038010_FORMAT_COMP_W(x) (((x) >> 6) & 0x3) 21718c2ecf20Sopenharmony_ci#define C_038010_FORMAT_COMP_W 0xFFFFFF3F 21728c2ecf20Sopenharmony_ci#define S_038010_NUM_FORMAT_ALL(x) (((x) & 0x3) << 8) 21738c2ecf20Sopenharmony_ci#define G_038010_NUM_FORMAT_ALL(x) (((x) >> 8) & 0x3) 21748c2ecf20Sopenharmony_ci#define C_038010_NUM_FORMAT_ALL 0xFFFFFCFF 21758c2ecf20Sopenharmony_ci#define S_038010_SRF_MODE_ALL(x) (((x) & 0x1) << 10) 21768c2ecf20Sopenharmony_ci#define G_038010_SRF_MODE_ALL(x) (((x) >> 10) & 0x1) 21778c2ecf20Sopenharmony_ci#define C_038010_SRF_MODE_ALL 0xFFFFFBFF 21788c2ecf20Sopenharmony_ci#define S_038010_FORCE_DEGAMMA(x) (((x) & 0x1) << 11) 21798c2ecf20Sopenharmony_ci#define G_038010_FORCE_DEGAMMA(x) (((x) >> 11) & 0x1) 21808c2ecf20Sopenharmony_ci#define C_038010_FORCE_DEGAMMA 0xFFFFF7FF 21818c2ecf20Sopenharmony_ci#define S_038010_ENDIAN_SWAP(x) (((x) & 0x3) << 12) 21828c2ecf20Sopenharmony_ci#define G_038010_ENDIAN_SWAP(x) (((x) >> 12) & 0x3) 21838c2ecf20Sopenharmony_ci#define C_038010_ENDIAN_SWAP 0xFFFFCFFF 21848c2ecf20Sopenharmony_ci#define S_038010_REQUEST_SIZE(x) (((x) & 0x3) << 14) 21858c2ecf20Sopenharmony_ci#define G_038010_REQUEST_SIZE(x) (((x) >> 14) & 0x3) 21868c2ecf20Sopenharmony_ci#define C_038010_REQUEST_SIZE 0xFFFF3FFF 21878c2ecf20Sopenharmony_ci#define S_038010_DST_SEL_X(x) (((x) & 0x7) << 16) 21888c2ecf20Sopenharmony_ci#define G_038010_DST_SEL_X(x) (((x) >> 16) & 0x7) 21898c2ecf20Sopenharmony_ci#define C_038010_DST_SEL_X 0xFFF8FFFF 21908c2ecf20Sopenharmony_ci#define S_038010_DST_SEL_Y(x) (((x) & 0x7) << 19) 21918c2ecf20Sopenharmony_ci#define G_038010_DST_SEL_Y(x) (((x) >> 19) & 0x7) 21928c2ecf20Sopenharmony_ci#define C_038010_DST_SEL_Y 0xFFC7FFFF 21938c2ecf20Sopenharmony_ci#define S_038010_DST_SEL_Z(x) (((x) & 0x7) << 22) 21948c2ecf20Sopenharmony_ci#define G_038010_DST_SEL_Z(x) (((x) >> 22) & 0x7) 21958c2ecf20Sopenharmony_ci#define C_038010_DST_SEL_Z 0xFE3FFFFF 21968c2ecf20Sopenharmony_ci#define S_038010_DST_SEL_W(x) (((x) & 0x7) << 25) 21978c2ecf20Sopenharmony_ci#define G_038010_DST_SEL_W(x) (((x) >> 25) & 0x7) 21988c2ecf20Sopenharmony_ci#define C_038010_DST_SEL_W 0xF1FFFFFF 21998c2ecf20Sopenharmony_ci# define SQ_SEL_X 0 22008c2ecf20Sopenharmony_ci# define SQ_SEL_Y 1 22018c2ecf20Sopenharmony_ci# define SQ_SEL_Z 2 22028c2ecf20Sopenharmony_ci# define SQ_SEL_W 3 22038c2ecf20Sopenharmony_ci# define SQ_SEL_0 4 22048c2ecf20Sopenharmony_ci# define SQ_SEL_1 5 22058c2ecf20Sopenharmony_ci#define S_038010_BASE_LEVEL(x) (((x) & 0xF) << 28) 22068c2ecf20Sopenharmony_ci#define G_038010_BASE_LEVEL(x) (((x) >> 28) & 0xF) 22078c2ecf20Sopenharmony_ci#define C_038010_BASE_LEVEL 0x0FFFFFFF 22088c2ecf20Sopenharmony_ci#define R_038014_SQ_TEX_RESOURCE_WORD5_0 0x038014 22098c2ecf20Sopenharmony_ci#define S_038014_LAST_LEVEL(x) (((x) & 0xF) << 0) 22108c2ecf20Sopenharmony_ci#define G_038014_LAST_LEVEL(x) (((x) >> 0) & 0xF) 22118c2ecf20Sopenharmony_ci#define C_038014_LAST_LEVEL 0xFFFFFFF0 22128c2ecf20Sopenharmony_ci#define S_038014_BASE_ARRAY(x) (((x) & 0x1FFF) << 4) 22138c2ecf20Sopenharmony_ci#define G_038014_BASE_ARRAY(x) (((x) >> 4) & 0x1FFF) 22148c2ecf20Sopenharmony_ci#define C_038014_BASE_ARRAY 0xFFFE000F 22158c2ecf20Sopenharmony_ci#define S_038014_LAST_ARRAY(x) (((x) & 0x1FFF) << 17) 22168c2ecf20Sopenharmony_ci#define G_038014_LAST_ARRAY(x) (((x) >> 17) & 0x1FFF) 22178c2ecf20Sopenharmony_ci#define C_038014_LAST_ARRAY 0xC001FFFF 22188c2ecf20Sopenharmony_ci#define R_0288A8_SQ_ESGS_RING_ITEMSIZE 0x0288A8 22198c2ecf20Sopenharmony_ci#define S_0288A8_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 22208c2ecf20Sopenharmony_ci#define G_0288A8_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 22218c2ecf20Sopenharmony_ci#define C_0288A8_ITEMSIZE 0xFFFF8000 22228c2ecf20Sopenharmony_ci#define R_008C44_SQ_ESGS_RING_SIZE 0x008C44 22238c2ecf20Sopenharmony_ci#define S_008C44_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 22248c2ecf20Sopenharmony_ci#define G_008C44_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 22258c2ecf20Sopenharmony_ci#define C_008C44_MEM_SIZE 0x00000000 22268c2ecf20Sopenharmony_ci#define R_0288B0_SQ_ESTMP_RING_ITEMSIZE 0x0288B0 22278c2ecf20Sopenharmony_ci#define S_0288B0_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 22288c2ecf20Sopenharmony_ci#define G_0288B0_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 22298c2ecf20Sopenharmony_ci#define C_0288B0_ITEMSIZE 0xFFFF8000 22308c2ecf20Sopenharmony_ci#define R_008C54_SQ_ESTMP_RING_SIZE 0x008C54 22318c2ecf20Sopenharmony_ci#define S_008C54_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 22328c2ecf20Sopenharmony_ci#define G_008C54_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 22338c2ecf20Sopenharmony_ci#define C_008C54_MEM_SIZE 0x00000000 22348c2ecf20Sopenharmony_ci#define R_0288C0_SQ_FBUF_RING_ITEMSIZE 0x0288C0 22358c2ecf20Sopenharmony_ci#define S_0288C0_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 22368c2ecf20Sopenharmony_ci#define G_0288C0_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 22378c2ecf20Sopenharmony_ci#define C_0288C0_ITEMSIZE 0xFFFF8000 22388c2ecf20Sopenharmony_ci#define R_008C74_SQ_FBUF_RING_SIZE 0x008C74 22398c2ecf20Sopenharmony_ci#define S_008C74_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 22408c2ecf20Sopenharmony_ci#define G_008C74_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 22418c2ecf20Sopenharmony_ci#define C_008C74_MEM_SIZE 0x00000000 22428c2ecf20Sopenharmony_ci#define R_0288B4_SQ_GSTMP_RING_ITEMSIZE 0x0288B4 22438c2ecf20Sopenharmony_ci#define S_0288B4_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 22448c2ecf20Sopenharmony_ci#define G_0288B4_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 22458c2ecf20Sopenharmony_ci#define C_0288B4_ITEMSIZE 0xFFFF8000 22468c2ecf20Sopenharmony_ci#define R_008C5C_SQ_GSTMP_RING_SIZE 0x008C5C 22478c2ecf20Sopenharmony_ci#define S_008C5C_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 22488c2ecf20Sopenharmony_ci#define G_008C5C_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 22498c2ecf20Sopenharmony_ci#define C_008C5C_MEM_SIZE 0x00000000 22508c2ecf20Sopenharmony_ci#define R_0288AC_SQ_GSVS_RING_ITEMSIZE 0x0288AC 22518c2ecf20Sopenharmony_ci#define S_0288AC_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 22528c2ecf20Sopenharmony_ci#define G_0288AC_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 22538c2ecf20Sopenharmony_ci#define C_0288AC_ITEMSIZE 0xFFFF8000 22548c2ecf20Sopenharmony_ci#define R_008C4C_SQ_GSVS_RING_SIZE 0x008C4C 22558c2ecf20Sopenharmony_ci#define S_008C4C_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 22568c2ecf20Sopenharmony_ci#define G_008C4C_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 22578c2ecf20Sopenharmony_ci#define C_008C4C_MEM_SIZE 0x00000000 22588c2ecf20Sopenharmony_ci#define R_0288BC_SQ_PSTMP_RING_ITEMSIZE 0x0288BC 22598c2ecf20Sopenharmony_ci#define S_0288BC_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 22608c2ecf20Sopenharmony_ci#define G_0288BC_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 22618c2ecf20Sopenharmony_ci#define C_0288BC_ITEMSIZE 0xFFFF8000 22628c2ecf20Sopenharmony_ci#define R_008C6C_SQ_PSTMP_RING_SIZE 0x008C6C 22638c2ecf20Sopenharmony_ci#define S_008C6C_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 22648c2ecf20Sopenharmony_ci#define G_008C6C_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 22658c2ecf20Sopenharmony_ci#define C_008C6C_MEM_SIZE 0x00000000 22668c2ecf20Sopenharmony_ci#define R_0288C4_SQ_REDUC_RING_ITEMSIZE 0x0288C4 22678c2ecf20Sopenharmony_ci#define S_0288C4_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 22688c2ecf20Sopenharmony_ci#define G_0288C4_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 22698c2ecf20Sopenharmony_ci#define C_0288C4_ITEMSIZE 0xFFFF8000 22708c2ecf20Sopenharmony_ci#define R_008C7C_SQ_REDUC_RING_SIZE 0x008C7C 22718c2ecf20Sopenharmony_ci#define S_008C7C_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 22728c2ecf20Sopenharmony_ci#define G_008C7C_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 22738c2ecf20Sopenharmony_ci#define C_008C7C_MEM_SIZE 0x00000000 22748c2ecf20Sopenharmony_ci#define R_0288B8_SQ_VSTMP_RING_ITEMSIZE 0x0288B8 22758c2ecf20Sopenharmony_ci#define S_0288B8_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 22768c2ecf20Sopenharmony_ci#define G_0288B8_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 22778c2ecf20Sopenharmony_ci#define C_0288B8_ITEMSIZE 0xFFFF8000 22788c2ecf20Sopenharmony_ci#define R_008C64_SQ_VSTMP_RING_SIZE 0x008C64 22798c2ecf20Sopenharmony_ci#define S_008C64_MEM_SIZE(x) (((x) & 0xFFFFFFFF) << 0) 22808c2ecf20Sopenharmony_ci#define G_008C64_MEM_SIZE(x) (((x) >> 0) & 0xFFFFFFFF) 22818c2ecf20Sopenharmony_ci#define C_008C64_MEM_SIZE 0x00000000 22828c2ecf20Sopenharmony_ci#define R_0288C8_SQ_GS_VERT_ITEMSIZE 0x0288C8 22838c2ecf20Sopenharmony_ci#define S_0288C8_ITEMSIZE(x) (((x) & 0x7FFF) << 0) 22848c2ecf20Sopenharmony_ci#define G_0288C8_ITEMSIZE(x) (((x) >> 0) & 0x7FFF) 22858c2ecf20Sopenharmony_ci#define C_0288C8_ITEMSIZE 0xFFFF8000 22868c2ecf20Sopenharmony_ci#define R_028010_DB_DEPTH_INFO 0x028010 22878c2ecf20Sopenharmony_ci#define S_028010_FORMAT(x) (((x) & 0x7) << 0) 22888c2ecf20Sopenharmony_ci#define G_028010_FORMAT(x) (((x) >> 0) & 0x7) 22898c2ecf20Sopenharmony_ci#define C_028010_FORMAT 0xFFFFFFF8 22908c2ecf20Sopenharmony_ci#define V_028010_DEPTH_INVALID 0x00000000 22918c2ecf20Sopenharmony_ci#define V_028010_DEPTH_16 0x00000001 22928c2ecf20Sopenharmony_ci#define V_028010_DEPTH_X8_24 0x00000002 22938c2ecf20Sopenharmony_ci#define V_028010_DEPTH_8_24 0x00000003 22948c2ecf20Sopenharmony_ci#define V_028010_DEPTH_X8_24_FLOAT 0x00000004 22958c2ecf20Sopenharmony_ci#define V_028010_DEPTH_8_24_FLOAT 0x00000005 22968c2ecf20Sopenharmony_ci#define V_028010_DEPTH_32_FLOAT 0x00000006 22978c2ecf20Sopenharmony_ci#define V_028010_DEPTH_X24_8_32_FLOAT 0x00000007 22988c2ecf20Sopenharmony_ci#define S_028010_READ_SIZE(x) (((x) & 0x1) << 3) 22998c2ecf20Sopenharmony_ci#define G_028010_READ_SIZE(x) (((x) >> 3) & 0x1) 23008c2ecf20Sopenharmony_ci#define C_028010_READ_SIZE 0xFFFFFFF7 23018c2ecf20Sopenharmony_ci#define S_028010_ARRAY_MODE(x) (((x) & 0xF) << 15) 23028c2ecf20Sopenharmony_ci#define G_028010_ARRAY_MODE(x) (((x) >> 15) & 0xF) 23038c2ecf20Sopenharmony_ci#define C_028010_ARRAY_MODE 0xFFF87FFF 23048c2ecf20Sopenharmony_ci#define V_028010_ARRAY_1D_TILED_THIN1 0x00000002 23058c2ecf20Sopenharmony_ci#define V_028010_ARRAY_2D_TILED_THIN1 0x00000004 23068c2ecf20Sopenharmony_ci#define S_028010_TILE_SURFACE_ENABLE(x) (((x) & 0x1) << 25) 23078c2ecf20Sopenharmony_ci#define G_028010_TILE_SURFACE_ENABLE(x) (((x) >> 25) & 0x1) 23088c2ecf20Sopenharmony_ci#define C_028010_TILE_SURFACE_ENABLE 0xFDFFFFFF 23098c2ecf20Sopenharmony_ci#define S_028010_TILE_COMPACT(x) (((x) & 0x1) << 26) 23108c2ecf20Sopenharmony_ci#define G_028010_TILE_COMPACT(x) (((x) >> 26) & 0x1) 23118c2ecf20Sopenharmony_ci#define C_028010_TILE_COMPACT 0xFBFFFFFF 23128c2ecf20Sopenharmony_ci#define S_028010_ZRANGE_PRECISION(x) (((x) & 0x1) << 31) 23138c2ecf20Sopenharmony_ci#define G_028010_ZRANGE_PRECISION(x) (((x) >> 31) & 0x1) 23148c2ecf20Sopenharmony_ci#define C_028010_ZRANGE_PRECISION 0x7FFFFFFF 23158c2ecf20Sopenharmony_ci#define R_028000_DB_DEPTH_SIZE 0x028000 23168c2ecf20Sopenharmony_ci#define S_028000_PITCH_TILE_MAX(x) (((x) & 0x3FF) << 0) 23178c2ecf20Sopenharmony_ci#define G_028000_PITCH_TILE_MAX(x) (((x) >> 0) & 0x3FF) 23188c2ecf20Sopenharmony_ci#define C_028000_PITCH_TILE_MAX 0xFFFFFC00 23198c2ecf20Sopenharmony_ci#define S_028000_SLICE_TILE_MAX(x) (((x) & 0xFFFFF) << 10) 23208c2ecf20Sopenharmony_ci#define G_028000_SLICE_TILE_MAX(x) (((x) >> 10) & 0xFFFFF) 23218c2ecf20Sopenharmony_ci#define C_028000_SLICE_TILE_MAX 0xC00003FF 23228c2ecf20Sopenharmony_ci#define R_028004_DB_DEPTH_VIEW 0x028004 23238c2ecf20Sopenharmony_ci#define S_028004_SLICE_START(x) (((x) & 0x7FF) << 0) 23248c2ecf20Sopenharmony_ci#define G_028004_SLICE_START(x) (((x) >> 0) & 0x7FF) 23258c2ecf20Sopenharmony_ci#define C_028004_SLICE_START 0xFFFFF800 23268c2ecf20Sopenharmony_ci#define S_028004_SLICE_MAX(x) (((x) & 0x7FF) << 13) 23278c2ecf20Sopenharmony_ci#define G_028004_SLICE_MAX(x) (((x) >> 13) & 0x7FF) 23288c2ecf20Sopenharmony_ci#define C_028004_SLICE_MAX 0xFF001FFF 23298c2ecf20Sopenharmony_ci#define R_028800_DB_DEPTH_CONTROL 0x028800 23308c2ecf20Sopenharmony_ci#define S_028800_STENCIL_ENABLE(x) (((x) & 0x1) << 0) 23318c2ecf20Sopenharmony_ci#define G_028800_STENCIL_ENABLE(x) (((x) >> 0) & 0x1) 23328c2ecf20Sopenharmony_ci#define C_028800_STENCIL_ENABLE 0xFFFFFFFE 23338c2ecf20Sopenharmony_ci#define S_028800_Z_ENABLE(x) (((x) & 0x1) << 1) 23348c2ecf20Sopenharmony_ci#define G_028800_Z_ENABLE(x) (((x) >> 1) & 0x1) 23358c2ecf20Sopenharmony_ci#define C_028800_Z_ENABLE 0xFFFFFFFD 23368c2ecf20Sopenharmony_ci#define S_028800_Z_WRITE_ENABLE(x) (((x) & 0x1) << 2) 23378c2ecf20Sopenharmony_ci#define G_028800_Z_WRITE_ENABLE(x) (((x) >> 2) & 0x1) 23388c2ecf20Sopenharmony_ci#define C_028800_Z_WRITE_ENABLE 0xFFFFFFFB 23398c2ecf20Sopenharmony_ci#define S_028800_ZFUNC(x) (((x) & 0x7) << 4) 23408c2ecf20Sopenharmony_ci#define G_028800_ZFUNC(x) (((x) >> 4) & 0x7) 23418c2ecf20Sopenharmony_ci#define C_028800_ZFUNC 0xFFFFFF8F 23428c2ecf20Sopenharmony_ci#define S_028800_BACKFACE_ENABLE(x) (((x) & 0x1) << 7) 23438c2ecf20Sopenharmony_ci#define G_028800_BACKFACE_ENABLE(x) (((x) >> 7) & 0x1) 23448c2ecf20Sopenharmony_ci#define C_028800_BACKFACE_ENABLE 0xFFFFFF7F 23458c2ecf20Sopenharmony_ci#define S_028800_STENCILFUNC(x) (((x) & 0x7) << 8) 23468c2ecf20Sopenharmony_ci#define G_028800_STENCILFUNC(x) (((x) >> 8) & 0x7) 23478c2ecf20Sopenharmony_ci#define C_028800_STENCILFUNC 0xFFFFF8FF 23488c2ecf20Sopenharmony_ci#define S_028800_STENCILFAIL(x) (((x) & 0x7) << 11) 23498c2ecf20Sopenharmony_ci#define G_028800_STENCILFAIL(x) (((x) >> 11) & 0x7) 23508c2ecf20Sopenharmony_ci#define C_028800_STENCILFAIL 0xFFFFC7FF 23518c2ecf20Sopenharmony_ci#define S_028800_STENCILZPASS(x) (((x) & 0x7) << 14) 23528c2ecf20Sopenharmony_ci#define G_028800_STENCILZPASS(x) (((x) >> 14) & 0x7) 23538c2ecf20Sopenharmony_ci#define C_028800_STENCILZPASS 0xFFFE3FFF 23548c2ecf20Sopenharmony_ci#define S_028800_STENCILZFAIL(x) (((x) & 0x7) << 17) 23558c2ecf20Sopenharmony_ci#define G_028800_STENCILZFAIL(x) (((x) >> 17) & 0x7) 23568c2ecf20Sopenharmony_ci#define C_028800_STENCILZFAIL 0xFFF1FFFF 23578c2ecf20Sopenharmony_ci#define S_028800_STENCILFUNC_BF(x) (((x) & 0x7) << 20) 23588c2ecf20Sopenharmony_ci#define G_028800_STENCILFUNC_BF(x) (((x) >> 20) & 0x7) 23598c2ecf20Sopenharmony_ci#define C_028800_STENCILFUNC_BF 0xFF8FFFFF 23608c2ecf20Sopenharmony_ci#define S_028800_STENCILFAIL_BF(x) (((x) & 0x7) << 23) 23618c2ecf20Sopenharmony_ci#define G_028800_STENCILFAIL_BF(x) (((x) >> 23) & 0x7) 23628c2ecf20Sopenharmony_ci#define C_028800_STENCILFAIL_BF 0xFC7FFFFF 23638c2ecf20Sopenharmony_ci#define S_028800_STENCILZPASS_BF(x) (((x) & 0x7) << 26) 23648c2ecf20Sopenharmony_ci#define G_028800_STENCILZPASS_BF(x) (((x) >> 26) & 0x7) 23658c2ecf20Sopenharmony_ci#define C_028800_STENCILZPASS_BF 0xE3FFFFFF 23668c2ecf20Sopenharmony_ci#define S_028800_STENCILZFAIL_BF(x) (((x) & 0x7) << 29) 23678c2ecf20Sopenharmony_ci#define G_028800_STENCILZFAIL_BF(x) (((x) >> 29) & 0x7) 23688c2ecf20Sopenharmony_ci#define C_028800_STENCILZFAIL_BF 0x1FFFFFFF 23698c2ecf20Sopenharmony_ci 23708c2ecf20Sopenharmony_ci#endif 2371