1bf215546Sopenharmony_ci<?xml version="1.0" encoding="UTF-8"?> 2bf215546Sopenharmony_ci<database xmlns="http://nouveau.freedesktop.org/" 3bf215546Sopenharmony_cixmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4bf215546Sopenharmony_cixsi:schemaLocation="http://nouveau.freedesktop.org/ rules-ng.xsd"> 5bf215546Sopenharmony_ci<import file="freedreno_copyright.xml"/> 6bf215546Sopenharmony_ci<import file="mdp/mdp_common.xml"/> 7bf215546Sopenharmony_ci 8bf215546Sopenharmony_ci<domain name="MDP4" width="32"> 9bf215546Sopenharmony_ci <enum name="mdp4_pipe"> 10bf215546Sopenharmony_ci <brief>pipe names, index into PIPE[]</brief> 11bf215546Sopenharmony_ci <value name="VG1" value="0"/> 12bf215546Sopenharmony_ci <value name="VG2" value="1"/> 13bf215546Sopenharmony_ci <value name="RGB1" value="2"/> 14bf215546Sopenharmony_ci <value name="RGB2" value="3"/> 15bf215546Sopenharmony_ci <value name="RGB3" value="4"/> 16bf215546Sopenharmony_ci <value name="VG3" value="5"/> 17bf215546Sopenharmony_ci <value name="VG4" value="6"/> 18bf215546Sopenharmony_ci </enum> 19bf215546Sopenharmony_ci 20bf215546Sopenharmony_ci <enum name="mdp4_mixer"> 21bf215546Sopenharmony_ci <value name="MIXER0" value="0"/> 22bf215546Sopenharmony_ci <value name="MIXER1" value="1"/> 23bf215546Sopenharmony_ci <value name="MIXER2" value="2"/> 24bf215546Sopenharmony_ci </enum> 25bf215546Sopenharmony_ci 26bf215546Sopenharmony_ci <enum name="mdp4_intf"> 27bf215546Sopenharmony_ci <!-- 28bf215546Sopenharmony_ci A bit confusing the enums for interface selection: 29bf215546Sopenharmony_ci enum { 30bf215546Sopenharmony_ci LCDC_RGB_INTF, /* 0 */ 31bf215546Sopenharmony_ci DTV_INTF = LCDC_RGB_INTF, /* 0 */ 32bf215546Sopenharmony_ci MDDI_LCDC_INTF, /* 1 */ 33bf215546Sopenharmony_ci MDDI_INTF, /* 2 */ 34bf215546Sopenharmony_ci EBI2_INTF, /* 3 */ 35bf215546Sopenharmony_ci TV_INTF = EBI2_INTF, /* 3 */ 36bf215546Sopenharmony_ci DSI_VIDEO_INTF, 37bf215546Sopenharmony_ci DSI_CMD_INTF 38bf215546Sopenharmony_ci }; 39bf215546Sopenharmony_ci there is some overlap, and not all the values end up getting 40bf215546Sopenharmony_ci written to hw (mdp4_display_intf_sel() remaps the last two 41bf215546Sopenharmony_ci values to MDDI_LCDC_INTF/MDDI_INTF with extra bits set).. so 42bf215546Sopenharmony_ci taking some liberties in guessing the actual meanings/names: 43bf215546Sopenharmony_ci --> 44bf215546Sopenharmony_ci <value name="INTF_LCDC_DTV" value="0"/> <!-- LCDC RGB or DTV (external) --> 45bf215546Sopenharmony_ci <value name="INTF_DSI_VIDEO" value="1"/> 46bf215546Sopenharmony_ci <value name="INTF_DSI_CMD" value="2"/> 47bf215546Sopenharmony_ci <value name="INTF_EBI2_TV" value="3"/> <!-- EBI2 or TV (external) --> 48bf215546Sopenharmony_ci </enum> 49bf215546Sopenharmony_ci <enum name="mdp4_cursor_format"> 50bf215546Sopenharmony_ci <value name="CURSOR_ARGB" value="1"/> 51bf215546Sopenharmony_ci <value name="CURSOR_XRGB" value="2"/> 52bf215546Sopenharmony_ci </enum> 53bf215546Sopenharmony_ci <enum name="mdp4_frame_format"> 54bf215546Sopenharmony_ci <value name="FRAME_LINEAR" value="0"/> 55bf215546Sopenharmony_ci <value name="FRAME_TILE_ARGB_4X4" value="1"/> 56bf215546Sopenharmony_ci <value name="FRAME_TILE_YCBCR_420" value="2"/> 57bf215546Sopenharmony_ci </enum> 58bf215546Sopenharmony_ci <enum name="mdp4_scale_unit"> 59bf215546Sopenharmony_ci <value name="SCALE_FIR" value="0"/> 60bf215546Sopenharmony_ci <value name="SCALE_MN_PHASE" value="1"/> 61bf215546Sopenharmony_ci <value name="SCALE_PIXEL_RPT" value="2"/> 62bf215546Sopenharmony_ci </enum> 63bf215546Sopenharmony_ci 64bf215546Sopenharmony_ci <bitset name="mdp4_layermixer_in_cfg" inline="yes"> 65bf215546Sopenharmony_ci <brief>appears to map pipe to mixer stage</brief> 66bf215546Sopenharmony_ci <bitfield name="PIPE0" low="0" high="2" type="mdp_mixer_stage_id"/> 67bf215546Sopenharmony_ci <bitfield name="PIPE0_MIXER1" pos="3" type="boolean"/> 68bf215546Sopenharmony_ci <bitfield name="PIPE1" low="4" high="6" type="mdp_mixer_stage_id"/> 69bf215546Sopenharmony_ci <bitfield name="PIPE1_MIXER1" pos="7" type="boolean"/> 70bf215546Sopenharmony_ci <bitfield name="PIPE2" low="8" high="10" type="mdp_mixer_stage_id"/> 71bf215546Sopenharmony_ci <bitfield name="PIPE2_MIXER1" pos="11" type="boolean"/> 72bf215546Sopenharmony_ci <bitfield name="PIPE3" low="12" high="14" type="mdp_mixer_stage_id"/> 73bf215546Sopenharmony_ci <bitfield name="PIPE3_MIXER1" pos="15" type="boolean"/> 74bf215546Sopenharmony_ci <bitfield name="PIPE4" low="16" high="18" type="mdp_mixer_stage_id"/> 75bf215546Sopenharmony_ci <bitfield name="PIPE4_MIXER1" pos="19" type="boolean"/> 76bf215546Sopenharmony_ci <bitfield name="PIPE5" low="20" high="22" type="mdp_mixer_stage_id"/> 77bf215546Sopenharmony_ci <bitfield name="PIPE5_MIXER1" pos="23" type="boolean"/> 78bf215546Sopenharmony_ci <bitfield name="PIPE6" low="24" high="26" type="mdp_mixer_stage_id"/> 79bf215546Sopenharmony_ci <bitfield name="PIPE6_MIXER1" pos="27" type="boolean"/> 80bf215546Sopenharmony_ci <bitfield name="PIPE7" low="28" high="30" type="mdp_mixer_stage_id"/> 81bf215546Sopenharmony_ci <bitfield name="PIPE7_MIXER1" pos="31" type="boolean"/> 82bf215546Sopenharmony_ci </bitset> 83bf215546Sopenharmony_ci 84bf215546Sopenharmony_ci <bitset name="MDP4_IRQ"> 85bf215546Sopenharmony_ci <bitfield name="OVERLAY0_DONE" pos="0" type="boolean"/> 86bf215546Sopenharmony_ci <bitfield name="OVERLAY1_DONE" pos="1" type="boolean"/> 87bf215546Sopenharmony_ci <bitfield name="DMA_S_DONE" pos="2" type="boolean"/> 88bf215546Sopenharmony_ci <bitfield name="DMA_E_DONE" pos="3" type="boolean"/> 89bf215546Sopenharmony_ci <bitfield name="DMA_P_DONE" pos="4" type="boolean"/> 90bf215546Sopenharmony_ci <bitfield name="VG1_HISTOGRAM" pos="5" type="boolean"/> 91bf215546Sopenharmony_ci <bitfield name="VG2_HISTOGRAM" pos="6" type="boolean"/> 92bf215546Sopenharmony_ci <bitfield name="PRIMARY_VSYNC" pos="7" type="boolean"/> 93bf215546Sopenharmony_ci <bitfield name="PRIMARY_INTF_UDERRUN" pos="8" type="boolean"/> 94bf215546Sopenharmony_ci <bitfield name="EXTERNAL_VSYNC" pos="9" type="boolean"/> 95bf215546Sopenharmony_ci <bitfield name="EXTERNAL_INTF_UDERRUN" pos="10" type="boolean"/> 96bf215546Sopenharmony_ci <bitfield name="PRIMARY_RDPTR" pos="11" type="boolean"/> <!-- read pointer --> 97bf215546Sopenharmony_ci <bitfield name="DMA_P_HISTOGRAM" pos="17" type="boolean"/> 98bf215546Sopenharmony_ci <bitfield name="DMA_S_HISTOGRAM" pos="26" type="boolean"/> 99bf215546Sopenharmony_ci <bitfield name="OVERLAY2_DONE" pos="30" type="boolean"/> 100bf215546Sopenharmony_ci </bitset> 101bf215546Sopenharmony_ci 102bf215546Sopenharmony_ci <group name="mdp4_csc"> 103bf215546Sopenharmony_ci <array offset="0x400" name="MV" length="9" stride="4"> 104bf215546Sopenharmony_ci <reg32 offset="0" name="VAL"/> 105bf215546Sopenharmony_ci </array> 106bf215546Sopenharmony_ci <array offset="0x500" name="PRE_BV" length="3" stride="4"> 107bf215546Sopenharmony_ci <reg32 offset="0" name="VAL"/> 108bf215546Sopenharmony_ci </array> 109bf215546Sopenharmony_ci <array offset="0x580" name="POST_BV" length="3" stride="4"> 110bf215546Sopenharmony_ci <reg32 offset="0" name="VAL"/> 111bf215546Sopenharmony_ci </array> 112bf215546Sopenharmony_ci <array offset="0x600" name="PRE_LV" length="6" stride="4"> 113bf215546Sopenharmony_ci <reg32 offset="0" name="VAL"/> 114bf215546Sopenharmony_ci </array> 115bf215546Sopenharmony_ci <array offset="0x680" name="POST_LV" length="6" stride="4"> 116bf215546Sopenharmony_ci <reg32 offset="0" name="VAL"/> 117bf215546Sopenharmony_ci </array> 118bf215546Sopenharmony_ci </group> 119bf215546Sopenharmony_ci 120bf215546Sopenharmony_ci <reg32 offset="0x00000" name="VERSION"> 121bf215546Sopenharmony_ci <!-- 122bf215546Sopenharmony_ci from mdp_probe() we can see minor rev starts at 16.. assume 123bf215546Sopenharmony_ci major is above that.. not sure the rest of bits but doesn't 124bf215546Sopenharmony_ci really seem to matter 125bf215546Sopenharmony_ci --> 126bf215546Sopenharmony_ci <bitfield name="MINOR" low="16" high="23" type="uint"/> 127bf215546Sopenharmony_ci <bitfield name="MAJOR" low="24" high="31" type="uint"/> 128bf215546Sopenharmony_ci </reg32> 129bf215546Sopenharmony_ci <reg32 offset="0x00004" name="OVLP0_KICK"/> 130bf215546Sopenharmony_ci <reg32 offset="0x00008" name="OVLP1_KICK"/> 131bf215546Sopenharmony_ci <reg32 offset="0x000d0" name="OVLP2_KICK"/> 132bf215546Sopenharmony_ci <reg32 offset="0x0000c" name="DMA_P_KICK"/> 133bf215546Sopenharmony_ci <reg32 offset="0x00010" name="DMA_S_KICK"/> 134bf215546Sopenharmony_ci <reg32 offset="0x00014" name="DMA_E_KICK"/> 135bf215546Sopenharmony_ci <reg32 offset="0x00018" name="DISP_STATUS"/> 136bf215546Sopenharmony_ci 137bf215546Sopenharmony_ci <reg32 offset="0x00038" name="DISP_INTF_SEL"> 138bf215546Sopenharmony_ci <bitfield name="PRIM" low="0" high="1" type="mdp4_intf"/> 139bf215546Sopenharmony_ci <bitfield name="SEC" low="2" high="3" type="mdp4_intf"/> 140bf215546Sopenharmony_ci <bitfield name="EXT" low="4" high="5" type="mdp4_intf"/> 141bf215546Sopenharmony_ci <bitfield name="DSI_VIDEO" pos="6" type="boolean"/> 142bf215546Sopenharmony_ci <bitfield name="DSI_CMD" pos="7" type="boolean"/> 143bf215546Sopenharmony_ci </reg32> 144bf215546Sopenharmony_ci <reg32 offset="0x0003c" name="RESET_STATUS"/> <!-- only mdp4 >v2.1 --> 145bf215546Sopenharmony_ci <reg32 offset="0x0004c" name="READ_CNFG"/> <!-- something about # of pending requests.. --> 146bf215546Sopenharmony_ci <reg32 offset="0x00050" name="INTR_ENABLE" type="MDP4_IRQ"/> 147bf215546Sopenharmony_ci <reg32 offset="0x00054" name="INTR_STATUS" type="MDP4_IRQ"/> 148bf215546Sopenharmony_ci <reg32 offset="0x00058" name="INTR_CLEAR" type="MDP4_IRQ"/> 149bf215546Sopenharmony_ci <reg32 offset="0x00060" name="EBI2_LCD0"/> 150bf215546Sopenharmony_ci <reg32 offset="0x00064" name="EBI2_LCD1"/> 151bf215546Sopenharmony_ci <reg32 offset="0x00070" name="PORTMAP_MODE"/> 152bf215546Sopenharmony_ci 153bf215546Sopenharmony_ci <!-- mdp chip-select controller: --> 154bf215546Sopenharmony_ci <reg32 offset="0x000c0" name="CS_CONTROLLER0"/> 155bf215546Sopenharmony_ci <reg32 offset="0x000c4" name="CS_CONTROLLER1"/> 156bf215546Sopenharmony_ci 157bf215546Sopenharmony_ci <reg32 offset="0x100f0" name="LAYERMIXER2_IN_CFG" type="mdp4_layermixer_in_cfg"/> 158bf215546Sopenharmony_ci <reg32 offset="0x100fc" name="LAYERMIXER_IN_CFG_UPDATE_METHOD"/> 159bf215546Sopenharmony_ci <reg32 offset="0x10100" name="LAYERMIXER_IN_CFG" type="mdp4_layermixer_in_cfg"/> 160bf215546Sopenharmony_ci 161bf215546Sopenharmony_ci <reg32 offset="0x30050" name="VG2_SRC_FORMAT"/> 162bf215546Sopenharmony_ci <reg32 offset="0x31008" name="VG2_CONST_COLOR"/> 163bf215546Sopenharmony_ci 164bf215546Sopenharmony_ci <reg32 offset="0x18000" name="OVERLAY_FLUSH"> 165bf215546Sopenharmony_ci <bitfield name="OVLP0" pos="0" type="boolean"/> 166bf215546Sopenharmony_ci <bitfield name="OVLP1" pos="1" type="boolean"/> 167bf215546Sopenharmony_ci <bitfield name="VG1" pos="2" type="boolean"/> 168bf215546Sopenharmony_ci <bitfield name="VG2" pos="3" type="boolean"/> 169bf215546Sopenharmony_ci <bitfield name="RGB1" pos="4" type="boolean"/> 170bf215546Sopenharmony_ci <bitfield name="RGB2" pos="5" type="boolean"/> 171bf215546Sopenharmony_ci </reg32> 172bf215546Sopenharmony_ci 173bf215546Sopenharmony_ci <array offsets="0x10000,0x18000,0x88000" name="OVLP" length="3" stride="0x8000"> 174bf215546Sopenharmony_ci <reg32 offset="0x0004" name="CFG"/> 175bf215546Sopenharmony_ci <reg32 offset="0x0008" name="SIZE" type="reg_wh"/> 176bf215546Sopenharmony_ci <reg32 offset="0x000c" name="BASE"/> 177bf215546Sopenharmony_ci <reg32 offset="0x0010" name="STRIDE" type="uint"/> 178bf215546Sopenharmony_ci <reg32 offset="0x0014" name="OPMODE"/> 179bf215546Sopenharmony_ci 180bf215546Sopenharmony_ci <array offsets="0x0104,0x0124,0x0144,0x0160" name="STAGE" length="4" stride="0x1c"> 181bf215546Sopenharmony_ci <reg32 offset="0x00" name="OP"> 182bf215546Sopenharmony_ci <bitfield name="FG_ALPHA" low="0" high="1" type="mdp_alpha_type"/> 183bf215546Sopenharmony_ci <bitfield name="FG_INV_ALPHA" pos="2" type="boolean"/> 184bf215546Sopenharmony_ci <bitfield name="FG_MOD_ALPHA" pos="3" type="boolean"/> 185bf215546Sopenharmony_ci <bitfield name="BG_ALPHA" low="4" high="5" type="mdp_alpha_type"/> 186bf215546Sopenharmony_ci <bitfield name="BG_INV_ALPHA" pos="6" type="boolean"/> 187bf215546Sopenharmony_ci <bitfield name="BG_MOD_ALPHA" pos="7" type="boolean"/> 188bf215546Sopenharmony_ci <bitfield name="FG_TRANSP" pos="8" type="boolean"/> 189bf215546Sopenharmony_ci <bitfield name="BG_TRANSP" pos="9" type="boolean"/> 190bf215546Sopenharmony_ci </reg32> 191bf215546Sopenharmony_ci <reg32 offset="0x04" name="FG_ALPHA"/> 192bf215546Sopenharmony_ci <reg32 offset="0x08" name="BG_ALPHA"/> 193bf215546Sopenharmony_ci <reg32 offset="0x0c" name="TRANSP_LOW0"/> 194bf215546Sopenharmony_ci <reg32 offset="0x10" name="TRANSP_LOW1"/> 195bf215546Sopenharmony_ci <reg32 offset="0x14" name="TRANSP_HIGH0"/> 196bf215546Sopenharmony_ci <reg32 offset="0x18" name="TRANSP_HIGH1"/> 197bf215546Sopenharmony_ci </array> 198bf215546Sopenharmony_ci 199bf215546Sopenharmony_ci <array offsets="0x1004,0x1404,0x1804,0x1b84" name="STAGE_CO3" length="4" stride="4"> 200bf215546Sopenharmony_ci <reg32 offset="0" name="SEL"> 201bf215546Sopenharmony_ci <bitfield name="FG_ALPHA" pos="0" type="boolean"/> <!-- otherwise bg alpha --> 202bf215546Sopenharmony_ci </reg32> 203bf215546Sopenharmony_ci </array> 204bf215546Sopenharmony_ci 205bf215546Sopenharmony_ci <reg32 offset="0x0180" name="TRANSP_LOW0"/> 206bf215546Sopenharmony_ci <reg32 offset="0x0184" name="TRANSP_LOW1"/> 207bf215546Sopenharmony_ci <reg32 offset="0x0188" name="TRANSP_HIGH0"/> 208bf215546Sopenharmony_ci <reg32 offset="0x018c" name="TRANSP_HIGH1"/> 209bf215546Sopenharmony_ci 210bf215546Sopenharmony_ci <reg32 offset="0x0200" name="CSC_CONFIG"/> 211bf215546Sopenharmony_ci 212bf215546Sopenharmony_ci <array offset="0x2000" name="CSC" length="1" stride="0x700"> 213bf215546Sopenharmony_ci <use-group ref="mdp4_csc"/> 214bf215546Sopenharmony_ci </array> 215bf215546Sopenharmony_ci </array> 216bf215546Sopenharmony_ci 217bf215546Sopenharmony_ci <enum name="mdp4_dma"> 218bf215546Sopenharmony_ci <value name="DMA_P" value="0"/> 219bf215546Sopenharmony_ci <value name="DMA_S" value="1"/> 220bf215546Sopenharmony_ci <value name="DMA_E" value="2"/> 221bf215546Sopenharmony_ci </enum> 222bf215546Sopenharmony_ci <reg32 offset="0x90070" name="DMA_P_OP_MODE"/> 223bf215546Sopenharmony_ci <array offset="0x94800" name="LUTN" length="2" stride="0x400"> 224bf215546Sopenharmony_ci <array offset="0" name="LUT" length="0x100" stride="4"> 225bf215546Sopenharmony_ci <reg32 offset="0" name="VAL"/> 226bf215546Sopenharmony_ci </array> 227bf215546Sopenharmony_ci </array> 228bf215546Sopenharmony_ci <reg32 offset="0xa0028" name="DMA_S_OP_MODE"/> 229bf215546Sopenharmony_ci <!-- I guess if DMA_S has an OP_MODE, it must have a LUT too.. --> 230bf215546Sopenharmony_ci <reg32 offset="0xb0070" name="DMA_E_QUANT" length="3" stride="4"/> 231bf215546Sopenharmony_ci <array offsets="0x90000,0xa0000,0xb0000" name="DMA" length="3" stride="0x10000" index="mdp4_dma"> 232bf215546Sopenharmony_ci <reg32 offset="0x0000" name="CONFIG"> 233bf215546Sopenharmony_ci <bitfield name="G_BPC" low="0" high="1" type="mdp_bpc"/> 234bf215546Sopenharmony_ci <bitfield name="B_BPC" low="2" high="3" type="mdp_bpc"/> 235bf215546Sopenharmony_ci <bitfield name="R_BPC" low="4" high="5" type="mdp_bpc"/> 236bf215546Sopenharmony_ci <bitfield name="PACK_ALIGN_MSB" pos="7" type="boolean"/> 237bf215546Sopenharmony_ci <bitfield name="PACK" low="8" high="15"/> 238bf215546Sopenharmony_ci <!-- bit 24 is DITHER_EN on DMA_P, DEFLKR_EN on DMA_E --> 239bf215546Sopenharmony_ci <bitfield name="DEFLKR_EN" pos="24" type="boolean"/> 240bf215546Sopenharmony_ci <bitfield name="DITHER_EN" pos="24" type="boolean"/> 241bf215546Sopenharmony_ci </reg32> 242bf215546Sopenharmony_ci <reg32 offset="0x0004" name="SRC_SIZE" type="reg_wh"/> 243bf215546Sopenharmony_ci <reg32 offset="0x0008" name="SRC_BASE"/> 244bf215546Sopenharmony_ci <reg32 offset="0x000c" name="SRC_STRIDE" type="uint"/> 245bf215546Sopenharmony_ci <reg32 offset="0x0010" name="DST_SIZE" type="reg_wh"/> 246bf215546Sopenharmony_ci 247bf215546Sopenharmony_ci <reg32 offset="0x0044" name="CURSOR_SIZE"> 248bf215546Sopenharmony_ci <!-- seems the limit is 64x64: --> 249bf215546Sopenharmony_ci <bitfield name="WIDTH" low="0" high="6" type="uint"/> 250bf215546Sopenharmony_ci <bitfield name="HEIGHT" low="16" high="22" type="uint"/> 251bf215546Sopenharmony_ci </reg32> 252bf215546Sopenharmony_ci <reg32 offset="0x0048" name="CURSOR_BASE"/> 253bf215546Sopenharmony_ci <reg32 offset="0x004c" name="CURSOR_POS"> 254bf215546Sopenharmony_ci <bitfield name="X" low="0" high="15" type="uint"/> 255bf215546Sopenharmony_ci <bitfield name="Y" low="16" high="31" type="uint"/> 256bf215546Sopenharmony_ci </reg32> 257bf215546Sopenharmony_ci <reg32 offset="0x0060" name="CURSOR_BLEND_CONFIG"> 258bf215546Sopenharmony_ci <bitfield name="CURSOR_EN" pos="0" type="boolean"/> 259bf215546Sopenharmony_ci <bitfield name="FORMAT" low="1" high="2" type="mdp4_cursor_format"/> 260bf215546Sopenharmony_ci <bitfield name="TRANSP_EN" pos="3" type="boolean"/> 261bf215546Sopenharmony_ci </reg32> 262bf215546Sopenharmony_ci <reg32 offset="0x0064" name="CURSOR_BLEND_PARAM"/> 263bf215546Sopenharmony_ci <reg32 offset="0x0068" name="BLEND_TRANS_LOW"/> 264bf215546Sopenharmony_ci <reg32 offset="0x006c" name="BLEND_TRANS_HIGH"/> 265bf215546Sopenharmony_ci 266bf215546Sopenharmony_ci <reg32 offset="0x1004" name="FETCH_CONFIG"/> 267bf215546Sopenharmony_ci <array offset="0x3000" name="CSC" length="1" stride="0x700"> 268bf215546Sopenharmony_ci <use-group ref="mdp4_csc"/> 269bf215546Sopenharmony_ci </array> 270bf215546Sopenharmony_ci </array> 271bf215546Sopenharmony_ci 272bf215546Sopenharmony_ci <!-- 273bf215546Sopenharmony_ci TODO length should be 7, but that would collide w/ OVLP2..!?! 274bf215546Sopenharmony_ci this register map is a bit strange.. 275bf215546Sopenharmony_ci --> 276bf215546Sopenharmony_ci <array offset="0x20000" name="PIPE" length="6" stride="0x10000" index="mdp4_pipe"> 277bf215546Sopenharmony_ci <reg32 offset="0x0000" name="SRC_SIZE" type="reg_wh"/> 278bf215546Sopenharmony_ci <reg32 offset="0x0004" name="SRC_XY" type="reg_xy"/> 279bf215546Sopenharmony_ci <reg32 offset="0x0008" name="DST_SIZE" type="reg_wh"/> 280bf215546Sopenharmony_ci <reg32 offset="0x000c" name="DST_XY" type="reg_xy"/> 281bf215546Sopenharmony_ci <reg32 offset="0x0010" name="SRCP0_BASE"/> 282bf215546Sopenharmony_ci <reg32 offset="0x0014" name="SRCP1_BASE"/> 283bf215546Sopenharmony_ci <reg32 offset="0x0018" name="SRCP2_BASE"/> 284bf215546Sopenharmony_ci <reg32 offset="0x001c" name="SRCP3_BASE"/> 285bf215546Sopenharmony_ci <reg32 offset="0x0040" name="SRC_STRIDE_A"> 286bf215546Sopenharmony_ci <bitfield name="P0" low="0" high="15" type="uint"/> 287bf215546Sopenharmony_ci <bitfield name="P1" low="16" high="31" type="uint"/> 288bf215546Sopenharmony_ci </reg32> 289bf215546Sopenharmony_ci <reg32 offset="0x0044" name="SRC_STRIDE_B"> 290bf215546Sopenharmony_ci <bitfield name="P2" low="0" high="15" type="uint"/> 291bf215546Sopenharmony_ci <bitfield name="P3" low="16" high="31" type="uint"/> 292bf215546Sopenharmony_ci </reg32> 293bf215546Sopenharmony_ci <reg32 offset="0x0048" name="SSTILE_FRAME_SIZE" type="reg_wh"/> 294bf215546Sopenharmony_ci <reg32 offset="0x0050" name="SRC_FORMAT"> 295bf215546Sopenharmony_ci <bitfield name="G_BPC" low="0" high="1" type="mdp_bpc"/> 296bf215546Sopenharmony_ci <bitfield name="B_BPC" low="2" high="3" type="mdp_bpc"/> 297bf215546Sopenharmony_ci <bitfield name="R_BPC" low="4" high="5" type="mdp_bpc"/> 298bf215546Sopenharmony_ci <bitfield name="A_BPC" low="6" high="7" type="mdp_bpc_alpha"/> 299bf215546Sopenharmony_ci <bitfield name="ALPHA_ENABLE" pos="8" type="boolean"/> 300bf215546Sopenharmony_ci <bitfield name="CPP" low="9" high="10" type="uint"> 301bf215546Sopenharmony_ci <brief>8bit characters per pixel minus 1</brief> 302bf215546Sopenharmony_ci </bitfield> 303bf215546Sopenharmony_ci <bitfield name="ROTATED_90" pos="12" type="boolean"/> 304bf215546Sopenharmony_ci <bitfield name="UNPACK_COUNT" low="13" high="14" type="uint"/> 305bf215546Sopenharmony_ci <bitfield name="UNPACK_TIGHT" pos="17" type="boolean"/> 306bf215546Sopenharmony_ci <bitfield name="UNPACK_ALIGN_MSB" pos="18" type="boolean"/> 307bf215546Sopenharmony_ci <bitfield name="FETCH_PLANES" low="19" high="20" type="uint"/> 308bf215546Sopenharmony_ci <bitfield name="SOLID_FILL" pos="22" type="boolean"/> 309bf215546Sopenharmony_ci <bitfield name="CHROMA_SAMP" low="26" high="27" type="mdp_chroma_samp_type"/> 310bf215546Sopenharmony_ci <bitfield name="FRAME_FORMAT" low="29" high="30" type="mdp4_frame_format"/> 311bf215546Sopenharmony_ci </reg32> 312bf215546Sopenharmony_ci <reg32 offset="0x0054" name="SRC_UNPACK" type="mdp_unpack_pattern"/> 313bf215546Sopenharmony_ci <reg32 offset="0x0058" name="OP_MODE"> 314bf215546Sopenharmony_ci <bitfield name="SCALEX_EN" pos="0" type="boolean"/> 315bf215546Sopenharmony_ci <bitfield name="SCALEY_EN" pos="1" type="boolean"/> 316bf215546Sopenharmony_ci <bitfield name="SCALEX_UNIT_SEL" low="2" high="3" type="mdp4_scale_unit"/> 317bf215546Sopenharmony_ci <bitfield name="SCALEY_UNIT_SEL" low="4" high="5" type="mdp4_scale_unit"/> 318bf215546Sopenharmony_ci <bitfield name="SRC_YCBCR" pos="9" type="boolean"/> 319bf215546Sopenharmony_ci <bitfield name="DST_YCBCR" pos="10" type="boolean"/> 320bf215546Sopenharmony_ci <bitfield name="CSC_EN" pos="11" type="boolean"/> 321bf215546Sopenharmony_ci <bitfield name="FLIP_LR" pos="13" type="boolean"/> 322bf215546Sopenharmony_ci <bitfield name="FLIP_UD" pos="14" type="boolean"/> 323bf215546Sopenharmony_ci <bitfield name="DITHER_EN" pos="15" type="boolean"/> 324bf215546Sopenharmony_ci <bitfield name="IGC_LUT_EN" pos="16" type="boolean"/> 325bf215546Sopenharmony_ci <bitfield name="DEINT_EN" pos="18" type="boolean"/> 326bf215546Sopenharmony_ci <bitfield name="DEINT_ODD_REF" pos="19" type="boolean"/> 327bf215546Sopenharmony_ci </reg32> 328bf215546Sopenharmony_ci <reg32 offset="0x005c" name="PHASEX_STEP"/> 329bf215546Sopenharmony_ci <reg32 offset="0x0060" name="PHASEY_STEP"/> 330bf215546Sopenharmony_ci <reg32 offset="0x1004" name="FETCH_CONFIG"/> 331bf215546Sopenharmony_ci <reg32 offset="0x1008" name="SOLID_COLOR"/> 332bf215546Sopenharmony_ci 333bf215546Sopenharmony_ci <array offset="0x4000" name="CSC" length="1" stride="0x700"> 334bf215546Sopenharmony_ci <use-group ref="mdp4_csc"/> 335bf215546Sopenharmony_ci </array> 336bf215546Sopenharmony_ci </array> 337bf215546Sopenharmony_ci 338bf215546Sopenharmony_ci <!-- 339bf215546Sopenharmony_ci ENCODERS 340bf215546Sopenharmony_ci LCDC and DSI seem the same, DTV is just slightly different.. 341bf215546Sopenharmony_ci --> 342bf215546Sopenharmony_ci 343bf215546Sopenharmony_ci <bitset name="mdp4_ctrl_polarity" inline="yes"> 344bf215546Sopenharmony_ci <!-- not entirely sure if these bits mean hi or low.. --> 345bf215546Sopenharmony_ci <bitfield name="HSYNC_LOW" pos="0" type="boolean"/> 346bf215546Sopenharmony_ci <bitfield name="VSYNC_LOW" pos="1" type="boolean"/> 347bf215546Sopenharmony_ci <bitfield name="DATA_EN_LOW" pos="2" type="boolean"/> 348bf215546Sopenharmony_ci </bitset> 349bf215546Sopenharmony_ci 350bf215546Sopenharmony_ci <bitset name="mdp4_active_hctl" inline="yes"> 351bf215546Sopenharmony_ci <bitfield name="START" low="0" high="14" type="uint"/> 352bf215546Sopenharmony_ci <bitfield name="END" low="16" high="30" type="uint"/> 353bf215546Sopenharmony_ci <bitfield name="ACTIVE_START_X" pos="31" type="boolean"/> 354bf215546Sopenharmony_ci </bitset> 355bf215546Sopenharmony_ci 356bf215546Sopenharmony_ci <bitset name="mdp4_display_hctl" inline="yes"> 357bf215546Sopenharmony_ci <bitfield name="START" low="0" high="15" type="uint"/> 358bf215546Sopenharmony_ci <bitfield name="END" low="16" high="31" type="uint"/> 359bf215546Sopenharmony_ci </bitset> 360bf215546Sopenharmony_ci 361bf215546Sopenharmony_ci <bitset name="mdp4_hsync_ctrl" inline="yes"> 362bf215546Sopenharmony_ci <bitfield name="PULSEW" low="0" high="15" type="uint"/> 363bf215546Sopenharmony_ci <bitfield name="PERIOD" low="16" high="31" type="uint"/> 364bf215546Sopenharmony_ci </bitset> 365bf215546Sopenharmony_ci 366bf215546Sopenharmony_ci <bitset name="mdp4_underflow_clr" inline="yes"> 367bf215546Sopenharmony_ci <bitfield name="COLOR" low="0" high="23"/> 368bf215546Sopenharmony_ci <bitfield name="ENABLE_RECOVERY" pos="31" type="boolean"/> 369bf215546Sopenharmony_ci </bitset> 370bf215546Sopenharmony_ci 371bf215546Sopenharmony_ci <!-- offset is 0xe0000 on !mdp4.. --> 372bf215546Sopenharmony_ci <array offset="0xc0000" name="LCDC" length="1" stride="0x1000"> 373bf215546Sopenharmony_ci <reg32 offset="0x0000" name="ENABLE"/> 374bf215546Sopenharmony_ci <reg32 offset="0x0004" name="HSYNC_CTRL" type="mdp4_hsync_ctrl"/> 375bf215546Sopenharmony_ci <reg32 offset="0x0008" name="VSYNC_PERIOD" type="uint"/> 376bf215546Sopenharmony_ci <reg32 offset="0x000c" name="VSYNC_LEN" type="uint"/> 377bf215546Sopenharmony_ci <reg32 offset="0x0010" name="DISPLAY_HCTRL" type="mdp4_display_hctl"/> 378bf215546Sopenharmony_ci <reg32 offset="0x0014" name="DISPLAY_VSTART" type="uint"/> 379bf215546Sopenharmony_ci <reg32 offset="0x0018" name="DISPLAY_VEND" type="uint"/> 380bf215546Sopenharmony_ci <reg32 offset="0x001c" name="ACTIVE_HCTL" type="mdp4_active_hctl"/> 381bf215546Sopenharmony_ci <reg32 offset="0x0020" name="ACTIVE_VSTART" type="uint"/> 382bf215546Sopenharmony_ci <reg32 offset="0x0024" name="ACTIVE_VEND" type="uint"/> 383bf215546Sopenharmony_ci <reg32 offset="0x0028" name="BORDER_CLR"/> 384bf215546Sopenharmony_ci <reg32 offset="0x002c" name="UNDERFLOW_CLR" type="mdp4_underflow_clr"/> 385bf215546Sopenharmony_ci <reg32 offset="0x0030" name="HSYNC_SKEW"/> 386bf215546Sopenharmony_ci <reg32 offset="0x0034" name="TEST_CNTL"/> 387bf215546Sopenharmony_ci <reg32 offset="0x0038" name="CTRL_POLARITY" type="mdp4_ctrl_polarity"/> 388bf215546Sopenharmony_ci </array> 389bf215546Sopenharmony_ci 390bf215546Sopenharmony_ci <reg32 offset="0xc2000" name="LCDC_LVDS_INTF_CTL"> 391bf215546Sopenharmony_ci <bitfield name="MODE_SEL" pos="2" type="boolean"/> 392bf215546Sopenharmony_ci <bitfield name="RGB_OUT" pos="3" type="boolean"/> 393bf215546Sopenharmony_ci <bitfield name="CH_SWAP" pos="4" type="boolean"/> 394bf215546Sopenharmony_ci <bitfield name="CH1_RES_BIT" pos="5" type="boolean"/> 395bf215546Sopenharmony_ci <bitfield name="CH2_RES_BIT" pos="6" type="boolean"/> 396bf215546Sopenharmony_ci <bitfield name="ENABLE" pos="7" type="boolean"/> 397bf215546Sopenharmony_ci <bitfield name="CH1_DATA_LANE0_EN" pos="8" type="boolean"/> 398bf215546Sopenharmony_ci <bitfield name="CH1_DATA_LANE1_EN" pos="9" type="boolean"/> 399bf215546Sopenharmony_ci <bitfield name="CH1_DATA_LANE2_EN" pos="10" type="boolean"/> 400bf215546Sopenharmony_ci <bitfield name="CH1_DATA_LANE3_EN" pos="11" type="boolean"/> 401bf215546Sopenharmony_ci <bitfield name="CH2_DATA_LANE0_EN" pos="12" type="boolean"/> 402bf215546Sopenharmony_ci <bitfield name="CH2_DATA_LANE1_EN" pos="13" type="boolean"/> 403bf215546Sopenharmony_ci <bitfield name="CH2_DATA_LANE2_EN" pos="14" type="boolean"/> 404bf215546Sopenharmony_ci <bitfield name="CH2_DATA_LANE3_EN" pos="15" type="boolean"/> 405bf215546Sopenharmony_ci <bitfield name="CH1_CLK_LANE_EN" pos="16" type="boolean"/> 406bf215546Sopenharmony_ci <bitfield name="CH2_CLK_LANE_EN" pos="17" type="boolean"/> 407bf215546Sopenharmony_ci </reg32> 408bf215546Sopenharmony_ci 409bf215546Sopenharmony_ci <array offset="0xc2014" name="LCDC_LVDS_MUX_CTL" length="4" stride="0x8"> 410bf215546Sopenharmony_ci <reg32 offset="0x0" name="3_TO_0"> 411bf215546Sopenharmony_ci <bitfield name="BIT0" low="0" high="7"/> 412bf215546Sopenharmony_ci <bitfield name="BIT1" low="8" high="15"/> 413bf215546Sopenharmony_ci <bitfield name="BIT2" low="16" high="23"/> 414bf215546Sopenharmony_ci <bitfield name="BIT3" low="24" high="31"/> 415bf215546Sopenharmony_ci </reg32> 416bf215546Sopenharmony_ci <reg32 offset="0x4" name="6_TO_4"> 417bf215546Sopenharmony_ci <bitfield name="BIT4" low="0" high="7"/> 418bf215546Sopenharmony_ci <bitfield name="BIT5" low="8" high="15"/> 419bf215546Sopenharmony_ci <bitfield name="BIT6" low="16" high="23"/> 420bf215546Sopenharmony_ci </reg32> 421bf215546Sopenharmony_ci </array> 422bf215546Sopenharmony_ci 423bf215546Sopenharmony_ci <reg32 offset="0xc2034" name="LCDC_LVDS_PHY_RESET"/> 424bf215546Sopenharmony_ci 425bf215546Sopenharmony_ci <reg32 offset="0xc3000" name="LVDS_PHY_PLL_CTRL_0"/> 426bf215546Sopenharmony_ci <reg32 offset="0xc3004" name="LVDS_PHY_PLL_CTRL_1"/> 427bf215546Sopenharmony_ci <reg32 offset="0xc3008" name="LVDS_PHY_PLL_CTRL_2"/> 428bf215546Sopenharmony_ci <reg32 offset="0xc300c" name="LVDS_PHY_PLL_CTRL_3"/> 429bf215546Sopenharmony_ci <reg32 offset="0xc3014" name="LVDS_PHY_PLL_CTRL_5"/> 430bf215546Sopenharmony_ci <reg32 offset="0xc3018" name="LVDS_PHY_PLL_CTRL_6"/> 431bf215546Sopenharmony_ci <reg32 offset="0xc301c" name="LVDS_PHY_PLL_CTRL_7"/> 432bf215546Sopenharmony_ci <reg32 offset="0xc3020" name="LVDS_PHY_PLL_CTRL_8"/> 433bf215546Sopenharmony_ci <reg32 offset="0xc3024" name="LVDS_PHY_PLL_CTRL_9"/> 434bf215546Sopenharmony_ci <reg32 offset="0xc3080" name="LVDS_PHY_PLL_LOCKED"/> 435bf215546Sopenharmony_ci <reg32 offset="0xc3108" name="LVDS_PHY_CFG2"/> 436bf215546Sopenharmony_ci 437bf215546Sopenharmony_ci <reg32 offset="0xc3100" name="LVDS_PHY_CFG0"> 438bf215546Sopenharmony_ci <bitfield name="SERIALIZATION_ENBLE" pos="4" type="boolean"/> 439bf215546Sopenharmony_ci <bitfield name="CHANNEL0" pos="6" type="boolean"/> 440bf215546Sopenharmony_ci <bitfield name="CHANNEL1" pos="7" type="boolean"/> 441bf215546Sopenharmony_ci </reg32> 442bf215546Sopenharmony_ci 443bf215546Sopenharmony_ci <array offset="0xd0000" name="DTV" length="1" stride="0x1000"> 444bf215546Sopenharmony_ci <reg32 offset="0x0000" name="ENABLE"/> 445bf215546Sopenharmony_ci <reg32 offset="0x0004" name="HSYNC_CTRL" type="mdp4_hsync_ctrl"/> 446bf215546Sopenharmony_ci <reg32 offset="0x0008" name="VSYNC_PERIOD" type="uint"/> 447bf215546Sopenharmony_ci <reg32 offset="0x000c" name="VSYNC_LEN" type="uint"/> 448bf215546Sopenharmony_ci <reg32 offset="0x0018" name="DISPLAY_HCTRL" type="mdp4_display_hctl"/> 449bf215546Sopenharmony_ci <reg32 offset="0x001c" name="DISPLAY_VSTART" type="uint"/> 450bf215546Sopenharmony_ci <reg32 offset="0x0020" name="DISPLAY_VEND" type="uint"/> 451bf215546Sopenharmony_ci <reg32 offset="0x002c" name="ACTIVE_HCTL" type="mdp4_active_hctl"/> 452bf215546Sopenharmony_ci <reg32 offset="0x0030" name="ACTIVE_VSTART" type="uint"/> 453bf215546Sopenharmony_ci <reg32 offset="0x0038" name="ACTIVE_VEND" type="uint"/> 454bf215546Sopenharmony_ci <reg32 offset="0x0040" name="BORDER_CLR"/> 455bf215546Sopenharmony_ci <reg32 offset="0x0044" name="UNDERFLOW_CLR" type="mdp4_underflow_clr"/> 456bf215546Sopenharmony_ci <reg32 offset="0x0048" name="HSYNC_SKEW"/> 457bf215546Sopenharmony_ci <reg32 offset="0x004c" name="TEST_CNTL"/> 458bf215546Sopenharmony_ci <reg32 offset="0x0050" name="CTRL_POLARITY" type="mdp4_ctrl_polarity"/> 459bf215546Sopenharmony_ci </array> 460bf215546Sopenharmony_ci 461bf215546Sopenharmony_ci <array offset="0xe0000" name="DSI" length="1" stride="0x1000"> 462bf215546Sopenharmony_ci <reg32 offset="0x0000" name="ENABLE"/> 463bf215546Sopenharmony_ci <reg32 offset="0x0004" name="HSYNC_CTRL" type="mdp4_hsync_ctrl"/> 464bf215546Sopenharmony_ci <reg32 offset="0x0008" name="VSYNC_PERIOD" type="uint"/> 465bf215546Sopenharmony_ci <reg32 offset="0x000c" name="VSYNC_LEN" type="uint"/> 466bf215546Sopenharmony_ci <reg32 offset="0x0010" name="DISPLAY_HCTRL" type="mdp4_display_hctl"/> 467bf215546Sopenharmony_ci <reg32 offset="0x0014" name="DISPLAY_VSTART" type="uint"/> 468bf215546Sopenharmony_ci <reg32 offset="0x0018" name="DISPLAY_VEND" type="uint"/> 469bf215546Sopenharmony_ci <reg32 offset="0x001c" name="ACTIVE_HCTL" type="mdp4_active_hctl"/> 470bf215546Sopenharmony_ci <reg32 offset="0x0020" name="ACTIVE_VSTART" type="uint"/> 471bf215546Sopenharmony_ci <reg32 offset="0x0024" name="ACTIVE_VEND" type="uint"/> 472bf215546Sopenharmony_ci <reg32 offset="0x0028" name="BORDER_CLR"/> 473bf215546Sopenharmony_ci <reg32 offset="0x002c" name="UNDERFLOW_CLR" type="mdp4_underflow_clr"/> 474bf215546Sopenharmony_ci <reg32 offset="0x0030" name="HSYNC_SKEW"/> 475bf215546Sopenharmony_ci <reg32 offset="0x0034" name="TEST_CNTL"/> 476bf215546Sopenharmony_ci <reg32 offset="0x0038" name="CTRL_POLARITY" type="mdp4_ctrl_polarity"/> 477bf215546Sopenharmony_ci </array> 478bf215546Sopenharmony_ci</domain> 479bf215546Sopenharmony_ci 480bf215546Sopenharmony_ci</database> 481