18c2ecf20Sopenharmony_ci/*
28c2ecf20Sopenharmony_ci * Copyright 2010 Advanced Micro Devices, Inc.
38c2ecf20Sopenharmony_ci *
48c2ecf20Sopenharmony_ci * Permission is hereby granted, free of charge, to any person obtaining a
58c2ecf20Sopenharmony_ci * copy of this software and associated documentation files (the "Software"),
68c2ecf20Sopenharmony_ci * to deal in the Software without restriction, including without limitation
78c2ecf20Sopenharmony_ci * the rights to use, copy, modify, merge, publish, distribute, sublicense,
88c2ecf20Sopenharmony_ci * and/or sell copies of the Software, and to permit persons to whom the
98c2ecf20Sopenharmony_ci * Software is furnished to do so, subject to the following conditions:
108c2ecf20Sopenharmony_ci *
118c2ecf20Sopenharmony_ci * The above copyright notice and this permission notice shall be included in
128c2ecf20Sopenharmony_ci * all copies or substantial portions of the Software.
138c2ecf20Sopenharmony_ci *
148c2ecf20Sopenharmony_ci * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
158c2ecf20Sopenharmony_ci * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
168c2ecf20Sopenharmony_ci * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
178c2ecf20Sopenharmony_ci * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
188c2ecf20Sopenharmony_ci * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
198c2ecf20Sopenharmony_ci * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
208c2ecf20Sopenharmony_ci * OTHER DEALINGS IN THE SOFTWARE.
218c2ecf20Sopenharmony_ci *
228c2ecf20Sopenharmony_ci * Authors: Alex Deucher
238c2ecf20Sopenharmony_ci */
248c2ecf20Sopenharmony_ci#ifndef __EVERGREEN_REG_H__
258c2ecf20Sopenharmony_ci#define __EVERGREEN_REG_H__
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci/* trinity */
288c2ecf20Sopenharmony_ci#define TN_SMC_IND_INDEX_0                              0x200
298c2ecf20Sopenharmony_ci#define TN_SMC_IND_DATA_0                               0x204
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci/* evergreen */
328c2ecf20Sopenharmony_ci#define EVERGREEN_PIF_PHY0_INDEX                        0x8
338c2ecf20Sopenharmony_ci#define EVERGREEN_PIF_PHY0_DATA                         0xc
348c2ecf20Sopenharmony_ci#define EVERGREEN_PIF_PHY1_INDEX                        0x10
358c2ecf20Sopenharmony_ci#define EVERGREEN_PIF_PHY1_DATA                         0x14
368c2ecf20Sopenharmony_ci#define EVERGREEN_MM_INDEX_HI                           0x18
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci#define EVERGREEN_VGA_MEMORY_BASE_ADDRESS               0x310
398c2ecf20Sopenharmony_ci#define EVERGREEN_VGA_MEMORY_BASE_ADDRESS_HIGH          0x324
408c2ecf20Sopenharmony_ci#define EVERGREEN_D3VGA_CONTROL                         0x3e0
418c2ecf20Sopenharmony_ci#define EVERGREEN_D4VGA_CONTROL                         0x3e4
428c2ecf20Sopenharmony_ci#define EVERGREEN_D5VGA_CONTROL                         0x3e8
438c2ecf20Sopenharmony_ci#define EVERGREEN_D6VGA_CONTROL                         0x3ec
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci#define EVERGREEN_P1PLL_SS_CNTL                         0x414
468c2ecf20Sopenharmony_ci#define EVERGREEN_P2PLL_SS_CNTL                         0x454
478c2ecf20Sopenharmony_ci#       define EVERGREEN_PxPLL_SS_EN                    (1 << 12)
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci#define EVERGREEN_AUDIO_PLL1_MUL			0x5b0
508c2ecf20Sopenharmony_ci#define EVERGREEN_AUDIO_PLL1_DIV			0x5b4
518c2ecf20Sopenharmony_ci#define EVERGREEN_AUDIO_PLL1_UNK			0x5bc
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci#define EVERGREEN_CG_IND_ADDR                           0x8f8
548c2ecf20Sopenharmony_ci#define EVERGREEN_CG_IND_DATA                           0x8fc
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci#define EVERGREEN_AUDIO_ENABLE				0x5e78
578c2ecf20Sopenharmony_ci#define EVERGREEN_AUDIO_VENDOR_ID			0x5ec0
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci/* GRPH blocks at 0x6800, 0x7400, 0x10000, 0x10c00, 0x11800, 0x12400 */
608c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_ENABLE                           0x6800
618c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_CONTROL                          0x6804
628c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_DEPTH(x)                  (((x) & 0x3) << 0)
638c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_DEPTH_8BPP                0
648c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_DEPTH_16BPP               1
658c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_DEPTH_32BPP               2
668c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_NUM_BANKS(x)              (((x) & 0x3) << 2)
678c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_2_BANK               0
688c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_4_BANK               1
698c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_8_BANK               2
708c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_16_BANK              3
718c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_Z(x)                      (((x) & 0x3) << 4)
728c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_BANK_WIDTH(x)             (((x) & 0x3) << 6)
738c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_BANK_WIDTH_1         0
748c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_BANK_WIDTH_2         1
758c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_BANK_WIDTH_4         2
768c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_BANK_WIDTH_8         3
778c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT(x)                 (((x) & 0x7) << 8)
788c2ecf20Sopenharmony_ci/* 8 BPP */
798c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT_INDEXED            0
808c2ecf20Sopenharmony_ci/* 16 BPP */
818c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT_ARGB1555           0
828c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT_ARGB565            1
838c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT_ARGB4444           2
848c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT_AI88               3
858c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT_MONO16             4
868c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT_BGRA5551           5
878c2ecf20Sopenharmony_ci/* 32 BPP */
888c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT_ARGB8888           0
898c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT_ARGB2101010        1
908c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT_32BPP_DIG          2
918c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT_8B_ARGB2101010     3
928c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT_BGRA1010102        4
938c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT_8B_BGRA1010102     5
948c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT_RGB111110          6
958c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_FORMAT_BGR101111          7
968c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_BANK_HEIGHT(x)            (((x) & 0x3) << 11)
978c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_BANK_HEIGHT_1        0
988c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_BANK_HEIGHT_2        1
998c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_BANK_HEIGHT_4        2
1008c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_BANK_HEIGHT_8        3
1018c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_TILE_SPLIT(x)             (((x) & 0x7) << 13)
1028c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_TILE_SPLIT_64B       0
1038c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_TILE_SPLIT_128B      1
1048c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_TILE_SPLIT_256B      2
1058c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_TILE_SPLIT_512B      3
1068c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_TILE_SPLIT_1KB       4
1078c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_TILE_SPLIT_2KB       5
1088c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_TILE_SPLIT_4KB       6
1098c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_MACRO_TILE_ASPECT(x)      (((x) & 0x3) << 18)
1108c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_MACRO_TILE_ASPECT_1  0
1118c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_MACRO_TILE_ASPECT_2  1
1128c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_MACRO_TILE_ASPECT_4  2
1138c2ecf20Sopenharmony_ci#       define EVERGREEN_ADDR_SURF_MACRO_TILE_ASPECT_8  3
1148c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_ARRAY_MODE(x)             (((x) & 0x7) << 20)
1158c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_ARRAY_LINEAR_GENERAL      0
1168c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_ARRAY_LINEAR_ALIGNED      1
1178c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_ARRAY_1D_TILED_THIN1      2
1188c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_ARRAY_2D_TILED_THIN1      4
1198c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_LUT_10BIT_BYPASS_CONTROL         0x6808
1208c2ecf20Sopenharmony_ci#       define EVERGREEN_LUT_10BIT_BYPASS_EN            (1 << 8)
1218c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_SWAP_CONTROL                     0x680c
1228c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_ENDIAN_SWAP(x)            (((x) & 0x3) << 0)
1238c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_ENDIAN_NONE               0
1248c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_ENDIAN_8IN16              1
1258c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_ENDIAN_8IN32              2
1268c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_ENDIAN_8IN64              3
1278c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_RED_CROSSBAR(x)           (((x) & 0x3) << 4)
1288c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_RED_SEL_R                 0
1298c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_RED_SEL_G                 1
1308c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_RED_SEL_B                 2
1318c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_RED_SEL_A                 3
1328c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_GREEN_CROSSBAR(x)         (((x) & 0x3) << 6)
1338c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_GREEN_SEL_G               0
1348c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_GREEN_SEL_B               1
1358c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_GREEN_SEL_A               2
1368c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_GREEN_SEL_R               3
1378c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_BLUE_CROSSBAR(x)          (((x) & 0x3) << 8)
1388c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_BLUE_SEL_B                0
1398c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_BLUE_SEL_A                1
1408c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_BLUE_SEL_R                2
1418c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_BLUE_SEL_G                3
1428c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_ALPHA_CROSSBAR(x)         (((x) & 0x3) << 10)
1438c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_ALPHA_SEL_A               0
1448c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_ALPHA_SEL_R               1
1458c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_ALPHA_SEL_G               2
1468c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_ALPHA_SEL_B               3
1478c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS          0x6810
1488c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS        0x6814
1498c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_DFQ_ENABLE                (1 << 0)
1508c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_SURFACE_ADDRESS_MASK      0xffffff00
1518c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_PITCH                            0x6818
1528c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS_HIGH     0x681c
1538c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS_HIGH   0x6820
1548c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_SURFACE_OFFSET_X                 0x6824
1558c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_SURFACE_OFFSET_Y                 0x6828
1568c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_X_START                          0x682c
1578c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_Y_START                          0x6830
1588c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_X_END                            0x6834
1598c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_Y_END                            0x6838
1608c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_UPDATE                           0x6844
1618c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_SURFACE_UPDATE_PENDING    (1 << 2)
1628c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_UPDATE_LOCK               (1 << 16)
1638c2ecf20Sopenharmony_ci#define EVERGREEN_GRPH_FLIP_CONTROL                     0x6848
1648c2ecf20Sopenharmony_ci#       define EVERGREEN_GRPH_SURFACE_UPDATE_H_RETRACE_EN (1 << 0)
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_ci/* CUR blocks at 0x6998, 0x7598, 0x10198, 0x10d98, 0x11998, 0x12598 */
1678c2ecf20Sopenharmony_ci#define EVERGREEN_CUR_CONTROL                           0x6998
1688c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_EN                      (1 << 0)
1698c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_MODE(x)                 (((x) & 0x3) << 8)
1708c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_MONO                    0
1718c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_24_1                    1
1728c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_24_8_PRE_MULT           2
1738c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_24_8_UNPRE_MULT         3
1748c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_2X_MAGNIFY              (1 << 16)
1758c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_FORCE_MC_ON             (1 << 20)
1768c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_URGENT_CONTROL(x)       (((x) & 0x7) << 24)
1778c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_URGENT_ALWAYS           0
1788c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_URGENT_1_8              1
1798c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_URGENT_1_4              2
1808c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_URGENT_3_8              3
1818c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_URGENT_1_2              4
1828c2ecf20Sopenharmony_ci#define EVERGREEN_CUR_SURFACE_ADDRESS                   0x699c
1838c2ecf20Sopenharmony_ci#       define EVERGREEN_CUR_SURFACE_ADDRESS_MASK       0xfffff000
1848c2ecf20Sopenharmony_ci#define EVERGREEN_CUR_SIZE                              0x69a0
1858c2ecf20Sopenharmony_ci#define EVERGREEN_CUR_SURFACE_ADDRESS_HIGH              0x69a4
1868c2ecf20Sopenharmony_ci#define EVERGREEN_CUR_POSITION                          0x69a8
1878c2ecf20Sopenharmony_ci#define EVERGREEN_CUR_HOT_SPOT                          0x69ac
1888c2ecf20Sopenharmony_ci#define EVERGREEN_CUR_COLOR1                            0x69b0
1898c2ecf20Sopenharmony_ci#define EVERGREEN_CUR_COLOR2                            0x69b4
1908c2ecf20Sopenharmony_ci#define EVERGREEN_CUR_UPDATE                            0x69b8
1918c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_UPDATE_PENDING          (1 << 0)
1928c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_UPDATE_TAKEN            (1 << 1)
1938c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_UPDATE_LOCK             (1 << 16)
1948c2ecf20Sopenharmony_ci#       define EVERGREEN_CURSOR_DISABLE_MULTIPLE_UPDATE (1 << 24)
1958c2ecf20Sopenharmony_ci
1968c2ecf20Sopenharmony_ci/* LUT blocks at 0x69e0, 0x75e0, 0x101e0, 0x10de0, 0x119e0, 0x125e0 */
1978c2ecf20Sopenharmony_ci#define EVERGREEN_DC_LUT_RW_MODE                        0x69e0
1988c2ecf20Sopenharmony_ci#define EVERGREEN_DC_LUT_RW_INDEX                       0x69e4
1998c2ecf20Sopenharmony_ci#define EVERGREEN_DC_LUT_SEQ_COLOR                      0x69e8
2008c2ecf20Sopenharmony_ci#define EVERGREEN_DC_LUT_PWL_DATA                       0x69ec
2018c2ecf20Sopenharmony_ci#define EVERGREEN_DC_LUT_30_COLOR                       0x69f0
2028c2ecf20Sopenharmony_ci#define EVERGREEN_DC_LUT_VGA_ACCESS_ENABLE              0x69f4
2038c2ecf20Sopenharmony_ci#define EVERGREEN_DC_LUT_WRITE_EN_MASK                  0x69f8
2048c2ecf20Sopenharmony_ci#define EVERGREEN_DC_LUT_AUTOFILL                       0x69fc
2058c2ecf20Sopenharmony_ci#define EVERGREEN_DC_LUT_CONTROL                        0x6a00
2068c2ecf20Sopenharmony_ci#define EVERGREEN_DC_LUT_BLACK_OFFSET_BLUE              0x6a04
2078c2ecf20Sopenharmony_ci#define EVERGREEN_DC_LUT_BLACK_OFFSET_GREEN             0x6a08
2088c2ecf20Sopenharmony_ci#define EVERGREEN_DC_LUT_BLACK_OFFSET_RED               0x6a0c
2098c2ecf20Sopenharmony_ci#define EVERGREEN_DC_LUT_WHITE_OFFSET_BLUE              0x6a10
2108c2ecf20Sopenharmony_ci#define EVERGREEN_DC_LUT_WHITE_OFFSET_GREEN             0x6a14
2118c2ecf20Sopenharmony_ci#define EVERGREEN_DC_LUT_WHITE_OFFSET_RED               0x6a18
2128c2ecf20Sopenharmony_ci
2138c2ecf20Sopenharmony_ci#define EVERGREEN_DATA_FORMAT                           0x6b00
2148c2ecf20Sopenharmony_ci#       define EVERGREEN_INTERLEAVE_EN                  (1 << 0)
2158c2ecf20Sopenharmony_ci#define EVERGREEN_DESKTOP_HEIGHT                        0x6b04
2168c2ecf20Sopenharmony_ci#define EVERGREEN_VLINE_START_END                       0x6b08
2178c2ecf20Sopenharmony_ci#define EVERGREEN_VLINE_STATUS                          0x6bb8
2188c2ecf20Sopenharmony_ci#       define EVERGREEN_VLINE_STAT                     (1 << 12)
2198c2ecf20Sopenharmony_ci
2208c2ecf20Sopenharmony_ci#define EVERGREEN_VIEWPORT_START                        0x6d70
2218c2ecf20Sopenharmony_ci#define EVERGREEN_VIEWPORT_SIZE                         0x6d74
2228c2ecf20Sopenharmony_ci
2238c2ecf20Sopenharmony_ci/* display controller offsets used for crtc/cur/lut/grph/viewport/etc. */
2248c2ecf20Sopenharmony_ci#define EVERGREEN_CRTC0_REGISTER_OFFSET                 (0x6df0 - 0x6df0)
2258c2ecf20Sopenharmony_ci#define EVERGREEN_CRTC1_REGISTER_OFFSET                 (0x79f0 - 0x6df0)
2268c2ecf20Sopenharmony_ci#define EVERGREEN_CRTC2_REGISTER_OFFSET                 (0x105f0 - 0x6df0)
2278c2ecf20Sopenharmony_ci#define EVERGREEN_CRTC3_REGISTER_OFFSET                 (0x111f0 - 0x6df0)
2288c2ecf20Sopenharmony_ci#define EVERGREEN_CRTC4_REGISTER_OFFSET                 (0x11df0 - 0x6df0)
2298c2ecf20Sopenharmony_ci#define EVERGREEN_CRTC5_REGISTER_OFFSET                 (0x129f0 - 0x6df0)
2308c2ecf20Sopenharmony_ci
2318c2ecf20Sopenharmony_ci/* CRTC blocks at 0x6df0, 0x79f0, 0x105f0, 0x111f0, 0x11df0, 0x129f0 */
2328c2ecf20Sopenharmony_ci#define EVERGREEN_CRTC_V_BLANK_START_END                0x6e34
2338c2ecf20Sopenharmony_ci#define EVERGREEN_CRTC_CONTROL                          0x6e70
2348c2ecf20Sopenharmony_ci#       define EVERGREEN_CRTC_MASTER_EN                 (1 << 0)
2358c2ecf20Sopenharmony_ci#       define EVERGREEN_CRTC_DISP_READ_REQUEST_DISABLE (1 << 24)
2368c2ecf20Sopenharmony_ci#define EVERGREEN_CRTC_BLANK_CONTROL                    0x6e74
2378c2ecf20Sopenharmony_ci#       define EVERGREEN_CRTC_BLANK_DATA_EN             (1 << 8)
2388c2ecf20Sopenharmony_ci#define EVERGREEN_CRTC_STATUS                           0x6e8c
2398c2ecf20Sopenharmony_ci#       define EVERGREEN_CRTC_V_BLANK                   (1 << 0)
2408c2ecf20Sopenharmony_ci#define EVERGREEN_CRTC_STATUS_POSITION                  0x6e90
2418c2ecf20Sopenharmony_ci#define EVERGREEN_CRTC_STATUS_HV_COUNT                  0x6ea0
2428c2ecf20Sopenharmony_ci#define EVERGREEN_CRTC_UPDATE_LOCK                      0x6ed4
2438c2ecf20Sopenharmony_ci#define EVERGREEN_MASTER_UPDATE_LOCK                    0x6ef4
2448c2ecf20Sopenharmony_ci#define EVERGREEN_MASTER_UPDATE_MODE                    0x6ef8
2458c2ecf20Sopenharmony_ci
2468c2ecf20Sopenharmony_ci#define EVERGREEN_DC_GPIO_HPD_MASK                      0x64b0
2478c2ecf20Sopenharmony_ci#define EVERGREEN_DC_GPIO_HPD_A                         0x64b4
2488c2ecf20Sopenharmony_ci#define EVERGREEN_DC_GPIO_HPD_EN                        0x64b8
2498c2ecf20Sopenharmony_ci#define EVERGREEN_DC_GPIO_HPD_Y                         0x64bc
2508c2ecf20Sopenharmony_ci
2518c2ecf20Sopenharmony_ci/* HDMI blocks at 0x7030, 0x7c30, 0x10830, 0x11430, 0x12030, 0x12c30 */
2528c2ecf20Sopenharmony_ci#define EVERGREEN_HDMI_BASE				0x7030
2538c2ecf20Sopenharmony_ci/*DIG block*/
2548c2ecf20Sopenharmony_ci#define NI_DIG0_REGISTER_OFFSET                 (0x7000  - 0x7000)
2558c2ecf20Sopenharmony_ci#define NI_DIG1_REGISTER_OFFSET                 (0x7C00  - 0x7000)
2568c2ecf20Sopenharmony_ci#define NI_DIG2_REGISTER_OFFSET                 (0x10800 - 0x7000)
2578c2ecf20Sopenharmony_ci#define NI_DIG3_REGISTER_OFFSET                 (0x11400 - 0x7000)
2588c2ecf20Sopenharmony_ci#define NI_DIG4_REGISTER_OFFSET                 (0x12000 - 0x7000)
2598c2ecf20Sopenharmony_ci#define NI_DIG5_REGISTER_OFFSET                 (0x12C00 - 0x7000)
2608c2ecf20Sopenharmony_ci
2618c2ecf20Sopenharmony_ci
2628c2ecf20Sopenharmony_ci#define NI_DIG_FE_CNTL                               0x7000
2638c2ecf20Sopenharmony_ci#       define NI_DIG_FE_CNTL_SOURCE_SELECT(x)        ((x) & 0x3)
2648c2ecf20Sopenharmony_ci#       define NI_DIG_FE_CNTL_SYMCLK_FE_ON            (1<<24)
2658c2ecf20Sopenharmony_ci
2668c2ecf20Sopenharmony_ci
2678c2ecf20Sopenharmony_ci#define NI_DIG_BE_CNTL                    0x7140
2688c2ecf20Sopenharmony_ci#       define NI_DIG_BE_CNTL_FE_SOURCE_SELECT(x)     (((x) >> 8 ) & 0x3F)
2698c2ecf20Sopenharmony_ci#       define NI_DIG_FE_CNTL_MODE(x)                 (((x) >> 16) & 0x7 )
2708c2ecf20Sopenharmony_ci
2718c2ecf20Sopenharmony_ci#define NI_DIG_BE_EN_CNTL                              0x7144
2728c2ecf20Sopenharmony_ci#       define NI_DIG_BE_EN_CNTL_ENABLE               (1 << 0)
2738c2ecf20Sopenharmony_ci#       define NI_DIG_BE_EN_CNTL_SYMBCLK_ON           (1 << 8)
2748c2ecf20Sopenharmony_ci#       define NI_DIG_BE_DPSST 0
2758c2ecf20Sopenharmony_ci
2768c2ecf20Sopenharmony_ci/* Display Port block */
2778c2ecf20Sopenharmony_ci#define EVERGREEN_DP0_REGISTER_OFFSET                 (0x730C  - 0x730C)
2788c2ecf20Sopenharmony_ci#define EVERGREEN_DP1_REGISTER_OFFSET                 (0x7F0C  - 0x730C)
2798c2ecf20Sopenharmony_ci#define EVERGREEN_DP2_REGISTER_OFFSET                 (0x10B0C - 0x730C)
2808c2ecf20Sopenharmony_ci#define EVERGREEN_DP3_REGISTER_OFFSET                 (0x1170C - 0x730C)
2818c2ecf20Sopenharmony_ci#define EVERGREEN_DP4_REGISTER_OFFSET                 (0x1230C - 0x730C)
2828c2ecf20Sopenharmony_ci#define EVERGREEN_DP5_REGISTER_OFFSET                 (0x12F0C - 0x730C)
2838c2ecf20Sopenharmony_ci
2848c2ecf20Sopenharmony_ci
2858c2ecf20Sopenharmony_ci#define EVERGREEN_DP_VID_STREAM_CNTL                    0x730C
2868c2ecf20Sopenharmony_ci#       define EVERGREEN_DP_VID_STREAM_CNTL_ENABLE     (1 << 0)
2878c2ecf20Sopenharmony_ci#       define EVERGREEN_DP_VID_STREAM_STATUS          (1 <<16)
2888c2ecf20Sopenharmony_ci#define EVERGREEN_DP_STEER_FIFO                         0x7310
2898c2ecf20Sopenharmony_ci#       define EVERGREEN_DP_STEER_FIFO_RESET           (1 << 0)
2908c2ecf20Sopenharmony_ci#define EVERGREEN_DP_SEC_CNTL                           0x7280
2918c2ecf20Sopenharmony_ci#       define EVERGREEN_DP_SEC_STREAM_ENABLE           (1 << 0)
2928c2ecf20Sopenharmony_ci#       define EVERGREEN_DP_SEC_ASP_ENABLE              (1 << 4)
2938c2ecf20Sopenharmony_ci#       define EVERGREEN_DP_SEC_ATP_ENABLE              (1 << 8)
2948c2ecf20Sopenharmony_ci#       define EVERGREEN_DP_SEC_AIP_ENABLE              (1 << 12)
2958c2ecf20Sopenharmony_ci#       define EVERGREEN_DP_SEC_GSP_ENABLE              (1 << 20)
2968c2ecf20Sopenharmony_ci#       define EVERGREEN_DP_SEC_AVI_ENABLE              (1 << 24)
2978c2ecf20Sopenharmony_ci#       define EVERGREEN_DP_SEC_MPG_ENABLE              (1 << 28)
2988c2ecf20Sopenharmony_ci#define EVERGREEN_DP_SEC_TIMESTAMP                      0x72a4
2998c2ecf20Sopenharmony_ci#       define EVERGREEN_DP_SEC_TIMESTAMP_MODE(x)       (((x) & 0x3) << 0)
3008c2ecf20Sopenharmony_ci#define EVERGREEN_DP_SEC_AUD_N                          0x7294
3018c2ecf20Sopenharmony_ci#       define EVERGREEN_DP_SEC_N_BASE_MULTIPLE(x)      (((x) & 0xf) << 24)
3028c2ecf20Sopenharmony_ci#       define EVERGREEN_DP_SEC_SS_EN                   (1 << 28)
3038c2ecf20Sopenharmony_ci
3048c2ecf20Sopenharmony_ci/*DCIO_UNIPHY block*/
3058c2ecf20Sopenharmony_ci#define NI_DCIO_UNIPHY0_UNIPHY_TX_CONTROL1            (0x6600  -0x6600)
3068c2ecf20Sopenharmony_ci#define NI_DCIO_UNIPHY1_UNIPHY_TX_CONTROL1            (0x6640  -0x6600)
3078c2ecf20Sopenharmony_ci#define NI_DCIO_UNIPHY2_UNIPHY_TX_CONTROL1            (0x6680 - 0x6600)
3088c2ecf20Sopenharmony_ci#define NI_DCIO_UNIPHY3_UNIPHY_TX_CONTROL1            (0x66C0 - 0x6600)
3098c2ecf20Sopenharmony_ci#define NI_DCIO_UNIPHY4_UNIPHY_TX_CONTROL1            (0x6700 - 0x6600)
3108c2ecf20Sopenharmony_ci#define NI_DCIO_UNIPHY5_UNIPHY_TX_CONTROL1            (0x6740 - 0x6600)
3118c2ecf20Sopenharmony_ci
3128c2ecf20Sopenharmony_ci#define NI_DCIO_UNIPHY0_PLL_CONTROL1                   0x6618
3138c2ecf20Sopenharmony_ci#       define NI_DCIO_UNIPHY0_PLL_CONTROL1_ENABLE     (1 << 0)
3148c2ecf20Sopenharmony_ci
3158c2ecf20Sopenharmony_ci#endif
316