11099013bSjsg /* 21099013bSjsg * Copyright 2009 Advanced Micro Devices, Inc. 31099013bSjsg * Copyright 2009 Red Hat Inc. 41099013bSjsg * 51099013bSjsg * Permission is hereby granted, free of charge, to any person obtaining a 61099013bSjsg * copy of this software and associated documentation files (the "Software"), 71099013bSjsg * to deal in the Software without restriction, including without limitation 81099013bSjsg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 91099013bSjsg * and/or sell copies of the Software, and to permit persons to whom the 101099013bSjsg * Software is furnished to do so, subject to the following conditions: 111099013bSjsg * 121099013bSjsg * The above copyright notice and this permission notice shall be included in 131099013bSjsg * all copies or substantial portions of the Software. 141099013bSjsg * 151099013bSjsg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 161099013bSjsg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 171099013bSjsg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 181099013bSjsg * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 191099013bSjsg * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 201099013bSjsg * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 211099013bSjsg * OTHER DEALINGS IN THE SOFTWARE. 221099013bSjsg * 231099013bSjsg * Authors: Dave Airlie 241099013bSjsg * Alex Deucher 251099013bSjsg * Jerome Glisse 261099013bSjsg */ 271099013bSjsg #ifndef RV770_H 281099013bSjsg #define RV770_H 291099013bSjsg 301099013bSjsg #define R7XX_MAX_SH_GPRS 256 311099013bSjsg #define R7XX_MAX_TEMP_GPRS 16 321099013bSjsg #define R7XX_MAX_SH_THREADS 256 331099013bSjsg #define R7XX_MAX_SH_STACK_ENTRIES 4096 341099013bSjsg #define R7XX_MAX_BACKENDS 8 351099013bSjsg #define R7XX_MAX_BACKENDS_MASK 0xff 361099013bSjsg #define R7XX_MAX_SIMDS 16 371099013bSjsg #define R7XX_MAX_SIMDS_MASK 0xffff 381099013bSjsg #define R7XX_MAX_PIPES 8 391099013bSjsg #define R7XX_MAX_PIPES_MASK 0xff 401099013bSjsg 417ccd5a2cSjsg /* discrete uvd clocks */ 427ccd5a2cSjsg #define CG_UPLL_FUNC_CNTL 0x718 437ccd5a2cSjsg # define UPLL_RESET_MASK 0x00000001 447ccd5a2cSjsg # define UPLL_SLEEP_MASK 0x00000002 457ccd5a2cSjsg # define UPLL_BYPASS_EN_MASK 0x00000004 467ccd5a2cSjsg # define UPLL_CTLREQ_MASK 0x00000008 477ccd5a2cSjsg # define UPLL_REF_DIV(x) ((x) << 16) 487ccd5a2cSjsg # define UPLL_REF_DIV_MASK 0x003F0000 497ccd5a2cSjsg # define UPLL_CTLACK_MASK 0x40000000 507ccd5a2cSjsg # define UPLL_CTLACK2_MASK 0x80000000 517ccd5a2cSjsg #define CG_UPLL_FUNC_CNTL_2 0x71c 527ccd5a2cSjsg # define UPLL_SW_HILEN(x) ((x) << 0) 537ccd5a2cSjsg # define UPLL_SW_LOLEN(x) ((x) << 4) 547ccd5a2cSjsg # define UPLL_SW_HILEN2(x) ((x) << 8) 557ccd5a2cSjsg # define UPLL_SW_LOLEN2(x) ((x) << 12) 567ccd5a2cSjsg # define UPLL_SW_MASK 0x0000FFFF 577ccd5a2cSjsg # define VCLK_SRC_SEL(x) ((x) << 20) 587ccd5a2cSjsg # define VCLK_SRC_SEL_MASK 0x01F00000 597ccd5a2cSjsg # define DCLK_SRC_SEL(x) ((x) << 25) 607ccd5a2cSjsg # define DCLK_SRC_SEL_MASK 0x3E000000 617ccd5a2cSjsg #define CG_UPLL_FUNC_CNTL_3 0x720 627ccd5a2cSjsg # define UPLL_FB_DIV(x) ((x) << 0) 637ccd5a2cSjsg # define UPLL_FB_DIV_MASK 0x01FFFFFF 647ccd5a2cSjsg 657ccd5a2cSjsg /* pm registers */ 667ccd5a2cSjsg #define SMC_SRAM_ADDR 0x200 677ccd5a2cSjsg #define SMC_SRAM_AUTO_INC_DIS (1 << 16) 687ccd5a2cSjsg #define SMC_SRAM_DATA 0x204 697ccd5a2cSjsg #define SMC_IO 0x208 707ccd5a2cSjsg #define SMC_RST_N (1 << 0) 717ccd5a2cSjsg #define SMC_STOP_MODE (1 << 2) 727ccd5a2cSjsg #define SMC_CLK_EN (1 << 11) 737ccd5a2cSjsg #define SMC_MSG 0x20c 747ccd5a2cSjsg #define HOST_SMC_MSG(x) ((x) << 0) 757ccd5a2cSjsg #define HOST_SMC_MSG_MASK (0xff << 0) 767ccd5a2cSjsg #define HOST_SMC_MSG_SHIFT 0 777ccd5a2cSjsg #define HOST_SMC_RESP(x) ((x) << 8) 787ccd5a2cSjsg #define HOST_SMC_RESP_MASK (0xff << 8) 797ccd5a2cSjsg #define HOST_SMC_RESP_SHIFT 8 807ccd5a2cSjsg #define SMC_HOST_MSG(x) ((x) << 16) 817ccd5a2cSjsg #define SMC_HOST_MSG_MASK (0xff << 16) 827ccd5a2cSjsg #define SMC_HOST_MSG_SHIFT 16 837ccd5a2cSjsg #define SMC_HOST_RESP(x) ((x) << 24) 847ccd5a2cSjsg #define SMC_HOST_RESP_MASK (0xff << 24) 857ccd5a2cSjsg #define SMC_HOST_RESP_SHIFT 24 867ccd5a2cSjsg 877ccd5a2cSjsg #define SMC_ISR_FFD8_FFDB 0x218 887ccd5a2cSjsg 897ccd5a2cSjsg #define CG_SPLL_FUNC_CNTL 0x600 907ccd5a2cSjsg #define SPLL_RESET (1 << 0) 917ccd5a2cSjsg #define SPLL_SLEEP (1 << 1) 927ccd5a2cSjsg #define SPLL_DIVEN (1 << 2) 937ccd5a2cSjsg #define SPLL_BYPASS_EN (1 << 3) 947ccd5a2cSjsg #define SPLL_REF_DIV(x) ((x) << 4) 957ccd5a2cSjsg #define SPLL_REF_DIV_MASK (0x3f << 4) 967ccd5a2cSjsg #define SPLL_HILEN(x) ((x) << 12) 977ccd5a2cSjsg #define SPLL_HILEN_MASK (0xf << 12) 987ccd5a2cSjsg #define SPLL_LOLEN(x) ((x) << 16) 997ccd5a2cSjsg #define SPLL_LOLEN_MASK (0xf << 16) 1007ccd5a2cSjsg #define CG_SPLL_FUNC_CNTL_2 0x604 1017ccd5a2cSjsg #define SCLK_MUX_SEL(x) ((x) << 0) 1027ccd5a2cSjsg #define SCLK_MUX_SEL_MASK (0x1ff << 0) 1037ccd5a2cSjsg #define SCLK_MUX_UPDATE (1 << 26) 1047ccd5a2cSjsg #define CG_SPLL_FUNC_CNTL_3 0x608 1057ccd5a2cSjsg #define SPLL_FB_DIV(x) ((x) << 0) 1067ccd5a2cSjsg #define SPLL_FB_DIV_MASK (0x3ffffff << 0) 1077ccd5a2cSjsg #define SPLL_DITHEN (1 << 28) 1087ccd5a2cSjsg #define CG_SPLL_STATUS 0x60c 1097ccd5a2cSjsg #define SPLL_CHG_STATUS (1 << 1) 1107ccd5a2cSjsg 1117ccd5a2cSjsg #define SPLL_CNTL_MODE 0x610 1127ccd5a2cSjsg #define SPLL_DIV_SYNC (1 << 5) 1137ccd5a2cSjsg 1147ccd5a2cSjsg #define MPLL_CNTL_MODE 0x61c 1157ccd5a2cSjsg # define MPLL_MCLK_SEL (1 << 11) 1167ccd5a2cSjsg # define RV730_MPLL_MCLK_SEL (1 << 25) 1177ccd5a2cSjsg 1187ccd5a2cSjsg #define MPLL_AD_FUNC_CNTL 0x624 1197ccd5a2cSjsg #define CLKF(x) ((x) << 0) 1207ccd5a2cSjsg #define CLKF_MASK (0x7f << 0) 1217ccd5a2cSjsg #define CLKR(x) ((x) << 7) 1227ccd5a2cSjsg #define CLKR_MASK (0x1f << 7) 1237ccd5a2cSjsg #define CLKFRAC(x) ((x) << 12) 1247ccd5a2cSjsg #define CLKFRAC_MASK (0x1f << 12) 1257ccd5a2cSjsg #define YCLK_POST_DIV(x) ((x) << 17) 1267ccd5a2cSjsg #define YCLK_POST_DIV_MASK (3 << 17) 1277ccd5a2cSjsg #define IBIAS(x) ((x) << 20) 1287ccd5a2cSjsg #define IBIAS_MASK (0x3ff << 20) 1297ccd5a2cSjsg #define RESET (1 << 30) 1307ccd5a2cSjsg #define PDNB (1 << 31) 1317ccd5a2cSjsg #define MPLL_AD_FUNC_CNTL_2 0x628 1327ccd5a2cSjsg #define BYPASS (1 << 19) 1337ccd5a2cSjsg #define BIAS_GEN_PDNB (1 << 24) 1347ccd5a2cSjsg #define RESET_EN (1 << 25) 1357ccd5a2cSjsg #define VCO_MODE (1 << 29) 1367ccd5a2cSjsg #define MPLL_DQ_FUNC_CNTL 0x62c 1377ccd5a2cSjsg #define MPLL_DQ_FUNC_CNTL_2 0x630 1387ccd5a2cSjsg 1397ccd5a2cSjsg #define GENERAL_PWRMGT 0x63c 1407ccd5a2cSjsg # define GLOBAL_PWRMGT_EN (1 << 0) 1417ccd5a2cSjsg # define STATIC_PM_EN (1 << 1) 1427ccd5a2cSjsg # define THERMAL_PROTECTION_DIS (1 << 2) 1437ccd5a2cSjsg # define THERMAL_PROTECTION_TYPE (1 << 3) 1447ccd5a2cSjsg # define ENABLE_GEN2PCIE (1 << 4) 1457ccd5a2cSjsg # define ENABLE_GEN2XSP (1 << 5) 1467ccd5a2cSjsg # define SW_SMIO_INDEX(x) ((x) << 6) 1477ccd5a2cSjsg # define SW_SMIO_INDEX_MASK (3 << 6) 1487ccd5a2cSjsg # define SW_SMIO_INDEX_SHIFT 6 1497ccd5a2cSjsg # define LOW_VOLT_D2_ACPI (1 << 8) 1507ccd5a2cSjsg # define LOW_VOLT_D3_ACPI (1 << 9) 1517ccd5a2cSjsg # define VOLT_PWRMGT_EN (1 << 10) 1527ccd5a2cSjsg # define BACKBIAS_PAD_EN (1 << 18) 1537ccd5a2cSjsg # define BACKBIAS_VALUE (1 << 19) 1547ccd5a2cSjsg # define DYN_SPREAD_SPECTRUM_EN (1 << 23) 1557ccd5a2cSjsg # define AC_DC_SW (1 << 24) 1567ccd5a2cSjsg 1577ccd5a2cSjsg #define CG_TPC 0x640 1587ccd5a2cSjsg #define SCLK_PWRMGT_CNTL 0x644 1597ccd5a2cSjsg # define SCLK_PWRMGT_OFF (1 << 0) 1607ccd5a2cSjsg # define SCLK_LOW_D1 (1 << 1) 1617ccd5a2cSjsg # define FIR_RESET (1 << 4) 1627ccd5a2cSjsg # define FIR_FORCE_TREND_SEL (1 << 5) 1637ccd5a2cSjsg # define FIR_TREND_MODE (1 << 6) 1647ccd5a2cSjsg # define DYN_GFX_CLK_OFF_EN (1 << 7) 1657ccd5a2cSjsg # define GFX_CLK_FORCE_ON (1 << 8) 1667ccd5a2cSjsg # define GFX_CLK_REQUEST_OFF (1 << 9) 1677ccd5a2cSjsg # define GFX_CLK_FORCE_OFF (1 << 10) 1687ccd5a2cSjsg # define GFX_CLK_OFF_ACPI_D1 (1 << 11) 1697ccd5a2cSjsg # define GFX_CLK_OFF_ACPI_D2 (1 << 12) 1707ccd5a2cSjsg # define GFX_CLK_OFF_ACPI_D3 (1 << 13) 1717ccd5a2cSjsg #define MCLK_PWRMGT_CNTL 0x648 1727ccd5a2cSjsg # define DLL_SPEED(x) ((x) << 0) 1737ccd5a2cSjsg # define DLL_SPEED_MASK (0x1f << 0) 1747ccd5a2cSjsg # define MPLL_PWRMGT_OFF (1 << 5) 1757ccd5a2cSjsg # define DLL_READY (1 << 6) 1767ccd5a2cSjsg # define MC_INT_CNTL (1 << 7) 1777ccd5a2cSjsg # define MRDCKA0_SLEEP (1 << 8) 1787ccd5a2cSjsg # define MRDCKA1_SLEEP (1 << 9) 1797ccd5a2cSjsg # define MRDCKB0_SLEEP (1 << 10) 1807ccd5a2cSjsg # define MRDCKB1_SLEEP (1 << 11) 1817ccd5a2cSjsg # define MRDCKC0_SLEEP (1 << 12) 1827ccd5a2cSjsg # define MRDCKC1_SLEEP (1 << 13) 1837ccd5a2cSjsg # define MRDCKD0_SLEEP (1 << 14) 1847ccd5a2cSjsg # define MRDCKD1_SLEEP (1 << 15) 1857ccd5a2cSjsg # define MRDCKA0_RESET (1 << 16) 1867ccd5a2cSjsg # define MRDCKA1_RESET (1 << 17) 1877ccd5a2cSjsg # define MRDCKB0_RESET (1 << 18) 1887ccd5a2cSjsg # define MRDCKB1_RESET (1 << 19) 1897ccd5a2cSjsg # define MRDCKC0_RESET (1 << 20) 1907ccd5a2cSjsg # define MRDCKC1_RESET (1 << 21) 1917ccd5a2cSjsg # define MRDCKD0_RESET (1 << 22) 1927ccd5a2cSjsg # define MRDCKD1_RESET (1 << 23) 1937ccd5a2cSjsg # define DLL_READY_READ (1 << 24) 1947ccd5a2cSjsg # define USE_DISPLAY_GAP (1 << 25) 1957ccd5a2cSjsg # define USE_DISPLAY_URGENT_NORMAL (1 << 26) 1967ccd5a2cSjsg # define MPLL_TURNOFF_D2 (1 << 28) 1977ccd5a2cSjsg #define DLL_CNTL 0x64c 1987ccd5a2cSjsg # define MRDCKA0_BYPASS (1 << 24) 1997ccd5a2cSjsg # define MRDCKA1_BYPASS (1 << 25) 2007ccd5a2cSjsg # define MRDCKB0_BYPASS (1 << 26) 2017ccd5a2cSjsg # define MRDCKB1_BYPASS (1 << 27) 2027ccd5a2cSjsg # define MRDCKC0_BYPASS (1 << 28) 2037ccd5a2cSjsg # define MRDCKC1_BYPASS (1 << 29) 2047ccd5a2cSjsg # define MRDCKD0_BYPASS (1 << 30) 2057ccd5a2cSjsg # define MRDCKD1_BYPASS (1 << 31) 2067ccd5a2cSjsg 2077ccd5a2cSjsg #define MPLL_TIME 0x654 2087ccd5a2cSjsg # define MPLL_LOCK_TIME(x) ((x) << 0) 2097ccd5a2cSjsg # define MPLL_LOCK_TIME_MASK (0xffff << 0) 2107ccd5a2cSjsg # define MPLL_RESET_TIME(x) ((x) << 16) 2117ccd5a2cSjsg # define MPLL_RESET_TIME_MASK (0xffff << 16) 2127ccd5a2cSjsg 2137ccd5a2cSjsg #define CG_CLKPIN_CNTL 0x660 2147ccd5a2cSjsg # define MUX_TCLK_TO_XCLK (1 << 8) 2157ccd5a2cSjsg # define XTALIN_DIVIDE (1 << 9) 2167ccd5a2cSjsg 2177ccd5a2cSjsg #define TARGET_AND_CURRENT_PROFILE_INDEX 0x66c 2187ccd5a2cSjsg # define CURRENT_PROFILE_INDEX_MASK (0xf << 4) 2197ccd5a2cSjsg # define CURRENT_PROFILE_INDEX_SHIFT 4 2207ccd5a2cSjsg 2217ccd5a2cSjsg #define S0_VID_LOWER_SMIO_CNTL 0x678 2227ccd5a2cSjsg #define S1_VID_LOWER_SMIO_CNTL 0x67c 2237ccd5a2cSjsg #define S2_VID_LOWER_SMIO_CNTL 0x680 2247ccd5a2cSjsg #define S3_VID_LOWER_SMIO_CNTL 0x684 2257ccd5a2cSjsg 2267ccd5a2cSjsg #define CG_FTV 0x690 2277ccd5a2cSjsg #define CG_FFCT_0 0x694 2287ccd5a2cSjsg # define UTC_0(x) ((x) << 0) 2297ccd5a2cSjsg # define UTC_0_MASK (0x3ff << 0) 2307ccd5a2cSjsg # define DTC_0(x) ((x) << 10) 2317ccd5a2cSjsg # define DTC_0_MASK (0x3ff << 10) 2327ccd5a2cSjsg 2337ccd5a2cSjsg #define CG_BSP 0x6d0 2347ccd5a2cSjsg # define BSP(x) ((x) << 0) 2357ccd5a2cSjsg # define BSP_MASK (0xffff << 0) 2367ccd5a2cSjsg # define BSU(x) ((x) << 16) 2377ccd5a2cSjsg # define BSU_MASK (0xf << 16) 2387ccd5a2cSjsg #define CG_AT 0x6d4 2397ccd5a2cSjsg # define CG_R(x) ((x) << 0) 2407ccd5a2cSjsg # define CG_R_MASK (0xffff << 0) 2417ccd5a2cSjsg # define CG_L(x) ((x) << 16) 2427ccd5a2cSjsg # define CG_L_MASK (0xffff << 16) 2437ccd5a2cSjsg #define CG_GIT 0x6d8 2447ccd5a2cSjsg # define CG_GICST(x) ((x) << 0) 2457ccd5a2cSjsg # define CG_GICST_MASK (0xffff << 0) 2467ccd5a2cSjsg # define CG_GIPOT(x) ((x) << 16) 2477ccd5a2cSjsg # define CG_GIPOT_MASK (0xffff << 16) 2487ccd5a2cSjsg 2497ccd5a2cSjsg #define CG_SSP 0x6e8 2507ccd5a2cSjsg # define SST(x) ((x) << 0) 2517ccd5a2cSjsg # define SST_MASK (0xffff << 0) 2527ccd5a2cSjsg # define SSTU(x) ((x) << 16) 2537ccd5a2cSjsg # define SSTU_MASK (0xf << 16) 2547ccd5a2cSjsg 2557ccd5a2cSjsg #define CG_DISPLAY_GAP_CNTL 0x714 2567ccd5a2cSjsg # define DISP1_GAP(x) ((x) << 0) 2577ccd5a2cSjsg # define DISP1_GAP_MASK (3 << 0) 2587ccd5a2cSjsg # define DISP2_GAP(x) ((x) << 2) 2597ccd5a2cSjsg # define DISP2_GAP_MASK (3 << 2) 2607ccd5a2cSjsg # define VBI_TIMER_COUNT(x) ((x) << 4) 2617ccd5a2cSjsg # define VBI_TIMER_COUNT_MASK (0x3fff << 4) 2627ccd5a2cSjsg # define VBI_TIMER_UNIT(x) ((x) << 20) 2637ccd5a2cSjsg # define VBI_TIMER_UNIT_MASK (7 << 20) 2647ccd5a2cSjsg # define DISP1_GAP_MCHG(x) ((x) << 24) 2657ccd5a2cSjsg # define DISP1_GAP_MCHG_MASK (3 << 24) 2667ccd5a2cSjsg # define DISP2_GAP_MCHG(x) ((x) << 26) 2677ccd5a2cSjsg # define DISP2_GAP_MCHG_MASK (3 << 26) 2687ccd5a2cSjsg 2697ccd5a2cSjsg #define CG_SPLL_SPREAD_SPECTRUM 0x790 2707ccd5a2cSjsg #define SSEN (1 << 0) 2717ccd5a2cSjsg #define CLKS(x) ((x) << 4) 2727ccd5a2cSjsg #define CLKS_MASK (0xfff << 4) 2737ccd5a2cSjsg #define CG_SPLL_SPREAD_SPECTRUM_2 0x794 2747ccd5a2cSjsg #define CLKV(x) ((x) << 0) 2757ccd5a2cSjsg #define CLKV_MASK (0x3ffffff << 0) 2767ccd5a2cSjsg #define CG_MPLL_SPREAD_SPECTRUM 0x798 2777ccd5a2cSjsg #define CG_UPLL_SPREAD_SPECTRUM 0x79c 2787ccd5a2cSjsg # define SSEN_MASK 0x00000001 2797ccd5a2cSjsg 2807ccd5a2cSjsg #define CG_CGTT_LOCAL_0 0x7d0 2817ccd5a2cSjsg #define CG_CGTT_LOCAL_1 0x7d4 2827ccd5a2cSjsg 2837ccd5a2cSjsg #define BIOS_SCRATCH_4 0x1734 2847ccd5a2cSjsg 2857ccd5a2cSjsg #define MC_SEQ_MISC0 0x2a00 2867ccd5a2cSjsg #define MC_SEQ_MISC0_GDDR5_SHIFT 28 2877ccd5a2cSjsg #define MC_SEQ_MISC0_GDDR5_MASK 0xf0000000 2887ccd5a2cSjsg #define MC_SEQ_MISC0_GDDR5_VALUE 5 2897ccd5a2cSjsg 2907ccd5a2cSjsg #define MC_ARB_SQM_RATIO 0x2770 2917ccd5a2cSjsg #define STATE0(x) ((x) << 0) 2927ccd5a2cSjsg #define STATE0_MASK (0xff << 0) 2937ccd5a2cSjsg #define STATE1(x) ((x) << 8) 2947ccd5a2cSjsg #define STATE1_MASK (0xff << 8) 2957ccd5a2cSjsg #define STATE2(x) ((x) << 16) 2967ccd5a2cSjsg #define STATE2_MASK (0xff << 16) 2977ccd5a2cSjsg #define STATE3(x) ((x) << 24) 2987ccd5a2cSjsg #define STATE3_MASK (0xff << 24) 2997ccd5a2cSjsg 3007ccd5a2cSjsg #define MC_ARB_RFSH_RATE 0x27b0 3017ccd5a2cSjsg #define POWERMODE0(x) ((x) << 0) 3027ccd5a2cSjsg #define POWERMODE0_MASK (0xff << 0) 3037ccd5a2cSjsg #define POWERMODE1(x) ((x) << 8) 3047ccd5a2cSjsg #define POWERMODE1_MASK (0xff << 8) 3057ccd5a2cSjsg #define POWERMODE2(x) ((x) << 16) 3067ccd5a2cSjsg #define POWERMODE2_MASK (0xff << 16) 3077ccd5a2cSjsg #define POWERMODE3(x) ((x) << 24) 3087ccd5a2cSjsg #define POWERMODE3_MASK (0xff << 24) 3097ccd5a2cSjsg 3107ccd5a2cSjsg #define CGTS_SM_CTRL_REG 0x9150 3117ccd5a2cSjsg 3121099013bSjsg /* Registers */ 3131099013bSjsg #define CB_COLOR0_BASE 0x28040 3141099013bSjsg #define CB_COLOR1_BASE 0x28044 3151099013bSjsg #define CB_COLOR2_BASE 0x28048 3161099013bSjsg #define CB_COLOR3_BASE 0x2804C 3171099013bSjsg #define CB_COLOR4_BASE 0x28050 3181099013bSjsg #define CB_COLOR5_BASE 0x28054 3191099013bSjsg #define CB_COLOR6_BASE 0x28058 3201099013bSjsg #define CB_COLOR7_BASE 0x2805C 3211099013bSjsg #define CB_COLOR7_FRAG 0x280FC 3221099013bSjsg 3231099013bSjsg #define CC_GC_SHADER_PIPE_CONFIG 0x8950 3241099013bSjsg #define CC_RB_BACKEND_DISABLE 0x98F4 3251099013bSjsg #define BACKEND_DISABLE(x) ((x) << 16) 3261099013bSjsg #define CC_SYS_RB_BACKEND_DISABLE 0x3F88 3271099013bSjsg 3281099013bSjsg #define CGTS_SYS_TCC_DISABLE 0x3F90 3291099013bSjsg #define CGTS_TCC_DISABLE 0x9148 3301099013bSjsg #define CGTS_USER_SYS_TCC_DISABLE 0x3F94 3311099013bSjsg #define CGTS_USER_TCC_DISABLE 0x914C 3321099013bSjsg 3331099013bSjsg #define CONFIG_MEMSIZE 0x5428 3341099013bSjsg 3351099013bSjsg #define CP_ME_CNTL 0x86D8 3361099013bSjsg #define CP_ME_HALT (1 << 28) 3371099013bSjsg #define CP_PFP_HALT (1 << 26) 3381099013bSjsg #define CP_ME_RAM_DATA 0xC160 3391099013bSjsg #define CP_ME_RAM_RADDR 0xC158 3401099013bSjsg #define CP_ME_RAM_WADDR 0xC15C 3411099013bSjsg #define CP_MEQ_THRESHOLDS 0x8764 3421099013bSjsg #define STQ_SPLIT(x) ((x) << 0) 3431099013bSjsg #define CP_PERFMON_CNTL 0x87FC 3441099013bSjsg #define CP_PFP_UCODE_ADDR 0xC150 3451099013bSjsg #define CP_PFP_UCODE_DATA 0xC154 3461099013bSjsg #define CP_QUEUE_THRESHOLDS 0x8760 3471099013bSjsg #define ROQ_IB1_START(x) ((x) << 0) 3481099013bSjsg #define ROQ_IB2_START(x) ((x) << 8) 3491099013bSjsg #define CP_RB_CNTL 0xC104 3501099013bSjsg #define RB_BUFSZ(x) ((x) << 0) 3511099013bSjsg #define RB_BLKSZ(x) ((x) << 8) 3521099013bSjsg #define RB_NO_UPDATE (1 << 27) 3531099013bSjsg #define RB_RPTR_WR_ENA (1 << 31) 3541099013bSjsg #define BUF_SWAP_32BIT (2 << 16) 3551099013bSjsg #define CP_RB_RPTR 0x8700 3561099013bSjsg #define CP_RB_RPTR_ADDR 0xC10C 3571099013bSjsg #define CP_RB_RPTR_ADDR_HI 0xC110 3581099013bSjsg #define CP_RB_RPTR_WR 0xC108 3591099013bSjsg #define CP_RB_WPTR 0xC114 3601099013bSjsg #define CP_RB_WPTR_ADDR 0xC118 3611099013bSjsg #define CP_RB_WPTR_ADDR_HI 0xC11C 3621099013bSjsg #define CP_RB_WPTR_DELAY 0x8704 3631099013bSjsg #define CP_SEM_WAIT_TIMER 0x85BC 3641099013bSjsg 3651099013bSjsg #define DB_DEBUG3 0x98B0 3661099013bSjsg #define DB_CLK_OFF_DELAY(x) ((x) << 11) 3671099013bSjsg #define DB_DEBUG4 0x9B8C 3681099013bSjsg #define DISABLE_TILE_COVERED_FOR_PS_ITER (1 << 6) 3691099013bSjsg 3701099013bSjsg #define DCP_TILING_CONFIG 0x6CA0 3711099013bSjsg #define PIPE_TILING(x) ((x) << 1) 3721099013bSjsg #define BANK_TILING(x) ((x) << 4) 3731099013bSjsg #define GROUP_SIZE(x) ((x) << 6) 3741099013bSjsg #define ROW_TILING(x) ((x) << 8) 3751099013bSjsg #define BANK_SWAPS(x) ((x) << 11) 3761099013bSjsg #define SAMPLE_SPLIT(x) ((x) << 14) 3771099013bSjsg #define BACKEND_MAP(x) ((x) << 16) 3781099013bSjsg 3791099013bSjsg #define GB_TILING_CONFIG 0x98F0 3801099013bSjsg #define PIPE_TILING__SHIFT 1 3811099013bSjsg #define PIPE_TILING__MASK 0x0000000e 3821099013bSjsg 3831099013bSjsg #define DMA_TILING_CONFIG 0x3ec8 3841099013bSjsg #define DMA_TILING_CONFIG2 0xd0b8 3851099013bSjsg 3867ccd5a2cSjsg /* RV730 only */ 3877ccd5a2cSjsg #define UVD_UDEC_TILING_CONFIG 0xef40 3887ccd5a2cSjsg #define UVD_UDEC_DB_TILING_CONFIG 0xef44 3897ccd5a2cSjsg #define UVD_UDEC_DBW_TILING_CONFIG 0xef48 390*7f4dd379Sjsg #define UVD_NO_OP 0xeffc 3917ccd5a2cSjsg 3921099013bSjsg #define GC_USER_SHADER_PIPE_CONFIG 0x8954 3931099013bSjsg #define INACTIVE_QD_PIPES(x) ((x) << 8) 3941099013bSjsg #define INACTIVE_QD_PIPES_MASK 0x0000FF00 3951099013bSjsg #define INACTIVE_QD_PIPES_SHIFT 8 3961099013bSjsg #define INACTIVE_SIMDS(x) ((x) << 16) 3971099013bSjsg #define INACTIVE_SIMDS_MASK 0x00FF0000 3981099013bSjsg 3991099013bSjsg #define GRBM_CNTL 0x8000 4001099013bSjsg #define GRBM_READ_TIMEOUT(x) ((x) << 0) 4011099013bSjsg #define GRBM_SOFT_RESET 0x8020 4021099013bSjsg #define SOFT_RESET_CP (1<<0) 4031099013bSjsg #define GRBM_STATUS 0x8010 4041099013bSjsg #define CMDFIFO_AVAIL_MASK 0x0000000F 4051099013bSjsg #define GUI_ACTIVE (1<<31) 4061099013bSjsg #define GRBM_STATUS2 0x8014 4071099013bSjsg 4087ccd5a2cSjsg #define CG_THERMAL_CTRL 0x72C 4097ccd5a2cSjsg #define DPM_EVENT_SRC(x) ((x) << 0) 4107ccd5a2cSjsg #define DPM_EVENT_SRC_MASK (7 << 0) 4117ccd5a2cSjsg #define DIG_THERM_DPM(x) ((x) << 14) 4127ccd5a2cSjsg #define DIG_THERM_DPM_MASK 0x003FC000 4137ccd5a2cSjsg #define DIG_THERM_DPM_SHIFT 14 4147ccd5a2cSjsg 4157ccd5a2cSjsg #define CG_THERMAL_INT 0x734 4167ccd5a2cSjsg #define DIG_THERM_INTH(x) ((x) << 8) 4177ccd5a2cSjsg #define DIG_THERM_INTH_MASK 0x0000FF00 4187ccd5a2cSjsg #define DIG_THERM_INTH_SHIFT 8 4197ccd5a2cSjsg #define DIG_THERM_INTL(x) ((x) << 16) 4207ccd5a2cSjsg #define DIG_THERM_INTL_MASK 0x00FF0000 4217ccd5a2cSjsg #define DIG_THERM_INTL_SHIFT 16 4227ccd5a2cSjsg #define THERM_INT_MASK_HIGH (1 << 24) 4237ccd5a2cSjsg #define THERM_INT_MASK_LOW (1 << 25) 4247ccd5a2cSjsg 4251099013bSjsg #define CG_MULT_THERMAL_STATUS 0x740 4261099013bSjsg #define ASIC_T(x) ((x) << 16) 4271099013bSjsg #define ASIC_T_MASK 0x3FF0000 4281099013bSjsg #define ASIC_T_SHIFT 16 4291099013bSjsg 4301099013bSjsg #define HDP_HOST_PATH_CNTL 0x2C00 4311099013bSjsg #define HDP_NONSURFACE_BASE 0x2C04 4321099013bSjsg #define HDP_NONSURFACE_INFO 0x2C08 4331099013bSjsg #define HDP_NONSURFACE_SIZE 0x2C0C 4341099013bSjsg #define HDP_REG_COHERENCY_FLUSH_CNTL 0x54A0 4351099013bSjsg #define HDP_TILING_CONFIG 0x2F3C 4361099013bSjsg #define HDP_DEBUG1 0x2F34 4371099013bSjsg 4381099013bSjsg #define MC_SHARED_CHMAP 0x2004 4391099013bSjsg #define NOOFCHAN_SHIFT 12 4401099013bSjsg #define NOOFCHAN_MASK 0x00003000 4411099013bSjsg #define MC_SHARED_CHREMAP 0x2008 4421099013bSjsg 4431099013bSjsg #define MC_ARB_RAMCFG 0x2760 4441099013bSjsg #define NOOFBANK_SHIFT 0 4451099013bSjsg #define NOOFBANK_MASK 0x00000003 4461099013bSjsg #define NOOFRANK_SHIFT 2 4471099013bSjsg #define NOOFRANK_MASK 0x00000004 4481099013bSjsg #define NOOFROWS_SHIFT 3 4491099013bSjsg #define NOOFROWS_MASK 0x00000038 4501099013bSjsg #define NOOFCOLS_SHIFT 6 4511099013bSjsg #define NOOFCOLS_MASK 0x000000C0 4521099013bSjsg #define CHANSIZE_SHIFT 8 4531099013bSjsg #define CHANSIZE_MASK 0x00000100 4541099013bSjsg #define BURSTLENGTH_SHIFT 9 4551099013bSjsg #define BURSTLENGTH_MASK 0x00000200 4561099013bSjsg #define CHANSIZE_OVERRIDE (1 << 11) 4571099013bSjsg #define MC_VM_AGP_TOP 0x2028 4581099013bSjsg #define MC_VM_AGP_BOT 0x202C 4591099013bSjsg #define MC_VM_AGP_BASE 0x2030 4601099013bSjsg #define MC_VM_FB_LOCATION 0x2024 4611099013bSjsg #define MC_VM_MB_L1_TLB0_CNTL 0x2234 4621099013bSjsg #define MC_VM_MB_L1_TLB1_CNTL 0x2238 4631099013bSjsg #define MC_VM_MB_L1_TLB2_CNTL 0x223C 4641099013bSjsg #define MC_VM_MB_L1_TLB3_CNTL 0x2240 4651099013bSjsg #define ENABLE_L1_TLB (1 << 0) 4661099013bSjsg #define ENABLE_L1_FRAGMENT_PROCESSING (1 << 1) 4671099013bSjsg #define SYSTEM_ACCESS_MODE_PA_ONLY (0 << 3) 4681099013bSjsg #define SYSTEM_ACCESS_MODE_USE_SYS_MAP (1 << 3) 4691099013bSjsg #define SYSTEM_ACCESS_MODE_IN_SYS (2 << 3) 4701099013bSjsg #define SYSTEM_ACCESS_MODE_NOT_IN_SYS (3 << 3) 4711099013bSjsg #define SYSTEM_APERTURE_UNMAPPED_ACCESS_PASS_THRU (0 << 5) 4721099013bSjsg #define EFFECTIVE_L1_TLB_SIZE(x) ((x)<<15) 4731099013bSjsg #define EFFECTIVE_L1_QUEUE_SIZE(x) ((x)<<18) 4741099013bSjsg #define MC_VM_MD_L1_TLB0_CNTL 0x2654 4751099013bSjsg #define MC_VM_MD_L1_TLB1_CNTL 0x2658 4761099013bSjsg #define MC_VM_MD_L1_TLB2_CNTL 0x265C 4771099013bSjsg #define MC_VM_MD_L1_TLB3_CNTL 0x2698 4781099013bSjsg #define MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR 0x203C 4791099013bSjsg #define MC_VM_SYSTEM_APERTURE_HIGH_ADDR 0x2038 4801099013bSjsg #define MC_VM_SYSTEM_APERTURE_LOW_ADDR 0x2034 4811099013bSjsg 4821099013bSjsg #define PA_CL_ENHANCE 0x8A14 4831099013bSjsg #define CLIP_VTX_REORDER_ENA (1 << 0) 4841099013bSjsg #define NUM_CLIP_SEQ(x) ((x) << 1) 4851099013bSjsg #define PA_SC_AA_CONFIG 0x28C04 4861099013bSjsg #define PA_SC_CLIPRECT_RULE 0x2820C 4871099013bSjsg #define PA_SC_EDGERULE 0x28230 4881099013bSjsg #define PA_SC_FIFO_SIZE 0x8BCC 4891099013bSjsg #define SC_PRIM_FIFO_SIZE(x) ((x) << 0) 4901099013bSjsg #define SC_HIZ_TILE_FIFO_SIZE(x) ((x) << 12) 4911099013bSjsg #define PA_SC_FORCE_EOV_MAX_CNTS 0x8B24 4921099013bSjsg #define FORCE_EOV_MAX_CLK_CNT(x) ((x)<<0) 4931099013bSjsg #define FORCE_EOV_MAX_REZ_CNT(x) ((x)<<16) 4941099013bSjsg #define PA_SC_LINE_STIPPLE 0x28A0C 4951099013bSjsg #define PA_SC_LINE_STIPPLE_STATE 0x8B10 4961099013bSjsg #define PA_SC_MODE_CNTL 0x28A4C 4971099013bSjsg #define PA_SC_MULTI_CHIP_CNTL 0x8B20 4981099013bSjsg #define SC_EARLYZ_TILE_FIFO_SIZE(x) ((x) << 20) 4991099013bSjsg 5001099013bSjsg #define SCRATCH_REG0 0x8500 5011099013bSjsg #define SCRATCH_REG1 0x8504 5021099013bSjsg #define SCRATCH_REG2 0x8508 5031099013bSjsg #define SCRATCH_REG3 0x850C 5041099013bSjsg #define SCRATCH_REG4 0x8510 5051099013bSjsg #define SCRATCH_REG5 0x8514 5061099013bSjsg #define SCRATCH_REG6 0x8518 5071099013bSjsg #define SCRATCH_REG7 0x851C 5081099013bSjsg #define SCRATCH_UMSK 0x8540 5091099013bSjsg #define SCRATCH_ADDR 0x8544 5101099013bSjsg 5111099013bSjsg #define SMX_SAR_CTL0 0xA008 5121099013bSjsg #define SMX_DC_CTL0 0xA020 5131099013bSjsg #define USE_HASH_FUNCTION (1 << 0) 5141099013bSjsg #define CACHE_DEPTH(x) ((x) << 1) 5151099013bSjsg #define FLUSH_ALL_ON_EVENT (1 << 10) 5161099013bSjsg #define STALL_ON_EVENT (1 << 11) 5171099013bSjsg #define SMX_EVENT_CTL 0xA02C 5181099013bSjsg #define ES_FLUSH_CTL(x) ((x) << 0) 5191099013bSjsg #define GS_FLUSH_CTL(x) ((x) << 3) 5201099013bSjsg #define ACK_FLUSH_CTL(x) ((x) << 6) 5211099013bSjsg #define SYNC_FLUSH_CTL (1 << 8) 5221099013bSjsg 5231099013bSjsg #define SPI_CONFIG_CNTL 0x9100 5241099013bSjsg #define GPR_WRITE_PRIORITY(x) ((x) << 0) 5251099013bSjsg #define DISABLE_INTERP_1 (1 << 5) 5261099013bSjsg #define SPI_CONFIG_CNTL_1 0x913C 5271099013bSjsg #define VTX_DONE_DELAY(x) ((x) << 0) 5281099013bSjsg #define INTERP_ONE_PRIM_PER_ROW (1 << 4) 5291099013bSjsg #define SPI_INPUT_Z 0x286D8 5301099013bSjsg #define SPI_PS_IN_CONTROL_0 0x286CC 5311099013bSjsg #define NUM_INTERP(x) ((x)<<0) 5321099013bSjsg #define POSITION_ENA (1<<8) 5331099013bSjsg #define POSITION_CENTROID (1<<9) 5341099013bSjsg #define POSITION_ADDR(x) ((x)<<10) 5351099013bSjsg #define PARAM_GEN(x) ((x)<<15) 5361099013bSjsg #define PARAM_GEN_ADDR(x) ((x)<<19) 5371099013bSjsg #define BARYC_SAMPLE_CNTL(x) ((x)<<26) 5381099013bSjsg #define PERSP_GRADIENT_ENA (1<<28) 5391099013bSjsg #define LINEAR_GRADIENT_ENA (1<<29) 5401099013bSjsg #define POSITION_SAMPLE (1<<30) 5411099013bSjsg #define BARYC_AT_SAMPLE_ENA (1<<31) 5421099013bSjsg 5431099013bSjsg #define SQ_CONFIG 0x8C00 5441099013bSjsg #define VC_ENABLE (1 << 0) 5451099013bSjsg #define EXPORT_SRC_C (1 << 1) 5461099013bSjsg #define DX9_CONSTS (1 << 2) 5471099013bSjsg #define ALU_INST_PREFER_VECTOR (1 << 3) 5481099013bSjsg #define DX10_CLAMP (1 << 4) 5491099013bSjsg #define CLAUSE_SEQ_PRIO(x) ((x) << 8) 5501099013bSjsg #define PS_PRIO(x) ((x) << 24) 5511099013bSjsg #define VS_PRIO(x) ((x) << 26) 5521099013bSjsg #define GS_PRIO(x) ((x) << 28) 5531099013bSjsg #define SQ_DYN_GPR_SIZE_SIMD_AB_0 0x8DB0 5541099013bSjsg #define SIMDA_RING0(x) ((x)<<0) 5551099013bSjsg #define SIMDA_RING1(x) ((x)<<8) 5561099013bSjsg #define SIMDB_RING0(x) ((x)<<16) 5571099013bSjsg #define SIMDB_RING1(x) ((x)<<24) 5581099013bSjsg #define SQ_DYN_GPR_SIZE_SIMD_AB_1 0x8DB4 5591099013bSjsg #define SQ_DYN_GPR_SIZE_SIMD_AB_2 0x8DB8 5601099013bSjsg #define SQ_DYN_GPR_SIZE_SIMD_AB_3 0x8DBC 5611099013bSjsg #define SQ_DYN_GPR_SIZE_SIMD_AB_4 0x8DC0 5621099013bSjsg #define SQ_DYN_GPR_SIZE_SIMD_AB_5 0x8DC4 5631099013bSjsg #define SQ_DYN_GPR_SIZE_SIMD_AB_6 0x8DC8 5641099013bSjsg #define SQ_DYN_GPR_SIZE_SIMD_AB_7 0x8DCC 5651099013bSjsg #define ES_PRIO(x) ((x) << 30) 5661099013bSjsg #define SQ_GPR_RESOURCE_MGMT_1 0x8C04 5671099013bSjsg #define NUM_PS_GPRS(x) ((x) << 0) 5681099013bSjsg #define NUM_VS_GPRS(x) ((x) << 16) 5691099013bSjsg #define DYN_GPR_ENABLE (1 << 27) 5701099013bSjsg #define NUM_CLAUSE_TEMP_GPRS(x) ((x) << 28) 5711099013bSjsg #define SQ_GPR_RESOURCE_MGMT_2 0x8C08 5721099013bSjsg #define NUM_GS_GPRS(x) ((x) << 0) 5731099013bSjsg #define NUM_ES_GPRS(x) ((x) << 16) 5741099013bSjsg #define SQ_MS_FIFO_SIZES 0x8CF0 5751099013bSjsg #define CACHE_FIFO_SIZE(x) ((x) << 0) 5761099013bSjsg #define FETCH_FIFO_HIWATER(x) ((x) << 8) 5771099013bSjsg #define DONE_FIFO_HIWATER(x) ((x) << 16) 5781099013bSjsg #define ALU_UPDATE_FIFO_HIWATER(x) ((x) << 24) 5791099013bSjsg #define SQ_STACK_RESOURCE_MGMT_1 0x8C10 5801099013bSjsg #define NUM_PS_STACK_ENTRIES(x) ((x) << 0) 5811099013bSjsg #define NUM_VS_STACK_ENTRIES(x) ((x) << 16) 5821099013bSjsg #define SQ_STACK_RESOURCE_MGMT_2 0x8C14 5831099013bSjsg #define NUM_GS_STACK_ENTRIES(x) ((x) << 0) 5841099013bSjsg #define NUM_ES_STACK_ENTRIES(x) ((x) << 16) 5851099013bSjsg #define SQ_THREAD_RESOURCE_MGMT 0x8C0C 5861099013bSjsg #define NUM_PS_THREADS(x) ((x) << 0) 5871099013bSjsg #define NUM_VS_THREADS(x) ((x) << 8) 5881099013bSjsg #define NUM_GS_THREADS(x) ((x) << 16) 5891099013bSjsg #define NUM_ES_THREADS(x) ((x) << 24) 5901099013bSjsg 5911099013bSjsg #define SX_DEBUG_1 0x9058 5921099013bSjsg #define ENABLE_NEW_SMX_ADDRESS (1 << 16) 5931099013bSjsg #define SX_EXPORT_BUFFER_SIZES 0x900C 5941099013bSjsg #define COLOR_BUFFER_SIZE(x) ((x) << 0) 5951099013bSjsg #define POSITION_BUFFER_SIZE(x) ((x) << 8) 5961099013bSjsg #define SMX_BUFFER_SIZE(x) ((x) << 16) 5971099013bSjsg #define SX_MISC 0x28350 5981099013bSjsg 5991099013bSjsg #define TA_CNTL_AUX 0x9508 6001099013bSjsg #define DISABLE_CUBE_WRAP (1 << 0) 6011099013bSjsg #define DISABLE_CUBE_ANISO (1 << 1) 6021099013bSjsg #define SYNC_GRADIENT (1 << 24) 6031099013bSjsg #define SYNC_WALKER (1 << 25) 6041099013bSjsg #define SYNC_ALIGNER (1 << 26) 6051099013bSjsg #define BILINEAR_PRECISION_6_BIT (0 << 31) 6061099013bSjsg #define BILINEAR_PRECISION_8_BIT (1 << 31) 6071099013bSjsg 6081099013bSjsg #define TCP_CNTL 0x9610 6091099013bSjsg #define TCP_CHAN_STEER 0x9614 6101099013bSjsg 6111099013bSjsg #define VC_ENHANCE 0x9714 6121099013bSjsg 6131099013bSjsg #define VGT_CACHE_INVALIDATION 0x88C4 6141099013bSjsg #define CACHE_INVALIDATION(x) ((x)<<0) 6151099013bSjsg #define VC_ONLY 0 6161099013bSjsg #define TC_ONLY 1 6171099013bSjsg #define VC_AND_TC 2 6181099013bSjsg #define AUTO_INVLD_EN(x) ((x) << 6) 6191099013bSjsg #define NO_AUTO 0 6201099013bSjsg #define ES_AUTO 1 6211099013bSjsg #define GS_AUTO 2 6221099013bSjsg #define ES_AND_GS_AUTO 3 6231099013bSjsg #define VGT_ES_PER_GS 0x88CC 6241099013bSjsg #define VGT_GS_PER_ES 0x88C8 6251099013bSjsg #define VGT_GS_PER_VS 0x88E8 6261099013bSjsg #define VGT_GS_VERTEX_REUSE 0x88D4 6271099013bSjsg #define VGT_NUM_INSTANCES 0x8974 6281099013bSjsg #define VGT_OUT_DEALLOC_CNTL 0x28C5C 6291099013bSjsg #define DEALLOC_DIST_MASK 0x0000007F 6301099013bSjsg #define VGT_STRMOUT_EN 0x28AB0 6311099013bSjsg #define VGT_VERTEX_REUSE_BLOCK_CNTL 0x28C58 6321099013bSjsg #define VTX_REUSE_DEPTH_MASK 0x000000FF 6331099013bSjsg 6341099013bSjsg #define VM_CONTEXT0_CNTL 0x1410 6351099013bSjsg #define ENABLE_CONTEXT (1 << 0) 6361099013bSjsg #define PAGE_TABLE_DEPTH(x) (((x) & 3) << 1) 6371099013bSjsg #define RANGE_PROTECTION_FAULT_ENABLE_DEFAULT (1 << 4) 6381099013bSjsg #define VM_CONTEXT0_PAGE_TABLE_BASE_ADDR 0x153C 6391099013bSjsg #define VM_CONTEXT0_PAGE_TABLE_END_ADDR 0x157C 6401099013bSjsg #define VM_CONTEXT0_PAGE_TABLE_START_ADDR 0x155C 6411099013bSjsg #define VM_CONTEXT0_PROTECTION_FAULT_DEFAULT_ADDR 0x1518 6421099013bSjsg #define VM_L2_CNTL 0x1400 6431099013bSjsg #define ENABLE_L2_CACHE (1 << 0) 6441099013bSjsg #define ENABLE_L2_FRAGMENT_PROCESSING (1 << 1) 6451099013bSjsg #define ENABLE_L2_PTE_CACHE_LRU_UPDATE_BY_WRITE (1 << 9) 6461099013bSjsg #define EFFECTIVE_L2_QUEUE_SIZE(x) (((x) & 7) << 14) 6471099013bSjsg #define VM_L2_CNTL2 0x1404 6481099013bSjsg #define INVALIDATE_ALL_L1_TLBS (1 << 0) 6491099013bSjsg #define INVALIDATE_L2_CACHE (1 << 1) 6501099013bSjsg #define VM_L2_CNTL3 0x1408 6511099013bSjsg #define BANK_SELECT(x) ((x) << 0) 6521099013bSjsg #define CACHE_UPDATE_MODE(x) ((x) << 6) 6531099013bSjsg #define VM_L2_STATUS 0x140C 6541099013bSjsg #define L2_BUSY (1 << 0) 6551099013bSjsg 6561099013bSjsg #define WAIT_UNTIL 0x8040 6571099013bSjsg 6581099013bSjsg /* async DMA */ 6591099013bSjsg #define DMA_RB_RPTR 0xd008 6601099013bSjsg #define DMA_RB_WPTR 0xd00c 6611099013bSjsg 6621099013bSjsg /* async DMA packets */ 6631099013bSjsg #define DMA_PACKET(cmd, t, s, n) ((((cmd) & 0xF) << 28) | \ 6641099013bSjsg (((t) & 0x1) << 23) | \ 6651099013bSjsg (((s) & 0x1) << 22) | \ 6661099013bSjsg (((n) & 0xFFFF) << 0)) 6671099013bSjsg /* async DMA Packet types */ 6681099013bSjsg #define DMA_PACKET_WRITE 0x2 6691099013bSjsg #define DMA_PACKET_COPY 0x3 6701099013bSjsg #define DMA_PACKET_INDIRECT_BUFFER 0x4 6711099013bSjsg #define DMA_PACKET_SEMAPHORE 0x5 6721099013bSjsg #define DMA_PACKET_FENCE 0x6 6731099013bSjsg #define DMA_PACKET_TRAP 0x7 6741099013bSjsg #define DMA_PACKET_CONSTANT_FILL 0xd 6751099013bSjsg #define DMA_PACKET_NOP 0xf 6761099013bSjsg 6771099013bSjsg 6781099013bSjsg #define SRBM_STATUS 0x0E50 6791099013bSjsg 6801099013bSjsg /* DCE 3.2 HDMI */ 6811099013bSjsg #define HDMI_CONTROL 0x7400 6821099013bSjsg # define HDMI_KEEPOUT_MODE (1 << 0) 6831099013bSjsg # define HDMI_PACKET_GEN_VERSION (1 << 4) /* 0 = r6xx compat */ 6841099013bSjsg # define HDMI_ERROR_ACK (1 << 8) 6851099013bSjsg # define HDMI_ERROR_MASK (1 << 9) 6861099013bSjsg #define HDMI_STATUS 0x7404 6871099013bSjsg # define HDMI_ACTIVE_AVMUTE (1 << 0) 6881099013bSjsg # define HDMI_AUDIO_PACKET_ERROR (1 << 16) 6891099013bSjsg # define HDMI_VBI_PACKET_ERROR (1 << 20) 6901099013bSjsg #define HDMI_AUDIO_PACKET_CONTROL 0x7408 6911099013bSjsg # define HDMI_AUDIO_DELAY_EN(x) (((x) & 3) << 4) 6921099013bSjsg # define HDMI_AUDIO_PACKETS_PER_LINE(x) (((x) & 0x1f) << 16) 6931099013bSjsg #define HDMI_ACR_PACKET_CONTROL 0x740c 6941099013bSjsg # define HDMI_ACR_SEND (1 << 0) 6951099013bSjsg # define HDMI_ACR_CONT (1 << 1) 6961099013bSjsg # define HDMI_ACR_SELECT(x) (((x) & 3) << 4) 6971099013bSjsg # define HDMI_ACR_HW 0 6981099013bSjsg # define HDMI_ACR_32 1 6991099013bSjsg # define HDMI_ACR_44 2 7001099013bSjsg # define HDMI_ACR_48 3 7011099013bSjsg # define HDMI_ACR_SOURCE (1 << 8) /* 0 - hw; 1 - cts value */ 7021099013bSjsg # define HDMI_ACR_AUTO_SEND (1 << 12) 7031099013bSjsg #define HDMI_VBI_PACKET_CONTROL 0x7410 7041099013bSjsg # define HDMI_NULL_SEND (1 << 0) 7051099013bSjsg # define HDMI_GC_SEND (1 << 4) 7061099013bSjsg # define HDMI_GC_CONT (1 << 5) /* 0 - once; 1 - every frame */ 7071099013bSjsg #define HDMI_INFOFRAME_CONTROL0 0x7414 7081099013bSjsg # define HDMI_AVI_INFO_SEND (1 << 0) 7091099013bSjsg # define HDMI_AVI_INFO_CONT (1 << 1) 7101099013bSjsg # define HDMI_AUDIO_INFO_SEND (1 << 4) 7111099013bSjsg # define HDMI_AUDIO_INFO_CONT (1 << 5) 7121099013bSjsg # define HDMI_MPEG_INFO_SEND (1 << 8) 7131099013bSjsg # define HDMI_MPEG_INFO_CONT (1 << 9) 7141099013bSjsg #define HDMI_INFOFRAME_CONTROL1 0x7418 7151099013bSjsg # define HDMI_AVI_INFO_LINE(x) (((x) & 0x3f) << 0) 7161099013bSjsg # define HDMI_AUDIO_INFO_LINE(x) (((x) & 0x3f) << 8) 7171099013bSjsg # define HDMI_MPEG_INFO_LINE(x) (((x) & 0x3f) << 16) 7181099013bSjsg #define HDMI_GENERIC_PACKET_CONTROL 0x741c 7191099013bSjsg # define HDMI_GENERIC0_SEND (1 << 0) 7201099013bSjsg # define HDMI_GENERIC0_CONT (1 << 1) 7211099013bSjsg # define HDMI_GENERIC1_SEND (1 << 4) 7221099013bSjsg # define HDMI_GENERIC1_CONT (1 << 5) 7231099013bSjsg # define HDMI_GENERIC0_LINE(x) (((x) & 0x3f) << 16) 7241099013bSjsg # define HDMI_GENERIC1_LINE(x) (((x) & 0x3f) << 24) 7251099013bSjsg #define HDMI_GC 0x7428 7261099013bSjsg # define HDMI_GC_AVMUTE (1 << 0) 7271099013bSjsg #define AFMT_AUDIO_PACKET_CONTROL2 0x742c 7281099013bSjsg # define AFMT_AUDIO_LAYOUT_OVRD (1 << 0) 7291099013bSjsg # define AFMT_AUDIO_LAYOUT_SELECT (1 << 1) 7301099013bSjsg # define AFMT_60958_CS_SOURCE (1 << 4) 7311099013bSjsg # define AFMT_AUDIO_CHANNEL_ENABLE(x) (((x) & 0xff) << 8) 7321099013bSjsg # define AFMT_DP_AUDIO_STREAM_ID(x) (((x) & 0xff) << 16) 7331099013bSjsg #define AFMT_AVI_INFO0 0x7454 7341099013bSjsg # define AFMT_AVI_INFO_CHECKSUM(x) (((x) & 0xff) << 0) 7351099013bSjsg # define AFMT_AVI_INFO_S(x) (((x) & 3) << 8) 7361099013bSjsg # define AFMT_AVI_INFO_B(x) (((x) & 3) << 10) 7371099013bSjsg # define AFMT_AVI_INFO_A(x) (((x) & 1) << 12) 7381099013bSjsg # define AFMT_AVI_INFO_Y(x) (((x) & 3) << 13) 7391099013bSjsg # define AFMT_AVI_INFO_Y_RGB 0 7401099013bSjsg # define AFMT_AVI_INFO_Y_YCBCR422 1 7411099013bSjsg # define AFMT_AVI_INFO_Y_YCBCR444 2 7421099013bSjsg # define AFMT_AVI_INFO_Y_A_B_S(x) (((x) & 0xff) << 8) 7431099013bSjsg # define AFMT_AVI_INFO_R(x) (((x) & 0xf) << 16) 7441099013bSjsg # define AFMT_AVI_INFO_M(x) (((x) & 0x3) << 20) 7451099013bSjsg # define AFMT_AVI_INFO_C(x) (((x) & 0x3) << 22) 7461099013bSjsg # define AFMT_AVI_INFO_C_M_R(x) (((x) & 0xff) << 16) 7471099013bSjsg # define AFMT_AVI_INFO_SC(x) (((x) & 0x3) << 24) 7481099013bSjsg # define AFMT_AVI_INFO_Q(x) (((x) & 0x3) << 26) 7491099013bSjsg # define AFMT_AVI_INFO_EC(x) (((x) & 0x3) << 28) 7501099013bSjsg # define AFMT_AVI_INFO_ITC(x) (((x) & 0x1) << 31) 7511099013bSjsg # define AFMT_AVI_INFO_ITC_EC_Q_SC(x) (((x) & 0xff) << 24) 7521099013bSjsg #define AFMT_AVI_INFO1 0x7458 7531099013bSjsg # define AFMT_AVI_INFO_VIC(x) (((x) & 0x7f) << 0) /* don't use avi infoframe v1 */ 7541099013bSjsg # define AFMT_AVI_INFO_PR(x) (((x) & 0xf) << 8) /* don't use avi infoframe v1 */ 7551099013bSjsg # define AFMT_AVI_INFO_TOP(x) (((x) & 0xffff) << 16) 7561099013bSjsg #define AFMT_AVI_INFO2 0x745c 7571099013bSjsg # define AFMT_AVI_INFO_BOTTOM(x) (((x) & 0xffff) << 0) 7581099013bSjsg # define AFMT_AVI_INFO_LEFT(x) (((x) & 0xffff) << 16) 7591099013bSjsg #define AFMT_AVI_INFO3 0x7460 7601099013bSjsg # define AFMT_AVI_INFO_RIGHT(x) (((x) & 0xffff) << 0) 7611099013bSjsg # define AFMT_AVI_INFO_VERSION(x) (((x) & 3) << 24) 7621099013bSjsg #define AFMT_MPEG_INFO0 0x7464 7631099013bSjsg # define AFMT_MPEG_INFO_CHECKSUM(x) (((x) & 0xff) << 0) 7641099013bSjsg # define AFMT_MPEG_INFO_MB0(x) (((x) & 0xff) << 8) 7651099013bSjsg # define AFMT_MPEG_INFO_MB1(x) (((x) & 0xff) << 16) 7661099013bSjsg # define AFMT_MPEG_INFO_MB2(x) (((x) & 0xff) << 24) 7671099013bSjsg #define AFMT_MPEG_INFO1 0x7468 7681099013bSjsg # define AFMT_MPEG_INFO_MB3(x) (((x) & 0xff) << 0) 7691099013bSjsg # define AFMT_MPEG_INFO_MF(x) (((x) & 3) << 8) 7701099013bSjsg # define AFMT_MPEG_INFO_FR(x) (((x) & 1) << 12) 7711099013bSjsg #define AFMT_GENERIC0_HDR 0x746c 7721099013bSjsg #define AFMT_GENERIC0_0 0x7470 7731099013bSjsg #define AFMT_GENERIC0_1 0x7474 7741099013bSjsg #define AFMT_GENERIC0_2 0x7478 7751099013bSjsg #define AFMT_GENERIC0_3 0x747c 7761099013bSjsg #define AFMT_GENERIC0_4 0x7480 7771099013bSjsg #define AFMT_GENERIC0_5 0x7484 7781099013bSjsg #define AFMT_GENERIC0_6 0x7488 7791099013bSjsg #define AFMT_GENERIC1_HDR 0x748c 7801099013bSjsg #define AFMT_GENERIC1_0 0x7490 7811099013bSjsg #define AFMT_GENERIC1_1 0x7494 7821099013bSjsg #define AFMT_GENERIC1_2 0x7498 7831099013bSjsg #define AFMT_GENERIC1_3 0x749c 7841099013bSjsg #define AFMT_GENERIC1_4 0x74a0 7851099013bSjsg #define AFMT_GENERIC1_5 0x74a4 7861099013bSjsg #define AFMT_GENERIC1_6 0x74a8 7871099013bSjsg #define HDMI_ACR_32_0 0x74ac 7881099013bSjsg # define HDMI_ACR_CTS_32(x) (((x) & 0xfffff) << 12) 7891099013bSjsg #define HDMI_ACR_32_1 0x74b0 7901099013bSjsg # define HDMI_ACR_N_32(x) (((x) & 0xfffff) << 0) 7911099013bSjsg #define HDMI_ACR_44_0 0x74b4 7921099013bSjsg # define HDMI_ACR_CTS_44(x) (((x) & 0xfffff) << 12) 7931099013bSjsg #define HDMI_ACR_44_1 0x74b8 7941099013bSjsg # define HDMI_ACR_N_44(x) (((x) & 0xfffff) << 0) 7951099013bSjsg #define HDMI_ACR_48_0 0x74bc 7961099013bSjsg # define HDMI_ACR_CTS_48(x) (((x) & 0xfffff) << 12) 7971099013bSjsg #define HDMI_ACR_48_1 0x74c0 7981099013bSjsg # define HDMI_ACR_N_48(x) (((x) & 0xfffff) << 0) 7991099013bSjsg #define HDMI_ACR_STATUS_0 0x74c4 8001099013bSjsg #define HDMI_ACR_STATUS_1 0x74c8 8011099013bSjsg #define AFMT_AUDIO_INFO0 0x74cc 8021099013bSjsg # define AFMT_AUDIO_INFO_CHECKSUM(x) (((x) & 0xff) << 0) 8031099013bSjsg # define AFMT_AUDIO_INFO_CC(x) (((x) & 7) << 8) 8041099013bSjsg # define AFMT_AUDIO_INFO_CHECKSUM_OFFSET(x) (((x) & 0xff) << 16) 8051099013bSjsg #define AFMT_AUDIO_INFO1 0x74d0 8061099013bSjsg # define AFMT_AUDIO_INFO_CA(x) (((x) & 0xff) << 0) 8071099013bSjsg # define AFMT_AUDIO_INFO_LSV(x) (((x) & 0xf) << 11) 8081099013bSjsg # define AFMT_AUDIO_INFO_DM_INH(x) (((x) & 1) << 15) 8091099013bSjsg # define AFMT_AUDIO_INFO_DM_INH_LSV(x) (((x) & 0xff) << 8) 8101099013bSjsg #define AFMT_60958_0 0x74d4 8111099013bSjsg # define AFMT_60958_CS_A(x) (((x) & 1) << 0) 8121099013bSjsg # define AFMT_60958_CS_B(x) (((x) & 1) << 1) 8131099013bSjsg # define AFMT_60958_CS_C(x) (((x) & 1) << 2) 8141099013bSjsg # define AFMT_60958_CS_D(x) (((x) & 3) << 3) 8151099013bSjsg # define AFMT_60958_CS_MODE(x) (((x) & 3) << 6) 8161099013bSjsg # define AFMT_60958_CS_CATEGORY_CODE(x) (((x) & 0xff) << 8) 8171099013bSjsg # define AFMT_60958_CS_SOURCE_NUMBER(x) (((x) & 0xf) << 16) 8181099013bSjsg # define AFMT_60958_CS_CHANNEL_NUMBER_L(x) (((x) & 0xf) << 20) 8191099013bSjsg # define AFMT_60958_CS_SAMPLING_FREQUENCY(x) (((x) & 0xf) << 24) 8201099013bSjsg # define AFMT_60958_CS_CLOCK_ACCURACY(x) (((x) & 3) << 28) 8211099013bSjsg #define AFMT_60958_1 0x74d8 8221099013bSjsg # define AFMT_60958_CS_WORD_LENGTH(x) (((x) & 0xf) << 0) 8231099013bSjsg # define AFMT_60958_CS_ORIGINAL_SAMPLING_FREQUENCY(x) (((x) & 0xf) << 4) 8241099013bSjsg # define AFMT_60958_CS_VALID_L(x) (((x) & 1) << 16) 8251099013bSjsg # define AFMT_60958_CS_VALID_R(x) (((x) & 1) << 18) 8261099013bSjsg # define AFMT_60958_CS_CHANNEL_NUMBER_R(x) (((x) & 0xf) << 20) 8271099013bSjsg #define AFMT_AUDIO_CRC_CONTROL 0x74dc 8281099013bSjsg # define AFMT_AUDIO_CRC_EN (1 << 0) 8291099013bSjsg #define AFMT_RAMP_CONTROL0 0x74e0 8301099013bSjsg # define AFMT_RAMP_MAX_COUNT(x) (((x) & 0xffffff) << 0) 8311099013bSjsg # define AFMT_RAMP_DATA_SIGN (1 << 31) 8321099013bSjsg #define AFMT_RAMP_CONTROL1 0x74e4 8331099013bSjsg # define AFMT_RAMP_MIN_COUNT(x) (((x) & 0xffffff) << 0) 8341099013bSjsg # define AFMT_AUDIO_TEST_CH_DISABLE(x) (((x) & 0xff) << 24) 8351099013bSjsg #define AFMT_RAMP_CONTROL2 0x74e8 8361099013bSjsg # define AFMT_RAMP_INC_COUNT(x) (((x) & 0xffffff) << 0) 8371099013bSjsg #define AFMT_RAMP_CONTROL3 0x74ec 8381099013bSjsg # define AFMT_RAMP_DEC_COUNT(x) (((x) & 0xffffff) << 0) 8391099013bSjsg #define AFMT_60958_2 0x74f0 8401099013bSjsg # define AFMT_60958_CS_CHANNEL_NUMBER_2(x) (((x) & 0xf) << 0) 8411099013bSjsg # define AFMT_60958_CS_CHANNEL_NUMBER_3(x) (((x) & 0xf) << 4) 8421099013bSjsg # define AFMT_60958_CS_CHANNEL_NUMBER_4(x) (((x) & 0xf) << 8) 8431099013bSjsg # define AFMT_60958_CS_CHANNEL_NUMBER_5(x) (((x) & 0xf) << 12) 8441099013bSjsg # define AFMT_60958_CS_CHANNEL_NUMBER_6(x) (((x) & 0xf) << 16) 8451099013bSjsg # define AFMT_60958_CS_CHANNEL_NUMBER_7(x) (((x) & 0xf) << 20) 8461099013bSjsg #define AFMT_STATUS 0x7600 8471099013bSjsg # define AFMT_AUDIO_ENABLE (1 << 4) 8481099013bSjsg # define AFMT_AZ_FORMAT_WTRIG (1 << 28) 8491099013bSjsg # define AFMT_AZ_FORMAT_WTRIG_INT (1 << 29) 8501099013bSjsg # define AFMT_AZ_AUDIO_ENABLE_CHG (1 << 30) 8511099013bSjsg #define AFMT_AUDIO_PACKET_CONTROL 0x7604 8521099013bSjsg # define AFMT_AUDIO_SAMPLE_SEND (1 << 0) 8531099013bSjsg # define AFMT_AUDIO_TEST_EN (1 << 12) 8541099013bSjsg # define AFMT_AUDIO_CHANNEL_SWAP (1 << 24) 8551099013bSjsg # define AFMT_60958_CS_UPDATE (1 << 26) 8561099013bSjsg # define AFMT_AZ_AUDIO_ENABLE_CHG_MASK (1 << 27) 8571099013bSjsg # define AFMT_AZ_FORMAT_WTRIG_MASK (1 << 28) 8581099013bSjsg # define AFMT_AZ_FORMAT_WTRIG_ACK (1 << 29) 8591099013bSjsg # define AFMT_AZ_AUDIO_ENABLE_CHG_ACK (1 << 30) 8601099013bSjsg #define AFMT_VBI_PACKET_CONTROL 0x7608 8611099013bSjsg # define AFMT_GENERIC0_UPDATE (1 << 2) 8621099013bSjsg #define AFMT_INFOFRAME_CONTROL0 0x760c 8637ccd5a2cSjsg # define AFMT_AUDIO_INFO_SOURCE (1 << 6) /* 0 - sound block; 1 - hdmi regs */ 8641099013bSjsg # define AFMT_AUDIO_INFO_UPDATE (1 << 7) 8651099013bSjsg # define AFMT_MPEG_INFO_UPDATE (1 << 10) 8661099013bSjsg #define AFMT_GENERIC0_7 0x7610 8671099013bSjsg /* second instance starts at 0x7800 */ 8681099013bSjsg #define HDMI_OFFSET0 (0x7400 - 0x7400) 8691099013bSjsg #define HDMI_OFFSET1 (0x7800 - 0x7400) 8701099013bSjsg 8711099013bSjsg /* DCE3.2 ELD audio interface */ 8721099013bSjsg #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR0 0x71c8 /* LPCM */ 8731099013bSjsg #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR1 0x71cc /* AC3 */ 8741099013bSjsg #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR2 0x71d0 /* MPEG1 */ 8751099013bSjsg #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR3 0x71d4 /* MP3 */ 8761099013bSjsg #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR4 0x71d8 /* MPEG2 */ 8771099013bSjsg #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR5 0x71dc /* AAC */ 8781099013bSjsg #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR6 0x71e0 /* DTS */ 8791099013bSjsg #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR7 0x71e4 /* ATRAC */ 8801099013bSjsg #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR8 0x71e8 /* one bit audio - leave at 0 (default) */ 8811099013bSjsg #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR9 0x71ec /* Dolby Digital */ 8821099013bSjsg #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR10 0x71f0 /* DTS-HD */ 8831099013bSjsg #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR11 0x71f4 /* MAT-MLP */ 8841099013bSjsg #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR12 0x71f8 /* DTS */ 8851099013bSjsg #define AZ_F0_CODEC_PIN0_CONTROL_AUDIO_DESCRIPTOR13 0x71fc /* WMA Pro */ 8861099013bSjsg # define MAX_CHANNELS(x) (((x) & 0x7) << 0) 8871099013bSjsg /* max channels minus one. 7 = 8 channels */ 8881099013bSjsg # define SUPPORTED_FREQUENCIES(x) (((x) & 0xff) << 8) 8891099013bSjsg # define DESCRIPTOR_BYTE_2(x) (((x) & 0xff) << 16) 8901099013bSjsg # define SUPPORTED_FREQUENCIES_STEREO(x) (((x) & 0xff) << 24) /* LPCM only */ 8911099013bSjsg /* SUPPORTED_FREQUENCIES, SUPPORTED_FREQUENCIES_STEREO 8921099013bSjsg * bit0 = 32 kHz 8931099013bSjsg * bit1 = 44.1 kHz 8941099013bSjsg * bit2 = 48 kHz 8951099013bSjsg * bit3 = 88.2 kHz 8961099013bSjsg * bit4 = 96 kHz 8971099013bSjsg * bit5 = 176.4 kHz 8981099013bSjsg * bit6 = 192 kHz 8991099013bSjsg */ 9001099013bSjsg 9011099013bSjsg #define AZ_HOT_PLUG_CONTROL 0x7300 9021099013bSjsg # define AZ_FORCE_CODEC_WAKE (1 << 0) 9031099013bSjsg # define PIN0_JACK_DETECTION_ENABLE (1 << 4) 9041099013bSjsg # define PIN1_JACK_DETECTION_ENABLE (1 << 5) 9051099013bSjsg # define PIN2_JACK_DETECTION_ENABLE (1 << 6) 9061099013bSjsg # define PIN3_JACK_DETECTION_ENABLE (1 << 7) 9071099013bSjsg # define PIN0_UNSOLICITED_RESPONSE_ENABLE (1 << 8) 9081099013bSjsg # define PIN1_UNSOLICITED_RESPONSE_ENABLE (1 << 9) 9091099013bSjsg # define PIN2_UNSOLICITED_RESPONSE_ENABLE (1 << 10) 9101099013bSjsg # define PIN3_UNSOLICITED_RESPONSE_ENABLE (1 << 11) 9111099013bSjsg # define CODEC_HOT_PLUG_ENABLE (1 << 12) 9121099013bSjsg # define PIN0_AUDIO_ENABLED (1 << 24) 9131099013bSjsg # define PIN1_AUDIO_ENABLED (1 << 25) 9141099013bSjsg # define PIN2_AUDIO_ENABLED (1 << 26) 9151099013bSjsg # define PIN3_AUDIO_ENABLED (1 << 27) 9161099013bSjsg # define AUDIO_ENABLED (1 << 31) 9171099013bSjsg 9181099013bSjsg 9191099013bSjsg #define D1GRPH_PRIMARY_SURFACE_ADDRESS 0x6110 9201099013bSjsg #define D1GRPH_PRIMARY_SURFACE_ADDRESS_HIGH 0x6914 9211099013bSjsg #define D2GRPH_PRIMARY_SURFACE_ADDRESS_HIGH 0x6114 9221099013bSjsg #define D1GRPH_SECONDARY_SURFACE_ADDRESS 0x6118 9231099013bSjsg #define D1GRPH_SECONDARY_SURFACE_ADDRESS_HIGH 0x691c 9241099013bSjsg #define D2GRPH_SECONDARY_SURFACE_ADDRESS_HIGH 0x611c 9251099013bSjsg 9267ccd5a2cSjsg /* PCIE indirect regs */ 9277ccd5a2cSjsg #define PCIE_P_CNTL 0x40 9287ccd5a2cSjsg # define P_PLL_PWRDN_IN_L1L23 (1 << 3) 9297ccd5a2cSjsg # define P_PLL_BUF_PDNB (1 << 4) 9307ccd5a2cSjsg # define P_PLL_PDNB (1 << 9) 9317ccd5a2cSjsg # define P_ALLOW_PRX_FRONTEND_SHUTOFF (1 << 12) 9327ccd5a2cSjsg /* PCIE PORT regs */ 9337ccd5a2cSjsg #define PCIE_LC_CNTL 0xa0 9347ccd5a2cSjsg # define LC_L0S_INACTIVITY(x) ((x) << 8) 9357ccd5a2cSjsg # define LC_L0S_INACTIVITY_MASK (0xf << 8) 9367ccd5a2cSjsg # define LC_L0S_INACTIVITY_SHIFT 8 9377ccd5a2cSjsg # define LC_L1_INACTIVITY(x) ((x) << 12) 9387ccd5a2cSjsg # define LC_L1_INACTIVITY_MASK (0xf << 12) 9397ccd5a2cSjsg # define LC_L1_INACTIVITY_SHIFT 12 9407ccd5a2cSjsg # define LC_PMI_TO_L1_DIS (1 << 16) 9417ccd5a2cSjsg # define LC_ASPM_TO_L1_DIS (1 << 24) 9421099013bSjsg #define PCIE_LC_TRAINING_CNTL 0xa1 /* PCIE_P */ 9431099013bSjsg #define PCIE_LC_LINK_WIDTH_CNTL 0xa2 /* PCIE_P */ 9441099013bSjsg # define LC_LINK_WIDTH_SHIFT 0 9451099013bSjsg # define LC_LINK_WIDTH_MASK 0x7 9461099013bSjsg # define LC_LINK_WIDTH_X0 0 9471099013bSjsg # define LC_LINK_WIDTH_X1 1 9481099013bSjsg # define LC_LINK_WIDTH_X2 2 9491099013bSjsg # define LC_LINK_WIDTH_X4 3 9501099013bSjsg # define LC_LINK_WIDTH_X8 4 9511099013bSjsg # define LC_LINK_WIDTH_X16 6 9521099013bSjsg # define LC_LINK_WIDTH_RD_SHIFT 4 9531099013bSjsg # define LC_LINK_WIDTH_RD_MASK 0x70 9541099013bSjsg # define LC_RECONFIG_ARC_MISSING_ESCAPE (1 << 7) 9551099013bSjsg # define LC_RECONFIG_NOW (1 << 8) 9561099013bSjsg # define LC_RENEGOTIATION_SUPPORT (1 << 9) 9571099013bSjsg # define LC_RENEGOTIATE_EN (1 << 10) 9581099013bSjsg # define LC_SHORT_RECONFIG_EN (1 << 11) 9591099013bSjsg # define LC_UPCONFIGURE_SUPPORT (1 << 12) 9601099013bSjsg # define LC_UPCONFIGURE_DIS (1 << 13) 9611099013bSjsg #define PCIE_LC_SPEED_CNTL 0xa4 /* PCIE_P */ 9621099013bSjsg # define LC_GEN2_EN_STRAP (1 << 0) 9631099013bSjsg # define LC_TARGET_LINK_SPEED_OVERRIDE_EN (1 << 1) 9641099013bSjsg # define LC_FORCE_EN_HW_SPEED_CHANGE (1 << 5) 9651099013bSjsg # define LC_FORCE_DIS_HW_SPEED_CHANGE (1 << 6) 9661099013bSjsg # define LC_SPEED_CHANGE_ATTEMPTS_ALLOWED_MASK (0x3 << 8) 9671099013bSjsg # define LC_SPEED_CHANGE_ATTEMPTS_ALLOWED_SHIFT 3 9681099013bSjsg # define LC_CURRENT_DATA_RATE (1 << 11) 9697ccd5a2cSjsg # define LC_HW_VOLTAGE_IF_CONTROL(x) ((x) << 12) 9707ccd5a2cSjsg # define LC_HW_VOLTAGE_IF_CONTROL_MASK (3 << 12) 9717ccd5a2cSjsg # define LC_HW_VOLTAGE_IF_CONTROL_SHIFT 12 9721099013bSjsg # define LC_VOLTAGE_TIMER_SEL_MASK (0xf << 14) 9731099013bSjsg # define LC_CLR_FAILED_SPD_CHANGE_CNT (1 << 21) 9741099013bSjsg # define LC_OTHER_SIDE_EVER_SENT_GEN2 (1 << 23) 9751099013bSjsg # define LC_OTHER_SIDE_SUPPORTS_GEN2 (1 << 24) 9761099013bSjsg #define MM_CFGREGS_CNTL 0x544c 9771099013bSjsg # define MM_WR_TO_CFG_EN (1 << 3) 9781099013bSjsg #define LINK_CNTL2 0x88 /* F0 */ 9791099013bSjsg # define TARGET_LINK_SPEED_MASK (0xf << 0) 9801099013bSjsg # define SELECTABLE_DEEMPHASIS (1 << 6) 9811099013bSjsg 9827ccd5a2cSjsg /* 9837ccd5a2cSjsg * PM4 9847ccd5a2cSjsg */ 9857ccd5a2cSjsg #define PACKET0(reg, n) ((RADEON_PACKET_TYPE0 << 30) | \ 9867ccd5a2cSjsg (((reg) >> 2) & 0xFFFF) | \ 9877ccd5a2cSjsg ((n) & 0x3FFF) << 16) 9887ccd5a2cSjsg #define PACKET3(op, n) ((RADEON_PACKET_TYPE3 << 30) | \ 9897ccd5a2cSjsg (((op) & 0xFF) << 8) | \ 9907ccd5a2cSjsg ((n) & 0x3FFF) << 16) 9917ccd5a2cSjsg 9927ccd5a2cSjsg /* UVD */ 9937ccd5a2cSjsg #define UVD_SEMA_ADDR_LOW 0xef00 9947ccd5a2cSjsg #define UVD_SEMA_ADDR_HIGH 0xef04 9957ccd5a2cSjsg #define UVD_SEMA_CMD 0xef08 9967ccd5a2cSjsg #define UVD_GPCOM_VCPU_CMD 0xef0c 9977ccd5a2cSjsg #define UVD_GPCOM_VCPU_DATA0 0xef10 9987ccd5a2cSjsg #define UVD_GPCOM_VCPU_DATA1 0xef14 9997ccd5a2cSjsg 10007ccd5a2cSjsg #define UVD_LMI_EXT40_ADDR 0xf498 10017ccd5a2cSjsg #define UVD_VCPU_CHIP_ID 0xf4d4 10027ccd5a2cSjsg #define UVD_VCPU_CACHE_OFFSET0 0xf4d8 10037ccd5a2cSjsg #define UVD_VCPU_CACHE_SIZE0 0xf4dc 10047ccd5a2cSjsg #define UVD_VCPU_CACHE_OFFSET1 0xf4e0 10057ccd5a2cSjsg #define UVD_VCPU_CACHE_SIZE1 0xf4e4 10067ccd5a2cSjsg #define UVD_VCPU_CACHE_OFFSET2 0xf4e8 10077ccd5a2cSjsg #define UVD_VCPU_CACHE_SIZE2 0xf4ec 10087ccd5a2cSjsg #define UVD_LMI_ADDR_EXT 0xf594 10097ccd5a2cSjsg 10107ccd5a2cSjsg #define UVD_RBC_RB_RPTR 0xf690 10117ccd5a2cSjsg #define UVD_RBC_RB_WPTR 0xf694 10127ccd5a2cSjsg 10137ccd5a2cSjsg #define UVD_CONTEXT_ID 0xf6f4 10147ccd5a2cSjsg 10151099013bSjsg #endif 1016