Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.  * Copyright 2007, 2008  Luc Verhaegen <lverhaegen@novell.com>
  3.  * Copyright 2007, 2008  Matthias Hopf <mhopf@novell.com>
  4.  * Copyright 2007, 2008  Egbert Eich   <eich@novell.com>
  5.  * Copyright 2007, 2008  Advanced Micro Devices, Inc.
  6.  *
  7.  * Permission is hereby granted, free of charge, to any person obtaining a
  8.  * copy of this software and associated documentation files (the "Software"),
  9.  * to deal in the Software without restriction, including without limitation
  10.  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  11.  * and/or sell copies of the Software, and to permit persons to whom the
  12.  * Software is furnished to do so, subject to the following conditions:
  13.  *
  14.  * The above copyright notice and this permission notice shall be included in
  15.  * all copies or substantial portions of the Software.
  16.  *
  17.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  18.  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  19.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  20.  * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
  21.  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  22.  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  23.  * OTHER DEALINGS IN THE SOFTWARE.
  24.  */
  25. #ifndef _RHD_REGS_H
  26. # define _RHD_REGS_H
  27.  
  28. enum {
  29.     CLOCK_CNTL_INDEX      =       0x8,  /* (RW) */
  30.     CLOCK_CNTL_DATA       =       0xC,  /* (RW) */
  31.     BUS_CNTL              =       0x4C, /* (RW) */
  32.     MC_IND_INDEX          =       0x70, /* (RW) */
  33.     MC_IND_DATA           =       0x74, /* (RW) */
  34.     CONFIG_CNTL           =       0xE0,
  35.     /* RS690 ?? */
  36.     RS69_MC_INDEX                 =       0xE8,
  37.     RS69_MC_DATA                  =       0xEC,
  38.     R5XX_CONFIG_MEMSIZE            = 0x00F8,
  39.  
  40.     HDP_FB_LOCATION       =       0x0134,
  41.  
  42.     SEPROM_CNTL1          =       0x1C0,  /* (RW) */
  43.     GPIOPAD_MASK          =       0x198,  /* (RW) */
  44.     GPIOPAD_A             =       0x19C,  /* (RW) */
  45.     GPIOPAD_EN            =       0x1A0,  /* (RW) */
  46.     VIPH_CONTROL          =       0xC40,  /* (RW) */
  47.  
  48.     /* VGA registers */
  49.     VGA_RENDER_CONTROL             = 0x0300,
  50.     VGA_MODE_CONTROL             = 0x0308,
  51.     VGA_MEMORY_BASE_ADDRESS        = 0x0310,
  52.     VGA_HDP_CONTROL                = 0x0328,
  53.     D1VGA_CONTROL                  = 0x0330,
  54.     D2VGA_CONTROL                  = 0x0338,
  55.  
  56.     EXT1_PPLL_REF_DIV_SRC          = 0x0400,
  57.     EXT1_PPLL_REF_DIV              = 0x0404,
  58.     EXT1_PPLL_UPDATE_LOCK          = 0x0408,
  59.     EXT1_PPLL_UPDATE_CNTL          = 0x040C,
  60.     EXT2_PPLL_REF_DIV_SRC          = 0x0410,
  61.     EXT2_PPLL_REF_DIV              = 0x0414,
  62.     EXT2_PPLL_UPDATE_LOCK          = 0x0418,
  63.     EXT2_PPLL_UPDATE_CNTL          = 0x041C,
  64.  
  65.     EXT1_PPLL_FB_DIV               = 0x0430,
  66.     EXT2_PPLL_FB_DIV               = 0x0434,
  67.     EXT1_PPLL_POST_DIV_SRC         = 0x0438,
  68.     EXT1_PPLL_POST_DIV             = 0x043C,
  69.     EXT2_PPLL_POST_DIV_SRC         = 0x0440,
  70.     EXT2_PPLL_POST_DIV             = 0x0444,
  71.     EXT1_PPLL_CNTL                 = 0x0448,
  72.     EXT2_PPLL_CNTL                 = 0x044C,
  73.     P1PLL_CNTL                     = 0x0450,
  74.     P2PLL_CNTL                     = 0x0454,
  75.     P1PLL_INT_SS_CNTL              = 0x0458,
  76.     P2PLL_INT_SS_CNTL              = 0x045C,
  77.  
  78.     P1PLL_DISP_CLK_CNTL            = 0x0468, /* rv620+ */
  79.     P2PLL_DISP_CLK_CNTL            = 0x046C, /* rv620+ */
  80.     EXT1_SYM_PPLL_POST_DIV         = 0x0470, /* rv620+ */
  81.     EXT2_SYM_PPLL_POST_DIV         = 0x0474, /* rv620+ */
  82.  
  83.     PCLK_CRTC1_CNTL                = 0x0480,
  84.     PCLK_CRTC2_CNTL                = 0x0484,
  85.  
  86.     DCCG_DISP_CLK_SRCSEL           = 0x0538, /* rv620+ */
  87.  
  88.     R6XX_MC_VM_FB_LOCATION         = 0x2180,
  89.     R6XX_HDP_NONSURFACE_BASE       = 0x2C04,
  90.     R6XX_CONFIG_MEMSIZE            = 0x5428,
  91.     R6XX_CONFIG_FB_BASE            = 0x542C, /* AKA CONFIG_F0_BASE */
  92.  
  93.     /* CRTC1 registers */
  94.     D1CRTC_H_TOTAL                 = 0x6000,
  95.     D1CRTC_H_BLANK_START_END       = 0x6004,
  96.     D1CRTC_H_SYNC_A                = 0x6008,
  97.     D1CRTC_H_SYNC_A_CNTL           = 0x600C,
  98.     D1CRTC_H_SYNC_B                = 0x6010,
  99.     D1CRTC_H_SYNC_B_CNTL           = 0x6014,
  100.  
  101.     D1CRTC_V_TOTAL                 = 0x6020,
  102.     D1CRTC_V_BLANK_START_END       = 0x6024,
  103.     D1CRTC_V_SYNC_A                = 0x6028,
  104.     D1CRTC_V_SYNC_A_CNTL           = 0x602C,
  105.     D1CRTC_V_SYNC_B                = 0x6030,
  106.     D1CRTC_V_SYNC_B_CNTL           = 0x6034,
  107.  
  108.     D1CRTC_CONTROL                 = 0x6080,
  109.     D1CRTC_BLANK_CONTROL           = 0x6084,
  110.     D1CRTC_INTERLACE_CONTROL       = 0x6088,
  111.     D1CRTC_BLACK_COLOR             = 0x6098,
  112.     D1CRTC_STATUS                  = 0x609C,
  113.     D1CRTC_COUNT_CONTROL           = 0x60B4,
  114.  
  115.     /* D1GRPH registers */
  116.     D1GRPH_ENABLE                  = 0x6100,
  117.     D1GRPH_CONTROL                 = 0x6104,
  118.     D1GRPH_LUT_SEL                 = 0x6108,
  119.     D1GRPH_SWAP_CNTL               = 0x610C,
  120.     D1GRPH_PRIMARY_SURFACE_ADDRESS = 0x6110,
  121.     D1GRPH_SECONDARY_SURFACE_ADDRESS = 0x6118,
  122.     D1GRPH_PITCH                   = 0x6120,
  123.     D1GRPH_SURFACE_OFFSET_X        = 0x6124,
  124.     D1GRPH_SURFACE_OFFSET_Y        = 0x6128,
  125.     D1GRPH_X_START                 = 0x612C,
  126.     D1GRPH_Y_START                 = 0x6130,
  127.     D1GRPH_X_END                   = 0x6134,
  128.     D1GRPH_Y_END                   = 0x6138,
  129.     D1GRPH_UPDATE                  = 0x6144,
  130.  
  131.     /* LUT */
  132.     DC_LUT_RW_SELECT               = 0x6480,
  133.     DC_LUT_RW_MODE                 = 0x6484,
  134.     DC_LUT_RW_INDEX                = 0x6488,
  135.     DC_LUT_SEQ_COLOR               = 0x648C,
  136.     DC_LUT_PWL_DATA                = 0x6490,
  137.     DC_LUT_30_COLOR                = 0x6494,
  138.     DC_LUT_READ_PIPE_SELECT        = 0x6498,
  139.     DC_LUT_WRITE_EN_MASK           = 0x649C,
  140.     DC_LUT_AUTOFILL                = 0x64A0,
  141.  
  142.     /* LUTA */
  143.     DC_LUTA_CONTROL                = 0x64C0,
  144.     DC_LUTA_BLACK_OFFSET_BLUE      = 0x64C4,
  145.     DC_LUTA_BLACK_OFFSET_GREEN     = 0x64C8,
  146.     DC_LUTA_BLACK_OFFSET_RED       = 0x64CC,
  147.     DC_LUTA_WHITE_OFFSET_BLUE      = 0x64D0,
  148.     DC_LUTA_WHITE_OFFSET_GREEN     = 0x64D4,
  149.     DC_LUTA_WHITE_OFFSET_RED       = 0x64D8,
  150.  
  151.     /* D1CUR */
  152.     D1CUR_CONTROL                  = 0x6400,
  153.     D1CUR_SURFACE_ADDRESS          = 0x6408,
  154.     D1CUR_SIZE                     = 0x6410,
  155.     D1CUR_POSITION                 = 0x6414,
  156.     D1CUR_HOT_SPOT                 = 0x6418,
  157.     D1CUR_UPDATE                   = 0x6424,
  158.  
  159.     /* D1MODE */
  160.     D1MODE_DESKTOP_HEIGHT          = 0x652C,
  161.     D1MODE_VIEWPORT_START          = 0x6580,
  162.     D1MODE_VIEWPORT_SIZE           = 0x6584,
  163.     D1MODE_EXT_OVERSCAN_LEFT_RIGHT = 0x6588,
  164.     D1MODE_EXT_OVERSCAN_TOP_BOTTOM = 0x658C,
  165.     D1MODE_DATA_FORMAT             = 0x6528,
  166.  
  167.     /* D1SCL */
  168.     D1SCL_ENABLE                   = 0x6590,
  169.     D1SCL_TAP_CONTROL              = 0x6594,
  170.     D1MODE_CENTER                  = 0x659C, /* guess */
  171.     D1SCL_HVSCALE                  = 0x65A4, /* guess */
  172.     D1SCL_HFILTER                  = 0x65B0, /* guess */
  173.     D1SCL_VFILTER                  = 0x65C0, /* guess */
  174.     D1SCL_UPDATE                   = 0x65CC,
  175.     D1SCL_DITHER                   = 0x65D4, /* guess */
  176.     D1SCL_FLIP_CONTROL             = 0x65D8, /* guess */
  177.  
  178.     /* CRTC2 registers */
  179.     D2CRTC_H_TOTAL                 = 0x6800,
  180.     D2CRTC_H_BLANK_START_END       = 0x6804,
  181.     D2CRTC_H_SYNC_A                = 0x6808,
  182.     D2CRTC_H_SYNC_A_CNTL           = 0x680C,
  183.     D2CRTC_H_SYNC_B                = 0x6810,
  184.     D2CRTC_H_SYNC_B_CNTL           = 0x6814,
  185.  
  186.     D2CRTC_V_TOTAL                 = 0x6820,
  187.     D2CRTC_V_BLANK_START_END       = 0x6824,
  188.     D2CRTC_V_SYNC_A                = 0x6828,
  189.     D2CRTC_V_SYNC_A_CNTL           = 0x682C,
  190.     D2CRTC_V_SYNC_B                = 0x6830,
  191.     D2CRTC_V_SYNC_B_CNTL           = 0x6834,
  192.  
  193.     D2CRTC_CONTROL                 = 0x6880,
  194.     D2CRTC_BLANK_CONTROL           = 0x6884,
  195.     D2CRTC_BLACK_COLOR             = 0x6898,
  196.     D2CRTC_INTERLACE_CONTROL       = 0x6888,
  197.     D2CRTC_STATUS                  = 0x689C,
  198.     D2CRTC_COUNT_CONTROL           = 0x68B4,
  199.  
  200.     /* D2GRPH registers */
  201.     D2GRPH_ENABLE                  = 0x6900,
  202.     D2GRPH_CONTROL                 = 0x6904,
  203.     D2GRPH_LUT_SEL                 = 0x6908,
  204.     D2GRPH_SWAP_CNTL               = 0x690C,
  205.     D2GRPH_PRIMARY_SURFACE_ADDRESS = 0x6910,
  206.     D2GRPH_PITCH                   = 0x6920,
  207.     D2GRPH_SURFACE_OFFSET_X        = 0x6924,
  208.     D2GRPH_SURFACE_OFFSET_Y        = 0x6928,
  209.     D2GRPH_X_START                 = 0x692C,
  210.     D2GRPH_Y_START                 = 0x6930,
  211.     D2GRPH_X_END                   = 0x6934,
  212.     D2GRPH_Y_END                   = 0x6938,
  213.  
  214.     /* LUTB */
  215.     DC_LUTB_CONTROL                = 0x6CC0,
  216.     DC_LUTB_BLACK_OFFSET_BLUE      = 0x6CC4,
  217.     DC_LUTB_BLACK_OFFSET_GREEN     = 0x6CC8,
  218.     DC_LUTB_BLACK_OFFSET_RED       = 0x6CCC,
  219.     DC_LUTB_WHITE_OFFSET_BLUE      = 0x6CD0,
  220.     DC_LUTB_WHITE_OFFSET_GREEN     = 0x6CD4,
  221.     DC_LUTB_WHITE_OFFSET_RED       = 0x6CD8,
  222.  
  223.     /* D2MODE */
  224.     D2MODE_DESKTOP_HEIGHT          = 0x6D2C,
  225.     D2MODE_VIEWPORT_START          = 0x6D80,
  226.     D2MODE_VIEWPORT_SIZE           = 0x6D84,
  227.     D2MODE_EXT_OVERSCAN_LEFT_RIGHT = 0x6D88,
  228.     D2MODE_EXT_OVERSCAN_TOP_BOTTOM = 0x6D8C,
  229.     D2MODE_DATA_FORMAT             = 0x6D28,
  230.  
  231.     /* D2SCL */
  232.     D2SCL_ENABLE                   = 0x6D90,
  233.     D2SCL_TAP_CONTROL              = 0x6D94,
  234.     D2MODE_CENTER                  = 0x6D9C, /* guess */
  235.     D2SCL_HVSCALE                  = 0x6DA4, /* guess */
  236.     D2SCL_HFILTER                  = 0x6DB0, /* guess */
  237.     D2SCL_VFILTER                  = 0x6DC0, /* guess */
  238.     D2SCL_UPDATE                   = 0x6DCC,
  239.     D2SCL_DITHER                   = 0x6DD4, /* guess */
  240.     D2SCL_FLIP_CONTROL             = 0x6DD8, /* guess */
  241.  
  242.     /* R500 DAC A */
  243.     DACA_ENABLE                    = 0x7800,
  244.     DACA_SOURCE_SELECT             = 0x7804,
  245.     DACA_SYNC_TRISTATE_CONTROL     = 0x7820,
  246.     DACA_SYNC_SELECT               = 0x7824,
  247.     DACA_AUTODETECT_CONTROL        = 0x7828,
  248.     DACA_FORCE_OUTPUT_CNTL         = 0x783C,
  249.     DACA_FORCE_DATA                = 0x7840,
  250.     DACA_POWERDOWN                 = 0x7850,
  251.     DACA_CONTROL1                  = 0x7854,
  252.     DACA_CONTROL2                  = 0x7858,
  253.     DACA_COMPARATOR_ENABLE         = 0x785C,
  254.     DACA_COMPARATOR_OUTPUT         = 0x7860,
  255.  
  256. /* TMDSA */
  257.     TMDSA_CNTL                     = 0x7880,
  258.     TMDSA_SOURCE_SELECT            = 0x7884,
  259.     TMDSA_COLOR_FORMAT             = 0x7888,
  260.     TMDSA_FORCE_OUTPUT_CNTL        = 0x788C,
  261.     TMDSA_BIT_DEPTH_CONTROL        = 0x7894,
  262.     TMDSA_DCBALANCER_CONTROL       = 0x78D0,
  263.     TMDSA_DATA_SYNCHRONIZATION_R500 = 0x78D8,
  264.     TMDSA_DATA_SYNCHRONIZATION_R600 = 0x78DC,
  265.     TMDSA_TRANSMITTER_ENABLE       = 0x7904,
  266.     TMDSA_LOAD_DETECT              = 0x7908,
  267.     TMDSA_MACRO_CONTROL            = 0x790C, /* r5x0 and r600: 3 for pll and 1 for TX */
  268.     TMDSA_PLL_ADJUST               = 0x790C, /* rv6x0: pll only */
  269.     TMDSA_TRANSMITTER_CONTROL      = 0x7910,
  270.     TMDSA_TRANSMITTER_ADJUST       = 0x7920, /* rv6x0: TX part of macro control */
  271.  
  272.     /* DAC B */
  273.     DACB_ENABLE                    = 0x7A00,
  274.     DACB_SOURCE_SELECT             = 0x7A04,
  275.     DACB_SYNC_TRISTATE_CONTROL     = 0x7A20,
  276.     DACB_SYNC_SELECT               = 0x7A24,
  277.     DACB_AUTODETECT_CONTROL        = 0x7A28,
  278.     DACB_FORCE_OUTPUT_CNTL         = 0x7A3C,
  279.     DACB_FORCE_DATA                = 0x7A40,
  280.     DACB_POWERDOWN                 = 0x7A50,
  281.     DACB_CONTROL1                  = 0x7A54,
  282.     DACB_CONTROL2                  = 0x7A58,
  283.     DACB_COMPARATOR_ENABLE         = 0x7A5C,
  284.     DACB_COMPARATOR_OUTPUT         = 0x7A60,
  285.  
  286.     /* LVTMA */
  287.     LVTMA_CNTL                     = 0x7A80,
  288.     LVTMA_SOURCE_SELECT            = 0x7A84,
  289.     LVTMA_COLOR_FORMAT             = 0x7A88,
  290.     LVTMA_FORCE_OUTPUT_CNTL        = 0x7A8C,
  291.     LVTMA_BIT_DEPTH_CONTROL        = 0x7A94,
  292.     LVTMA_DCBALANCER_CONTROL       = 0x7AD0,
  293.  
  294.     /* no longer shared between both r5xx and r6xx */
  295.     LVTMA_R500_DATA_SYNCHRONIZATION = 0x7AD8,
  296.     LVTMA_R500_PWRSEQ_REF_DIV       = 0x7AE4,
  297.     LVTMA_R500_PWRSEQ_DELAY1        = 0x7AE8,
  298.     LVTMA_R500_PWRSEQ_DELAY2        = 0x7AEC,
  299.     LVTMA_R500_PWRSEQ_CNTL          = 0x7AF0,
  300.     LVTMA_R500_PWRSEQ_STATE         = 0x7AF4,
  301.     LVTMA_R500_LVDS_DATA_CNTL       = 0x7AFC,
  302.     LVTMA_R500_MODE                 = 0x7B00,
  303.     LVTMA_R500_TRANSMITTER_ENABLE   = 0x7B04,
  304.     LVTMA_R500_MACRO_CONTROL        = 0x7B0C,
  305.     LVTMA_R500_TRANSMITTER_CONTROL  = 0x7B10,
  306.     LVTMA_R500_REG_TEST_OUTPUT      = 0x7B14,
  307.  
  308.     /* R600 adds an undocumented register at 0x7AD8,
  309.      * shifting all subsequent registers by exactly one. */
  310.     LVTMA_R600_DATA_SYNCHRONIZATION = 0x7ADC,
  311.     LVTMA_R600_PWRSEQ_REF_DIV       = 0x7AE8,
  312.     LVTMA_R600_PWRSEQ_DELAY1        = 0x7AEC,
  313.     LVTMA_R600_PWRSEQ_DELAY2        = 0x7AF0,
  314.     LVTMA_R600_PWRSEQ_CNTL          = 0x7AF4,
  315.     LVTMA_R600_PWRSEQ_STATE         = 0x7AF8,
  316.     LVTMA_R600_LVDS_DATA_CNTL       = 0x7B00,
  317.     LVTMA_R600_MODE                 = 0x7B04,
  318.     LVTMA_R600_TRANSMITTER_ENABLE   = 0x7B08,
  319.     LVTMA_R600_MACRO_CONTROL        = 0x7B10,
  320.     LVTMA_R600_TRANSMITTER_CONTROL  = 0x7B14,
  321.     LVTMA_R600_REG_TEST_OUTPUT      = 0x7B18,
  322.  
  323.     LVTMA_TRANSMITTER_ADJUST        = 0x7B24, /* RV630 */
  324.     LVTMA_PREEMPHASIS_CONTROL       = 0x7B28, /* RV630 */
  325.  
  326.     /* I2C in separate enum */
  327.  
  328.     /* HPD */
  329.     DC_GPIO_HPD_MASK               = 0x7E90,
  330.     DC_GPIO_HPD_A                  = 0x7E94,
  331.     DC_GPIO_HPD_EN                 = 0x7E98,
  332.     DC_GPIO_HPD_Y                  = 0x7E9C
  333. };
  334.  
  335. enum CONFIG_CNTL_BITS {
  336.     RS69_CFG_ATI_REV_ID_SHIFT      = 8,
  337.     RS69_CFG_ATI_REV_ID_MASK       = 0xF << RS69_CFG_ATI_REV_ID_SHIFT
  338. };
  339.  
  340. enum rv620Regs {
  341.     /* DAC common */
  342.     RV620_DAC_COMPARATOR_MISC       = 0x7da4,
  343.     RV620_DAC_COMPARATOR_OUTPUT     = 0x7da8,
  344.  
  345.     /* RV620 DAC A */
  346.     RV620_DACA_ENABLE              = 0x7000,
  347.     RV620_DACA_SOURCE_SELECT       = 0x7004,
  348.     RV620_DACA_SYNC_TRISTATE_CONTROL     = 0x7020,
  349.     /* RV620_DACA_SYNC_SELECT         = 0x7024, ?? */
  350.     RV620_DACA_AUTODETECT_CONTROL  = 0x7028,
  351.     RV620_DACA_AUTODETECT_STATUS   = 0x7034,
  352.     RV620_DACA_AUTODETECT_INT_CONTROL  = 0x7038,
  353.     RV620_DACA_FORCE_OUTPUT_CNTL   = 0x703C,
  354.     RV620_DACA_FORCE_DATA          = 0x7040,
  355.     RV620_DACA_POWERDOWN           = 0x7050,
  356.     /* RV620_DACA_CONTROL1         moved */
  357.     RV620_DACA_CONTROL2            = 0x7058,
  358.     RV620_DACA_COMPARATOR_ENABLE   = 0x705C,
  359.     /* RV620_DACA_COMPARATOR_OUTPUT  changed */
  360.     RV620_DACA_BGADJ_SRC           = 0x7ef0,
  361.     RV620_DACA_MACRO_CNTL          = 0x7ef4,
  362.     RV620_DACA_AUTO_CALIB_CONTROL  = 0x7ef8,
  363.  
  364.     /* DAC B */
  365.     RV620_DACB_ENABLE              = 0x7100,
  366.     RV620_DACB_SOURCE_SELECT       = 0x7104,
  367.     RV620_DACB_SYNC_TRISTATE_CONTROL     = 0x7120,
  368.     /* RV620_DACB_SYNC_SELECT         = 0x7124, ?? */
  369.     RV620_DACB_AUTODETECT_CONTROL  = 0x7128,
  370.     RV620_DACB_AUTODETECT_STATUS   = 0x7134,
  371.     RV620_DACB_AUTODETECT_INT_CONTROL  = 0x7138,
  372.     RV620_DACB_FORCE_OUTPUT_CNTL   = 0x713C,
  373.     RV620_DACB_FORCE_DATA          = 0x7140,
  374.     RV620_DACB_POWERDOWN           = 0x7150,
  375.     /* RV620_DACB_CONTROL1         moved */
  376.     RV620_DACB_CONTROL2            = 0x7158,
  377.     RV620_DACB_COMPARATOR_ENABLE   = 0x715C,
  378.     RV620_DACB_BGADJ_SRC           = 0x7ef0,
  379.     RV620_DACB_MACRO_CNTL          = 0x7ff4,
  380.     RV620_DACB_AUTO_CALIB_CONTROL  = 0x7ef8,
  381.     /* DIG1 */
  382.     RV620_DIG1_CNTL                = 0x75A0,
  383.     RV620_DIG1_CLOCK_PATTERN       = 0x75AC,
  384.     RV620_LVDS1_DATA_CNTL          = 0x75BC,
  385.     RV620_TMDS1_CNTL               = 0x75C0,
  386.     /* DIG2 */
  387.     RV620_DIG2_CNTL                = 0x79A0,
  388.     RV620_DIG2_CLOCK_PATTERN       = 0x79AC,
  389.     RV620_LVDS2_DATA_CNTL          = 0x79BC,
  390.     RV620_TMDS2_CNTL               = 0x79C0,
  391.  
  392.     /* RV62x I2C */
  393.     RV62_GENERIC_I2C_CONTROL         =       0x7d80,  /* (RW) */
  394.     RV62_GENERIC_I2C_INTERRUPT_CONTROL       =       0x7d84,  /* (RW) */
  395.     RV62_GENERIC_I2C_STATUS  =       0x7d88,  /* (RW) */
  396.     RV62_GENERIC_I2C_SPEED   =       0x7d8c,  /* (RW) */
  397.     RV62_GENERIC_I2C_SETUP   =       0x7d90,  /* (RW) */
  398.     RV62_GENERIC_I2C_TRANSACTION     =       0x7d94,  /* (RW) */
  399.     RV62_GENERIC_I2C_DATA    =       0x7d98,  /* (RW) */
  400.     RV62_GENERIC_I2C_PIN_SELECTION   =       0x7d9c,  /* (RW) */
  401.     RV62_DC_GPIO_DDC4_MASK   =       0x7e20,  /* (RW) */
  402.     RV62_DC_GPIO_DDC1_MASK   =       0x7e40,  /* (RW) */
  403.     RV62_DC_GPIO_DDC2_MASK   =       0x7e50,  /* (RW) */
  404.     RV62_DC_GPIO_DDC3_MASK   =       0x7e60,  /* (RW) */
  405.  
  406.     /* ?? */
  407.     RV620_DCIO_LINK_STEER_CNTL             = 0x7FA4,
  408.  
  409.     RV620_LVTMA_TRANSMITTER_CONTROL= 0x7F00,
  410.     RV620_LVTMA_TRANSMITTER_ENABLE = 0x7F04,
  411.     RV620_LVTMA_TRANSMITTER_ADJUST = 0x7F18,
  412.     RV620_LVTMA_PREEMPHASIS_CONTROL= 0x7F1C,
  413.     RV620_LVTMA_MACRO_CONTROL      = 0x7F0C,
  414.     RV620_LVTMA_DATA_SYNCHRONIZATION = 0x7F98,
  415.  
  416.     RV620_FMT1_CONTROL          = 0x6700,
  417.     RV620_FMT1_BIT_DEPTH_CONTROL= 0x6710,
  418.     RV620_FMT1_CLAMP_CNTL       = 0x672C,
  419.     RV620_FMT2_CONTROL          = 0x6F00,
  420.     RV620_FMT2_CNTL             = 0x6F10,
  421.     RV620_FMT2_CLAMP_CNTL       = 0x6F2C,
  422.  
  423.     RV620_DCCG_PCLK_DIGA_CNTL   = 0x04b0,
  424.     RV620_DCCG_PCLK_DIGB_CNTL   = 0x04b4,
  425.     RV620_DCCG_SYMCLK_CNTL      = 0x04b8
  426. };
  427.  
  428. enum RV620_LVTMA_TRANSMITTER_CONTROL_BITS {
  429.     RV62_LVTMA_PLL_ENABLE  = 1 << 0,
  430.     RV62_LVTMA_PLL_RESET   = 1 << 1,
  431.     RV62_LVTMA_IDSCKSEL    = 1 << 4,
  432.     RV62_LVTMA_BGSLEEP     = 1 << 5,
  433.     RV62_LVTMA_IDCLK_SEL   = 1 << 6,
  434.     RV62_LVTMA_TMCLK       = 1 << 8,
  435.     RV62_LVTMA_TMCLK_FROM_PADS = 1 << 13,
  436.     RV62_LVTMA_TDCLK           = 1 << 14,
  437.     RV62_LVTMA_TDCLK_FROM_PADS = 1 << 15,
  438.     RV62_LVTMA_BYPASS_PLL      = 1 << 28,
  439.     RV62_LVTMA_USE_CLK_DATA    = 1 << 29,
  440.     RV62_LVTMA_MODE            = 1 << 30,
  441.     RV62_LVTMA_INPUT_TEST_CLK_SEL = 1 << 31
  442. };
  443.  
  444. enum RV620_DCCG_SYMCLK_CNTL {
  445.     RV62_SYMCLKA_SRC_SHIFT = 8,
  446.     RV62_SYMCLKB_SRC_SHIFT = 12
  447. };
  448.  
  449. enum RV620_DCCG_DIG_CNTL {
  450.     RV62_PCLK_DIGA_ON = 0x1
  451. };
  452.  
  453. enum RV620_DCIO_LINK_STEER_CNTL {
  454.     RV62_LINK_STEER_SWAP = 1 << 0,
  455.     RV62_LINK_STEER_PLLSEL_OVERWRITE_EN = 1 << 16,
  456.     RV62_LINK_STEER_PLLSELA = 1 << 17,
  457.     RV62_LINK_STEER_PLLSELB = 1 << 18
  458. };
  459.  
  460. enum R620_LVTMA_TRANSMITTER_ENABLE_BITS {
  461.     RV62_LVTMA_LNK0EN = 1 << 0,
  462.     RV62_LVTMA_LNK1EN = 1 << 1,
  463.     RV62_LVTMA_LNK2EN = 1 << 2,
  464.     RV62_LVTMA_LNK3EN = 1 << 3,
  465.     RV62_LVTMA_LNK4EN = 1 << 4,
  466.     RV62_LVTMA_LNK5EN = 1 << 5,
  467.     RV62_LVTMA_LNK6EN = 1 << 6,
  468.     RV62_LVTMA_LNK7EN = 1 << 7,
  469.     RV62_LVTMA_LNK8EN = 1 << 8,
  470.     RV62_LVTMA_LNK9EN = 1 << 9,
  471.     RV62_LVTMA_LNKL = RV62_LVTMA_LNK0EN | RV62_LVTMA_LNK1EN
  472.     | RV62_LVTMA_LNK2EN | RV62_LVTMA_LNK3EN,
  473.     RV62_LVTMA_LNKU = RV62_LVTMA_LNK4EN | RV62_LVTMA_LNK5EN
  474.     | RV62_LVTMA_LNK6EN | RV62_LVTMA_LNK7EN,
  475.     RV62_LVTMA_LNK_ALL =  RV62_LVTMA_LNKL | RV62_LVTMA_LNKU
  476.     | RV62_LVTMA_LNK8EN | RV62_LVTMA_LNK9EN,
  477.     RV62_LVTMA_LNKEN_HPD_MASK = 1 << 16
  478. };
  479.  
  480. enum RV620_LVTMA_DATA_SYNCHRONIZATION {
  481.     RV62_LVTMA_DSYNSEL = (1 << 0),
  482.     RV62_LVTMA_PFREQCHG = (1 << 8)
  483. };
  484.  
  485.  
  486. enum RV620_DIG_CNTL_BITS {
  487.     /* 0x75A0 */
  488.     RV62_DIG_SWAP                  = (0x1 << 16),
  489.     RV62_DIG_DUAL_LINK_ENABLE     = (0x1 << 12),
  490.     RV62_DIG_START                         = (0x1 << 6),
  491.     RV62_DIG_MODE                       = (0x7 << 8),
  492.     RV62_DIG_STEREOSYNC_SELECT   = (1 << 2),
  493.     RV62_DIG_SOURCE_SELECT       = (1 << 0)
  494. };
  495.  
  496. enum RV620_DIG_LVDS_DATA_CNTL_BITS {
  497.     /* 0x75BC */
  498.     RV62_LVDS_24BIT_ENABLE         = (0x1 << 0),
  499.     RV62_LVDS_24BIT_FORMAT         = (0x1 << 4)
  500. };
  501.  
  502. enum RV620_TMDS_CNTL_BITS {
  503.     /* 0x75C0 */
  504.     RV62_TMDS_PIXEL_ENCODING      = (0x1 << 4),
  505.     RV62_TMDS_COLOR_FORMAT        = (0x3 << 8)
  506. };
  507.  
  508. enum RV620_FMT_BIT_DEPTH_CONTROL {
  509.     RV62_FMT_TRUNCATE_EN = 1 << 0,
  510.     RV62_FMT_TRUNCATE_DEPTH = 1 << 4,
  511.     RV62_FMT_SPATIAL_DITHER_EN = 1 << 8,
  512.     RV62_FMT_SPATIAL_DITHER_MODE = 1 << 9,
  513.     RV62_FMT_SPATIAL_DITHER_DEPTH = 1 << 12,
  514.     RV62_FMT_FRAME_RANDOM_ENABLE = 1 << 13,
  515.     RV62_FMT_RGB_RANDOM_ENABLE = 1 << 14,
  516.     RV62_FMT_HIGHPASS_RANDOM_ENABLE = 1 << 15,
  517.     RV62_FMT_TEMPORAL_DITHER_EN = 1 << 16,
  518.     RV62_FMT_TEMPORAL_DITHER_DEPTH = 1 << 20,
  519.     RV62_FMT_TEMPORAL_DITHER_OFFSET = 3 << 21,
  520.     RV62_FMT_TEMPORAL_LEVEL = 1 << 24,
  521.     RV62_FMT_TEMPORAL_DITHER_RESET = 1 << 25,
  522.     RV62_FMT_25FRC_SEL = 3 << 26,
  523.     RV62_FMT_50FRC_SEL = 3 << 28,
  524.     RV62_FMT_75FRC_SEL = 3 << 30
  525. };
  526.  
  527. enum RV620_FMT_CONTROL {
  528.     RV62_FMT_PIXEL_ENCODING = 1 << 16
  529. };
  530.  
  531. enum _r5xxMCRegs {
  532.     R5XX_MC_STATUS                 = 0x0000,
  533.     RV515_MC_FB_LOCATION           = 0x0001,
  534.     R5XX_MC_FB_LOCATION            = 0x0004,
  535.     RV515_MC_STATUS                = 0x0008
  536. };
  537.  
  538. enum _r5xxRegs {
  539.     /* I2C */
  540.     R5_DC_I2C_STATUS1   =       0x7D30,  /* (RW) */
  541.     R5_DC_I2C_RESET     =       0x7D34,  /* (RW) */
  542.     R5_DC_I2C_CONTROL1  =       0x7D38,  /* (RW) */
  543.     R5_DC_I2C_CONTROL2  =       0x7D3C,  /* (RW) */
  544.     R5_DC_I2C_CONTROL3  =       0x7D40,  /* (RW) */
  545.     R5_DC_I2C_DATA      =       0x7D44,  /* (RW) */
  546.     R5_DC_I2C_INTERRUPT_CONTROL         =       0x7D48,  /* (RW) */
  547.     R5_DC_I2C_ARBITRATION       =       0x7D50,  /* (RW) */
  548.  
  549.     R5_DC_GPIO_DDC1_MASK              = 0x7E40,  /* (RW) */
  550.     R5_DC_GPIO_DDC1_A                 = 0x7E44,  /* (RW) */
  551.     R5_DC_GPIO_DDC1_EN                = 0x7E48,  /* (RW) */
  552.     R5_DC_GPIO_DDC2_MASK              = 0x7E50,  /* (RW) */
  553.     R5_DC_GPIO_DDC2_A                 = 0x7E54,  /* (RW) */
  554.     R5_DC_GPIO_DDC2_EN                = 0x7E58,  /* (RW) */
  555.     R5_DC_GPIO_DDC3_MASK              = 0x7E60,  /* (RW) */
  556.     R5_DC_GPIO_DDC3_A                 = 0x7E64,  /* (RW) */
  557.     R5_DC_GPIO_DDC3_EN                = 0x7E68  /* (RW) */
  558. };
  559.  
  560. enum _r5xxSPLLRegs {
  561.     SPLL_FUNC_CNTL      =       0x0  /* (RW) */
  562. };
  563.  
  564. enum _r6xxRegs {
  565.     /* MCLK */
  566.     R6_MCLK_PWRMGT_CNTL            = 0x620,
  567.     /* I2C */
  568.     R6_DC_I2C_CONTROL              = 0x7D30,  /* (RW) */
  569.     R6_DC_I2C_ARBITRATION                  = 0x7D34,  /* (RW) */
  570.     R6_DC_I2C_INTERRUPT_CONTROL    = 0x7D38,  /* (RW) */
  571.     R6_DC_I2C_SW_STATUS            = 0x7d3c,  /* (RW) */
  572.     R6_DC_I2C_DDC1_SPEED              = 0x7D4C,  /* (RW) */
  573.     R6_DC_I2C_DDC1_SETUP              = 0x7D50,  /* (RW) */
  574.     R6_DC_I2C_DDC2_SPEED              = 0x7D54,  /* (RW) */
  575.     R6_DC_I2C_DDC2_SETUP              = 0x7D58,  /* (RW) */
  576.     R6_DC_I2C_DDC3_SPEED              = 0x7D5C,  /* (RW) */
  577.     R6_DC_I2C_DDC3_SETUP              = 0x7D60,  /* (RW) */
  578.     R6_DC_I2C_TRANSACTION0            = 0x7D64,  /* (RW) */
  579.     R6_DC_I2C_TRANSACTION1            = 0x7D68,  /* (RW) */
  580.     R6_DC_I2C_DATA                         = 0x7D74,  /* (RW) */
  581.     R6_DC_I2C_DDC4_SPEED              = 0x7DB4,  /* (RW) */
  582.     R6_DC_I2C_DDC4_SETUP              = 0x7DBC,  /* (RW) */
  583.     R6_DC_GPIO_DDC4_MASK              = 0x7E00,  /* (RW) */
  584.     R6_DC_GPIO_DDC4_A                 = 0x7E04,  /* (RW) */
  585.     R6_DC_GPIO_DDC4_EN                = 0x7E08,  /* (RW) */
  586.     R6_DC_GPIO_DDC1_MASK              = 0x7E40,  /* (RW) */
  587.     R6_DC_GPIO_DDC1_A                 = 0x7E44,  /* (RW) */
  588.     R6_DC_GPIO_DDC1_EN                = 0x7E48,  /* (RW) */
  589.     R6_DC_GPIO_DDC1_Y                 = 0x7E4C,  /* (RW) */
  590.     R6_DC_GPIO_DDC2_MASK              = 0x7E50,  /* (RW) */
  591.     R6_DC_GPIO_DDC2_A                 = 0x7E54,  /* (RW) */
  592.     R6_DC_GPIO_DDC2_EN                = 0x7E58,  /* (RW) */
  593.     R6_DC_GPIO_DDC2_Y                 = 0x7E5C,  /* (RW) */
  594.     R6_DC_GPIO_DDC3_MASK              = 0x7E60,  /* (RW) */
  595.     R6_DC_GPIO_DDC3_A                 = 0x7E64,  /* (RW) */
  596.     R6_DC_GPIO_DDC3_EN                = 0x7E68,  /* (RW) */
  597.     R6_DC_GPIO_DDC3_Y                 = 0x7E6C  /* (RW) */
  598. };
  599.  
  600. enum R6_MCLK_PWRMGT_CNTL {
  601.     R6_MC_BUSY = (1 << 5)
  602. };
  603.  
  604.  
  605. /* *_Q: questionbable */
  606. enum _rs69xRegs {
  607.     /* I2C */
  608.     RS69_DC_I2C_CONTROL            = 0x7D30,  /* (RW) *//* */
  609.     RS69_DC_I2C_UNKNOWN_2                  = 0x7D34,  /* (RW) */
  610.     RS69_DC_I2C_INTERRUPT_CONTROL          = 0x7D38,  /* (RW) */
  611.     RS69_DC_I2C_SW_STATUS                  = 0x7d3c,  /* (RW) *//**/
  612.     RS69_DC_I2C_UNKNOWN_1                = 0x7d40,
  613.     RS69_DC_I2C_DDC_SETUP_Q              = 0x7D44,  /* (RW) */
  614.     RS69_DC_I2C_DATA                       = 0x7D58,  /* (RW) *//**/
  615.     RS69_DC_I2C_TRANSACTION0            = 0x7D48,  /* (RW) *//**/
  616.     RS69_DC_I2C_TRANSACTION1            = 0x7D4C,  /* (RW) *//**/
  617.     /* DDIA */
  618.     RS69_DDIA_CNTL                      = 0x7200,
  619.     RS69_DDIA_SOURCE_SELECT             = 0x7204,
  620.     RS69_DDIA_BIT_DEPTH_CONTROL         = 0x7214,
  621.     RS69_DDIA_DCBALANCER_CONTROL        = 0x7250,
  622.     RS69_DDIA_PATH_CONTROL              = 0x7264,
  623.     RS69_DDIA_PCIE_LINK_CONTROL2        = 0x7278,
  624.     RS69_DDIA_PCIE_LINK_CONTROL3        = 0x727c,
  625.     RS69_DDIA_PCIE_PHY_CONTROL1         = 0x728c,
  626.     RS69_DDIA_PCIE_PHY_CONTROL2         = 0x7290
  627. };
  628.  
  629. enum RS69_DDIA_CNTL_BITS {
  630.     RS69_DDIA_ENABLE                    = 1 << 0,
  631.     RS69_DDIA_HDMI_EN                   = 1 << 2,
  632.     RS69_DDIA_ENABLE_HPD_MASK           = 1 << 4,
  633.     RS69_DDIA_HPD_SELECT                = 1 << 8,
  634.     RS69_DDIA_SYNC_PHASE                = 1 << 12,
  635.     RS69_DDIA_PIXEL_ENCODING            = 1 << 16,
  636.     RS69_DDIA_DUAL_LINK_ENABLE          = 1 << 24,
  637.     RS69_DDIA_SWAP                      = 1 << 28
  638. };
  639.  
  640. enum RS69_DDIA_SOURCE_SELECT_BITS {
  641.     RS69_DDIA_SOURCE_SELECT_BIT        = 1 << 0,
  642.     RS69_DDIA_SYNC_SELECT              = 1 << 8,
  643.     RS69_DDIA_STEREOSYNC_SELECT        = 1 << 16
  644. };
  645.  
  646. enum RS69_DDIA_LINK_CONTROL2_SHIFT {
  647.     RS69_DDIA_PCIE_OUTPUT_MUX_SEL0      = 0,
  648.     RS69_DDIA_PCIE_OUTPUT_MUX_SEL1      = 4,
  649.     RS69_DDIA_PCIE_OUTPUT_MUX_SEL2      = 8,
  650.     RS69_DDIA_PCIE_OUTPUT_MUX_SEL3      = 12
  651. };
  652.  
  653. enum RS69_DDIA_BIT_DEPTH_CONTROL_BITS {
  654.     RS69_DDIA_TRUNCATE_EN               = 1 << 0,
  655.     RS69_DDIA_TRUNCATE_DEPTH            = 1 << 4,
  656.     RS69_DDIA_SPATIAL_DITHER_EN         = 1 << 8,
  657.     RS69_DDIA_SPATIAL_DITHER_DEPTH      = 1 << 12,
  658.     RS69_DDIA_TEMPORAL_DITHER_EN        = 1 << 16,
  659.     RS69_DDIA_TEMPORAL_DITHER_DEPTH     = 1 << 20,
  660.     RS69_DDIA_TEMPORAL_LEVEL            = 1 << 24,
  661.     RS69_DDIA_TEMPORAL_DITHER_RESET     = 1 << 25
  662. };
  663.  
  664. enum RS69_DDIA_DCBALANCER_CONTROL_BITS {
  665.     RS69_DDIA_DCBALANCER_EN             = 1 << 0,
  666.     RS69_DDIA_SYNC_DCBAL_EN             = 1 << 4,
  667.     RS69_DDIA_DCBALANCER_TEST_EN        = 1 << 8,
  668.     RS69_DDIA_DCBALANCER_TEST_IN_SHIFT  = 16,
  669.     RS69_DDIA_DCBALANCER_FORCE          = 1 << 24
  670. };
  671.  
  672. enum RS69_DDIA_PATH_CONTROL_BITS {
  673.     RS69_DDIA_PATH_SELECT_SHIFT         = 0,
  674.     RS69_DDIA_DDPII_DE_ALIGN_EN         = 1 <<  4,
  675.     RS69_DDIA_DDPII_TRAIN_EN            = 1 <<  8,
  676.     RS69_DDIA_DDPII_TRAIN_SELECT        = 1 << 12,
  677.     RS69_DDIA_DDPII_SCRAMBLE_EN         = 1 << 16,
  678.     RS69_DDIA_REPL_MODE_SELECT          = 1 << 20,
  679.     RS69_DDIA_RB_30b_SWAP_EN            = 1 << 24,
  680.     RS69_DDIA_PIXVLD_RESET              = 1 << 28,
  681.     RS69_DDIA_REARRANGER_EN             = 1 << 30
  682. };
  683.  
  684. enum RS69_DDIA_PCIE_LINK_CONTROL3_BITS {
  685.     RS69_DDIA_PCIE_MIRROR_EN            = 1 << 0,
  686.     RS69_DDIA_PCIE_CFGDUALLINK          = 1 << 4,
  687.     RS69_DDIA_PCIE_NCHG3EN              = 1 << 8,
  688.     RS69_DDIA_PCIE_RX_PDNB_SHIFT        = 12
  689. };
  690.  
  691. enum RS69_MC_INDEX_BITS {
  692.     RS69_MC_IND_ADDR = (0x1 << 0),
  693.     RS69_C_IND_WR_EN = (0x1 << 9)
  694. };
  695.  
  696. enum _rs690MCRegs {
  697.     RS69_MC_SYSTEM_STATUS       =       0x90,  /* (RW) */
  698.     RS69_MCCFG_FB_LOCATION              =       0x100,
  699.     RS69MCCFG_AGP_LOCATION              =       0x101
  700. };
  701.  
  702. enum RS69_MC_SYSTEM_STATUS_BITS {
  703.         RS69_MC_SYSTEM_IDLE      = (0x1 << 0),
  704.         RS69_MC_SEQUENCER_IDLE   = (0x1 << 1),
  705.         RS69_MC_ARBITER_IDLE     = (0x1 << 2),
  706.         RS69_MC_SELECT_PM        = (0x1 << 3),
  707.         RS69_RESERVED4   = (0xf << 4),
  708.         RS69_RESERVED8   = (0xf << 8),
  709.         RS69_RESERVED12_SYSTEM_STATUS    = (0xf << 12),
  710.         RS69_MCA_INIT_EXECUTED   = (0x1 << 16),
  711.         RS69_MCA_IDLE    = (0x1 << 17),
  712.         RS69_MCA_SEQ_IDLE        = (0x1 << 18),
  713.         RS69_MCA_ARB_IDLE        = (0x1 << 19),
  714.         RS69_RESERVED20_SYSTEM_STATUS    = (0xfff << 20)
  715. };
  716.  
  717. enum R5XX_MC_STATUS_BITS {
  718.     R5XX_MEM_PWRUP_COMPL = (0x1 << 0),
  719.     R5XX_MC_IDLE            = (0x1 << 1)
  720. };
  721.  
  722. enum RV515_MC_STATUS_BITS {
  723.     RV515_MC_IDLE        = (0x1 << 4)
  724. };
  725.  
  726. enum BUS_CNTL_BITS {
  727.     /* BUS_CNTL */
  728.     BUS_DBL_RESYNC       = (0x1 << 0),
  729.     BIOS_ROM_WRT_EN      = (0x1 << 1),
  730.     BIOS_ROM_DIS         = (0x1 << 2),
  731.     PMI_IO_DIS   = (0x1 << 3),
  732.     PMI_MEM_DIS  = (0x1 << 4),
  733.     PMI_BM_DIS   = (0x1 << 5),
  734.     PMI_INT_DIS  = (0x1 << 6)
  735. };
  736.  
  737. enum SEPROM_SNTL1_BITS {
  738.     /* SEPROM_CNTL1 */
  739.     WRITE_ENABLE         = (0x1 << 0),
  740.     WRITE_DISABLE        = (0x1 << 1),
  741.     READ_CONFIG  = (0x1 << 2),
  742.     WRITE_CONFIG         = (0x1 << 3),
  743.     READ_STATUS  = (0x1 << 4),
  744.     SECT_TO_SRAM         = (0x1 << 5),
  745.     READY_BUSY   = (0x1 << 7),
  746.     SEPROM_BUSY  = (0x1 << 8),
  747.     BCNT_OVER_WTE_EN     = (0x1 << 9),
  748.     RB_MASKB     = (0x1 << 10),
  749.     SOFT_RESET   = (0x1 << 11),
  750.     STATE_IDLEb  = (0x1 << 12),
  751.     SECTOR_ERASE         = (0x1 << 13),
  752.     BYTE_CNT     = (0xff << 16),
  753.     SCK_PRESCALE         = (0xff << 24)
  754. };
  755.  
  756. enum VIPH_CONTROL_BITS {
  757.     /* VIPH_CONTROL */
  758.     VIPH_CLK_SEL         = (0xff << 0),
  759.     VIPH_REG_RDY         = (0x1 << 13),
  760.     VIPH_MAX_WAIT        = (0xf << 16),
  761.     VIPH_DMA_MODE        = (0x1 << 20),
  762.     VIPH_EN      = (0x1 << 21),
  763.     VIPH_DV0_WID         = (0x1 << 24),
  764.     VIPH_DV1_WID         = (0x1 << 25),
  765.     VIPH_DV2_WID         = (0x1 << 26),
  766.     VIPH_DV3_WID         = (0x1 << 27),
  767.     VIPH_PWR_DOWN        = (0x1 << 28),
  768.     VIPH_PWR_DOWN_AK     = (0x1 << 28),
  769.     VIPH_VIPCLK_DIS      = (0x1 << 29)
  770. };
  771.  
  772. enum VGA_RENDER_CONTROL_BITS {
  773.     /* VGA_RENDER_CONTROL */
  774.     VGA_BLINK_RATE              = (0x1f << 0),
  775.     VGA_BLINK_MODE              = (0x3 << 5),
  776.     VGA_CURSOR_BLINK_INVERT      = (0x1 << 7),
  777.     VGA_EXTD_ADDR_COUNT_ENABLE   = (0x1 << 8),
  778.     VGA_VSTATUS_CNTL            = (0x3 << 16),
  779.     VGA_LOCK_8DOT               = (0x1 << 24),
  780.     VGAREG_LINECMP_COMPATIBILITY_SEL     = (0x1 << 25)
  781. };
  782.  
  783. enum D1VGA_CONTROL_BITS {
  784.     /* D1VGA_CONTROL */
  785.     D1VGA_MODE_ENABLE           = (0x1 << 0),
  786.     D1VGA_TIMING_SELECT         = (0x1 << 8),
  787.     D1VGA_SYNC_POLARITY_SELECT   = (0x1 << 9),
  788.     D1VGA_OVERSCAN_TIMING_SELECT         = (0x1 << 10),
  789.     D1VGA_OVERSCAN_COLOR_EN      = (0x1 << 16),
  790.     D1VGA_ROTATE                = (0x3 << 24)
  791. };
  792.  
  793. enum D2VGA_CONTROL_BITS {
  794.     /* D2VGA_CONTROL */
  795.     D2VGA_MODE_ENABLE    = (0x1 << 0),
  796.     D2VGA_TIMING_SELECT  = (0x1 << 8),
  797.     D2VGA_SYNC_POLARITY_SELECT   = (0x1 << 9),
  798.     D2VGA_OVERSCAN_TIMING_SELECT         = (0x1 << 10),
  799.     D2VGA_OVERSCAN_COLOR_EN      = (0x1 << 16),
  800.     D2VGA_ROTATE         = (0x3 << 24)
  801. };
  802.  
  803. enum {
  804.     /* CLOCK_CNTL_INDEX */
  805.     PLL_ADDR     = (0x3f << 0),
  806.     PLL_WR_EN    = (0x1 << 7),
  807.     PPLL_DIV_SEL         = (0x3 << 8),
  808.  
  809.     /* CLOCK_CNTL_DATA */
  810. #define PLL_DATA         0xffffffff
  811.  
  812.     /* SPLL_FUNC_CNTL */
  813.     SPLL_CHG_STATUS      = (0x1 << 29),
  814.     SPLL_BYPASS_EN       = (0x1 << 25),
  815.  
  816.     /* MC_IND_INDEX */
  817.     MC_IND_ADDR          = (0xffff << 0),
  818.     MC_IND_SEQ_RBS_0     = (0x1 << 16),
  819.     MC_IND_SEQ_RBS_1     = (0x1 << 17),
  820.     MC_IND_SEQ_RBS_2     = (0x1 << 18),
  821.     MC_IND_SEQ_RBS_3     = (0x1 << 19),
  822.     MC_IND_AIC_RBS       = (0x1 << 20),
  823.     MC_IND_CITF_ARB0     = (0x1 << 21),
  824.     MC_IND_CITF_ARB1     = (0x1 << 22),
  825.     MC_IND_WR_EN         = (0x1 << 23),
  826.     MC_IND_RD_INV        = (0x1 << 24)
  827. #define MC_IND_ALL (MC_IND_SEQ_RBS_0 |  MC_IND_SEQ_RBS_1 \
  828.                     |  MC_IND_SEQ_RBS_2 |  MC_IND_SEQ_RBS_3 \
  829.                     |  MC_IND_AIC_RBS | MC_IND_CITF_ARB0 | MC_IND_CITF_ARB1)
  830.  
  831.     /* MC_IND_DATA */
  832. #define MC_IND_DATA_BIT  0xffffffff
  833. };
  834.  
  835.  
  836. #endif /* _RHD_REGS_H */
  837.