17ec681f3Smrg<?xml version="1.0" encoding="UTF-8"?> 27ec681f3Smrg<database xmlns="http://nouveau.freedesktop.org/" 37ec681f3Smrgxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 47ec681f3Smrgxsi:schemaLocation="http://nouveau.freedesktop.org/ rules-ng.xsd"> 57ec681f3Smrg<import file="freedreno_copyright.xml"/> 67ec681f3Smrg<import file="mdp/mdp_common.xml"/> 77ec681f3Smrg 87ec681f3Smrg<domain name="MDP4" width="32"> 97ec681f3Smrg <enum name="mdp4_pipe"> 107ec681f3Smrg <brief>pipe names, index into PIPE[]</brief> 117ec681f3Smrg <value name="VG1" value="0"/> 127ec681f3Smrg <value name="VG2" value="1"/> 137ec681f3Smrg <value name="RGB1" value="2"/> 147ec681f3Smrg <value name="RGB2" value="3"/> 157ec681f3Smrg <value name="RGB3" value="4"/> 167ec681f3Smrg <value name="VG3" value="5"/> 177ec681f3Smrg <value name="VG4" value="6"/> 187ec681f3Smrg </enum> 197ec681f3Smrg 207ec681f3Smrg <enum name="mdp4_mixer"> 217ec681f3Smrg <value name="MIXER0" value="0"/> 227ec681f3Smrg <value name="MIXER1" value="1"/> 237ec681f3Smrg <value name="MIXER2" value="2"/> 247ec681f3Smrg </enum> 257ec681f3Smrg 267ec681f3Smrg <enum name="mdp4_intf"> 277ec681f3Smrg <!-- 287ec681f3Smrg A bit confusing the enums for interface selection: 297ec681f3Smrg enum { 307ec681f3Smrg LCDC_RGB_INTF, /* 0 */ 317ec681f3Smrg DTV_INTF = LCDC_RGB_INTF, /* 0 */ 327ec681f3Smrg MDDI_LCDC_INTF, /* 1 */ 337ec681f3Smrg MDDI_INTF, /* 2 */ 347ec681f3Smrg EBI2_INTF, /* 3 */ 357ec681f3Smrg TV_INTF = EBI2_INTF, /* 3 */ 367ec681f3Smrg DSI_VIDEO_INTF, 377ec681f3Smrg DSI_CMD_INTF 387ec681f3Smrg }; 397ec681f3Smrg there is some overlap, and not all the values end up getting 407ec681f3Smrg written to hw (mdp4_display_intf_sel() remaps the last two 417ec681f3Smrg values to MDDI_LCDC_INTF/MDDI_INTF with extra bits set).. so 427ec681f3Smrg taking some liberties in guessing the actual meanings/names: 437ec681f3Smrg --> 447ec681f3Smrg <value name="INTF_LCDC_DTV" value="0"/> <!-- LCDC RGB or DTV (external) --> 457ec681f3Smrg <value name="INTF_DSI_VIDEO" value="1"/> 467ec681f3Smrg <value name="INTF_DSI_CMD" value="2"/> 477ec681f3Smrg <value name="INTF_EBI2_TV" value="3"/> <!-- EBI2 or TV (external) --> 487ec681f3Smrg </enum> 497ec681f3Smrg <enum name="mdp4_cursor_format"> 507ec681f3Smrg <value name="CURSOR_ARGB" value="1"/> 517ec681f3Smrg <value name="CURSOR_XRGB" value="2"/> 527ec681f3Smrg </enum> 537ec681f3Smrg <enum name="mdp4_frame_format"> 547ec681f3Smrg <value name="FRAME_LINEAR" value="0"/> 557ec681f3Smrg <value name="FRAME_TILE_ARGB_4X4" value="1"/> 567ec681f3Smrg <value name="FRAME_TILE_YCBCR_420" value="2"/> 577ec681f3Smrg </enum> 587ec681f3Smrg <enum name="mdp4_scale_unit"> 597ec681f3Smrg <value name="SCALE_FIR" value="0"/> 607ec681f3Smrg <value name="SCALE_MN_PHASE" value="1"/> 617ec681f3Smrg <value name="SCALE_PIXEL_RPT" value="2"/> 627ec681f3Smrg </enum> 637ec681f3Smrg 647ec681f3Smrg <bitset name="mdp4_layermixer_in_cfg" inline="yes"> 657ec681f3Smrg <brief>appears to map pipe to mixer stage</brief> 667ec681f3Smrg <bitfield name="PIPE0" low="0" high="2" type="mdp_mixer_stage_id"/> 677ec681f3Smrg <bitfield name="PIPE0_MIXER1" pos="3" type="boolean"/> 687ec681f3Smrg <bitfield name="PIPE1" low="4" high="6" type="mdp_mixer_stage_id"/> 697ec681f3Smrg <bitfield name="PIPE1_MIXER1" pos="7" type="boolean"/> 707ec681f3Smrg <bitfield name="PIPE2" low="8" high="10" type="mdp_mixer_stage_id"/> 717ec681f3Smrg <bitfield name="PIPE2_MIXER1" pos="11" type="boolean"/> 727ec681f3Smrg <bitfield name="PIPE3" low="12" high="14" type="mdp_mixer_stage_id"/> 737ec681f3Smrg <bitfield name="PIPE3_MIXER1" pos="15" type="boolean"/> 747ec681f3Smrg <bitfield name="PIPE4" low="16" high="18" type="mdp_mixer_stage_id"/> 757ec681f3Smrg <bitfield name="PIPE4_MIXER1" pos="19" type="boolean"/> 767ec681f3Smrg <bitfield name="PIPE5" low="20" high="22" type="mdp_mixer_stage_id"/> 777ec681f3Smrg <bitfield name="PIPE5_MIXER1" pos="23" type="boolean"/> 787ec681f3Smrg <bitfield name="PIPE6" low="24" high="26" type="mdp_mixer_stage_id"/> 797ec681f3Smrg <bitfield name="PIPE6_MIXER1" pos="27" type="boolean"/> 807ec681f3Smrg <bitfield name="PIPE7" low="28" high="30" type="mdp_mixer_stage_id"/> 817ec681f3Smrg <bitfield name="PIPE7_MIXER1" pos="31" type="boolean"/> 827ec681f3Smrg </bitset> 837ec681f3Smrg 847ec681f3Smrg <bitset name="MDP4_IRQ"> 857ec681f3Smrg <bitfield name="OVERLAY0_DONE" pos="0" type="boolean"/> 867ec681f3Smrg <bitfield name="OVERLAY1_DONE" pos="1" type="boolean"/> 877ec681f3Smrg <bitfield name="DMA_S_DONE" pos="2" type="boolean"/> 887ec681f3Smrg <bitfield name="DMA_E_DONE" pos="3" type="boolean"/> 897ec681f3Smrg <bitfield name="DMA_P_DONE" pos="4" type="boolean"/> 907ec681f3Smrg <bitfield name="VG1_HISTOGRAM" pos="5" type="boolean"/> 917ec681f3Smrg <bitfield name="VG2_HISTOGRAM" pos="6" type="boolean"/> 927ec681f3Smrg <bitfield name="PRIMARY_VSYNC" pos="7" type="boolean"/> 937ec681f3Smrg <bitfield name="PRIMARY_INTF_UDERRUN" pos="8" type="boolean"/> 947ec681f3Smrg <bitfield name="EXTERNAL_VSYNC" pos="9" type="boolean"/> 957ec681f3Smrg <bitfield name="EXTERNAL_INTF_UDERRUN" pos="10" type="boolean"/> 967ec681f3Smrg <bitfield name="PRIMARY_RDPTR" pos="11" type="boolean"/> <!-- read pointer --> 977ec681f3Smrg <bitfield name="DMA_P_HISTOGRAM" pos="17" type="boolean"/> 987ec681f3Smrg <bitfield name="DMA_S_HISTOGRAM" pos="26" type="boolean"/> 997ec681f3Smrg <bitfield name="OVERLAY2_DONE" pos="30" type="boolean"/> 1007ec681f3Smrg </bitset> 1017ec681f3Smrg 1027ec681f3Smrg <group name="mdp4_csc"> 1037ec681f3Smrg <array offset="0x400" name="MV" length="9" stride="4"> 1047ec681f3Smrg <reg32 offset="0" name="VAL"/> 1057ec681f3Smrg </array> 1067ec681f3Smrg <array offset="0x500" name="PRE_BV" length="3" stride="4"> 1077ec681f3Smrg <reg32 offset="0" name="VAL"/> 1087ec681f3Smrg </array> 1097ec681f3Smrg <array offset="0x580" name="POST_BV" length="3" stride="4"> 1107ec681f3Smrg <reg32 offset="0" name="VAL"/> 1117ec681f3Smrg </array> 1127ec681f3Smrg <array offset="0x600" name="PRE_LV" length="6" stride="4"> 1137ec681f3Smrg <reg32 offset="0" name="VAL"/> 1147ec681f3Smrg </array> 1157ec681f3Smrg <array offset="0x680" name="POST_LV" length="6" stride="4"> 1167ec681f3Smrg <reg32 offset="0" name="VAL"/> 1177ec681f3Smrg </array> 1187ec681f3Smrg </group> 1197ec681f3Smrg 1207ec681f3Smrg <reg32 offset="0x00000" name="VERSION"> 1217ec681f3Smrg <!-- 1227ec681f3Smrg from mdp_probe() we can see minor rev starts at 16.. assume 1237ec681f3Smrg major is above that.. not sure the rest of bits but doesn't 1247ec681f3Smrg really seem to matter 1257ec681f3Smrg --> 1267ec681f3Smrg <bitfield name="MINOR" low="16" high="23" type="uint"/> 1277ec681f3Smrg <bitfield name="MAJOR" low="24" high="31" type="uint"/> 1287ec681f3Smrg </reg32> 1297ec681f3Smrg <reg32 offset="0x00004" name="OVLP0_KICK"/> 1307ec681f3Smrg <reg32 offset="0x00008" name="OVLP1_KICK"/> 1317ec681f3Smrg <reg32 offset="0x000d0" name="OVLP2_KICK"/> 1327ec681f3Smrg <reg32 offset="0x0000c" name="DMA_P_KICK"/> 1337ec681f3Smrg <reg32 offset="0x00010" name="DMA_S_KICK"/> 1347ec681f3Smrg <reg32 offset="0x00014" name="DMA_E_KICK"/> 1357ec681f3Smrg <reg32 offset="0x00018" name="DISP_STATUS"/> 1367ec681f3Smrg 1377ec681f3Smrg <reg32 offset="0x00038" name="DISP_INTF_SEL"> 1387ec681f3Smrg <bitfield name="PRIM" low="0" high="1" type="mdp4_intf"/> 1397ec681f3Smrg <bitfield name="SEC" low="2" high="3" type="mdp4_intf"/> 1407ec681f3Smrg <bitfield name="EXT" low="4" high="5" type="mdp4_intf"/> 1417ec681f3Smrg <bitfield name="DSI_VIDEO" pos="6" type="boolean"/> 1427ec681f3Smrg <bitfield name="DSI_CMD" pos="7" type="boolean"/> 1437ec681f3Smrg </reg32> 1447ec681f3Smrg <reg32 offset="0x0003c" name="RESET_STATUS"/> <!-- only mdp4 >v2.1 --> 1457ec681f3Smrg <reg32 offset="0x0004c" name="READ_CNFG"/> <!-- something about # of pending requests.. --> 1467ec681f3Smrg <reg32 offset="0x00050" name="INTR_ENABLE" type="MDP4_IRQ"/> 1477ec681f3Smrg <reg32 offset="0x00054" name="INTR_STATUS" type="MDP4_IRQ"/> 1487ec681f3Smrg <reg32 offset="0x00058" name="INTR_CLEAR" type="MDP4_IRQ"/> 1497ec681f3Smrg <reg32 offset="0x00060" name="EBI2_LCD0"/> 1507ec681f3Smrg <reg32 offset="0x00064" name="EBI2_LCD1"/> 1517ec681f3Smrg <reg32 offset="0x00070" name="PORTMAP_MODE"/> 1527ec681f3Smrg 1537ec681f3Smrg <!-- mdp chip-select controller: --> 1547ec681f3Smrg <reg32 offset="0x000c0" name="CS_CONTROLLER0"/> 1557ec681f3Smrg <reg32 offset="0x000c4" name="CS_CONTROLLER1"/> 1567ec681f3Smrg 1577ec681f3Smrg <reg32 offset="0x100f0" name="LAYERMIXER2_IN_CFG" type="mdp4_layermixer_in_cfg"/> 1587ec681f3Smrg <reg32 offset="0x100fc" name="LAYERMIXER_IN_CFG_UPDATE_METHOD"/> 1597ec681f3Smrg <reg32 offset="0x10100" name="LAYERMIXER_IN_CFG" type="mdp4_layermixer_in_cfg"/> 1607ec681f3Smrg 1617ec681f3Smrg <reg32 offset="0x30050" name="VG2_SRC_FORMAT"/> 1627ec681f3Smrg <reg32 offset="0x31008" name="VG2_CONST_COLOR"/> 1637ec681f3Smrg 1647ec681f3Smrg <reg32 offset="0x18000" name="OVERLAY_FLUSH"> 1657ec681f3Smrg <bitfield name="OVLP0" pos="0" type="boolean"/> 1667ec681f3Smrg <bitfield name="OVLP1" pos="1" type="boolean"/> 1677ec681f3Smrg <bitfield name="VG1" pos="2" type="boolean"/> 1687ec681f3Smrg <bitfield name="VG2" pos="3" type="boolean"/> 1697ec681f3Smrg <bitfield name="RGB1" pos="4" type="boolean"/> 1707ec681f3Smrg <bitfield name="RGB2" pos="5" type="boolean"/> 1717ec681f3Smrg </reg32> 1727ec681f3Smrg 1737ec681f3Smrg <array offsets="0x10000,0x18000,0x88000" name="OVLP" length="3" stride="0x8000"> 1747ec681f3Smrg <reg32 offset="0x0004" name="CFG"/> 1757ec681f3Smrg <reg32 offset="0x0008" name="SIZE" type="reg_wh"/> 1767ec681f3Smrg <reg32 offset="0x000c" name="BASE"/> 1777ec681f3Smrg <reg32 offset="0x0010" name="STRIDE" type="uint"/> 1787ec681f3Smrg <reg32 offset="0x0014" name="OPMODE"/> 1797ec681f3Smrg 1807ec681f3Smrg <array offsets="0x0104,0x0124,0x0144,0x0160" name="STAGE" length="4" stride="0x1c"> 1817ec681f3Smrg <reg32 offset="0x00" name="OP"> 1827ec681f3Smrg <bitfield name="FG_ALPHA" low="0" high="1" type="mdp_alpha_type"/> 1837ec681f3Smrg <bitfield name="FG_INV_ALPHA" pos="2" type="boolean"/> 1847ec681f3Smrg <bitfield name="FG_MOD_ALPHA" pos="3" type="boolean"/> 1857ec681f3Smrg <bitfield name="BG_ALPHA" low="4" high="5" type="mdp_alpha_type"/> 1867ec681f3Smrg <bitfield name="BG_INV_ALPHA" pos="6" type="boolean"/> 1877ec681f3Smrg <bitfield name="BG_MOD_ALPHA" pos="7" type="boolean"/> 1887ec681f3Smrg <bitfield name="FG_TRANSP" pos="8" type="boolean"/> 1897ec681f3Smrg <bitfield name="BG_TRANSP" pos="9" type="boolean"/> 1907ec681f3Smrg </reg32> 1917ec681f3Smrg <reg32 offset="0x04" name="FG_ALPHA"/> 1927ec681f3Smrg <reg32 offset="0x08" name="BG_ALPHA"/> 1937ec681f3Smrg <reg32 offset="0x0c" name="TRANSP_LOW0"/> 1947ec681f3Smrg <reg32 offset="0x10" name="TRANSP_LOW1"/> 1957ec681f3Smrg <reg32 offset="0x14" name="TRANSP_HIGH0"/> 1967ec681f3Smrg <reg32 offset="0x18" name="TRANSP_HIGH1"/> 1977ec681f3Smrg </array> 1987ec681f3Smrg 1997ec681f3Smrg <array offsets="0x1004,0x1404,0x1804,0x1b84" name="STAGE_CO3" length="4" stride="4"> 2007ec681f3Smrg <reg32 offset="0" name="SEL"> 2017ec681f3Smrg <bitfield name="FG_ALPHA" pos="0" type="boolean"/> <!-- otherwise bg alpha --> 2027ec681f3Smrg </reg32> 2037ec681f3Smrg </array> 2047ec681f3Smrg 2057ec681f3Smrg <reg32 offset="0x0180" name="TRANSP_LOW0"/> 2067ec681f3Smrg <reg32 offset="0x0184" name="TRANSP_LOW1"/> 2077ec681f3Smrg <reg32 offset="0x0188" name="TRANSP_HIGH0"/> 2087ec681f3Smrg <reg32 offset="0x018c" name="TRANSP_HIGH1"/> 2097ec681f3Smrg 2107ec681f3Smrg <reg32 offset="0x0200" name="CSC_CONFIG"/> 2117ec681f3Smrg 2127ec681f3Smrg <array offset="0x2000" name="CSC" length="1" stride="0x700"> 2137ec681f3Smrg <use-group ref="mdp4_csc"/> 2147ec681f3Smrg </array> 2157ec681f3Smrg </array> 2167ec681f3Smrg 2177ec681f3Smrg <enum name="mdp4_dma"> 2187ec681f3Smrg <value name="DMA_P" value="0"/> 2197ec681f3Smrg <value name="DMA_S" value="1"/> 2207ec681f3Smrg <value name="DMA_E" value="2"/> 2217ec681f3Smrg </enum> 2227ec681f3Smrg <reg32 offset="0x90070" name="DMA_P_OP_MODE"/> 2237ec681f3Smrg <array offset="0x94800" name="LUTN" length="2" stride="0x400"> 2247ec681f3Smrg <array offset="0" name="LUT" length="0x100" stride="4"> 2257ec681f3Smrg <reg32 offset="0" name="VAL"/> 2267ec681f3Smrg </array> 2277ec681f3Smrg </array> 2287ec681f3Smrg <reg32 offset="0xa0028" name="DMA_S_OP_MODE"/> 2297ec681f3Smrg <!-- I guess if DMA_S has an OP_MODE, it must have a LUT too.. --> 2307ec681f3Smrg <reg32 offset="0xb0070" name="DMA_E_QUANT" length="3" stride="4"/> 2317ec681f3Smrg <array offsets="0x90000,0xa0000,0xb0000" name="DMA" length="3" stride="0x10000" index="mdp4_dma"> 2327ec681f3Smrg <reg32 offset="0x0000" name="CONFIG"> 2337ec681f3Smrg <bitfield name="G_BPC" low="0" high="1" type="mdp_bpc"/> 2347ec681f3Smrg <bitfield name="B_BPC" low="2" high="3" type="mdp_bpc"/> 2357ec681f3Smrg <bitfield name="R_BPC" low="4" high="5" type="mdp_bpc"/> 2367ec681f3Smrg <bitfield name="PACK_ALIGN_MSB" pos="7" type="boolean"/> 2377ec681f3Smrg <bitfield name="PACK" low="8" high="15"/> 2387ec681f3Smrg <!-- bit 24 is DITHER_EN on DMA_P, DEFLKR_EN on DMA_E --> 2397ec681f3Smrg <bitfield name="DEFLKR_EN" pos="24" type="boolean"/> 2407ec681f3Smrg <bitfield name="DITHER_EN" pos="24" type="boolean"/> 2417ec681f3Smrg </reg32> 2427ec681f3Smrg <reg32 offset="0x0004" name="SRC_SIZE" type="reg_wh"/> 2437ec681f3Smrg <reg32 offset="0x0008" name="SRC_BASE"/> 2447ec681f3Smrg <reg32 offset="0x000c" name="SRC_STRIDE" type="uint"/> 2457ec681f3Smrg <reg32 offset="0x0010" name="DST_SIZE" type="reg_wh"/> 2467ec681f3Smrg 2477ec681f3Smrg <reg32 offset="0x0044" name="CURSOR_SIZE"> 2487ec681f3Smrg <!-- seems the limit is 64x64: --> 2497ec681f3Smrg <bitfield name="WIDTH" low="0" high="6" type="uint"/> 2507ec681f3Smrg <bitfield name="HEIGHT" low="16" high="22" type="uint"/> 2517ec681f3Smrg </reg32> 2527ec681f3Smrg <reg32 offset="0x0048" name="CURSOR_BASE"/> 2537ec681f3Smrg <reg32 offset="0x004c" name="CURSOR_POS"> 2547ec681f3Smrg <bitfield name="X" low="0" high="15" type="uint"/> 2557ec681f3Smrg <bitfield name="Y" low="16" high="31" type="uint"/> 2567ec681f3Smrg </reg32> 2577ec681f3Smrg <reg32 offset="0x0060" name="CURSOR_BLEND_CONFIG"> 2587ec681f3Smrg <bitfield name="CURSOR_EN" pos="0" type="boolean"/> 2597ec681f3Smrg <bitfield name="FORMAT" low="1" high="2" type="mdp4_cursor_format"/> 2607ec681f3Smrg <bitfield name="TRANSP_EN" pos="3" type="boolean"/> 2617ec681f3Smrg </reg32> 2627ec681f3Smrg <reg32 offset="0x0064" name="CURSOR_BLEND_PARAM"/> 2637ec681f3Smrg <reg32 offset="0x0068" name="BLEND_TRANS_LOW"/> 2647ec681f3Smrg <reg32 offset="0x006c" name="BLEND_TRANS_HIGH"/> 2657ec681f3Smrg 2667ec681f3Smrg <reg32 offset="0x1004" name="FETCH_CONFIG"/> 2677ec681f3Smrg <array offset="0x3000" name="CSC" length="1" stride="0x700"> 2687ec681f3Smrg <use-group ref="mdp4_csc"/> 2697ec681f3Smrg </array> 2707ec681f3Smrg </array> 2717ec681f3Smrg 2727ec681f3Smrg <!-- 2737ec681f3Smrg TODO length should be 7, but that would collide w/ OVLP2..!?! 2747ec681f3Smrg this register map is a bit strange.. 2757ec681f3Smrg --> 2767ec681f3Smrg <array offset="0x20000" name="PIPE" length="6" stride="0x10000" index="mdp4_pipe"> 2777ec681f3Smrg <reg32 offset="0x0000" name="SRC_SIZE" type="reg_wh"/> 2787ec681f3Smrg <reg32 offset="0x0004" name="SRC_XY" type="reg_xy"/> 2797ec681f3Smrg <reg32 offset="0x0008" name="DST_SIZE" type="reg_wh"/> 2807ec681f3Smrg <reg32 offset="0x000c" name="DST_XY" type="reg_xy"/> 2817ec681f3Smrg <reg32 offset="0x0010" name="SRCP0_BASE"/> 2827ec681f3Smrg <reg32 offset="0x0014" name="SRCP1_BASE"/> 2837ec681f3Smrg <reg32 offset="0x0018" name="SRCP2_BASE"/> 2847ec681f3Smrg <reg32 offset="0x001c" name="SRCP3_BASE"/> 2857ec681f3Smrg <reg32 offset="0x0040" name="SRC_STRIDE_A"> 2867ec681f3Smrg <bitfield name="P0" low="0" high="15" type="uint"/> 2877ec681f3Smrg <bitfield name="P1" low="16" high="31" type="uint"/> 2887ec681f3Smrg </reg32> 2897ec681f3Smrg <reg32 offset="0x0044" name="SRC_STRIDE_B"> 2907ec681f3Smrg <bitfield name="P2" low="0" high="15" type="uint"/> 2917ec681f3Smrg <bitfield name="P3" low="16" high="31" type="uint"/> 2927ec681f3Smrg </reg32> 2937ec681f3Smrg <reg32 offset="0x0048" name="SSTILE_FRAME_SIZE" type="reg_wh"/> 2947ec681f3Smrg <reg32 offset="0x0050" name="SRC_FORMAT"> 2957ec681f3Smrg <bitfield name="G_BPC" low="0" high="1" type="mdp_bpc"/> 2967ec681f3Smrg <bitfield name="B_BPC" low="2" high="3" type="mdp_bpc"/> 2977ec681f3Smrg <bitfield name="R_BPC" low="4" high="5" type="mdp_bpc"/> 2987ec681f3Smrg <bitfield name="A_BPC" low="6" high="7" type="mdp_bpc_alpha"/> 2997ec681f3Smrg <bitfield name="ALPHA_ENABLE" pos="8" type="boolean"/> 3007ec681f3Smrg <bitfield name="CPP" low="9" high="10" type="uint"> 3017ec681f3Smrg <brief>8bit characters per pixel minus 1</brief> 3027ec681f3Smrg </bitfield> 3037ec681f3Smrg <bitfield name="ROTATED_90" pos="12" type="boolean"/> 3047ec681f3Smrg <bitfield name="UNPACK_COUNT" low="13" high="14" type="uint"/> 3057ec681f3Smrg <bitfield name="UNPACK_TIGHT" pos="17" type="boolean"/> 3067ec681f3Smrg <bitfield name="UNPACK_ALIGN_MSB" pos="18" type="boolean"/> 3077ec681f3Smrg <bitfield name="FETCH_PLANES" low="19" high="20" type="uint"/> 3087ec681f3Smrg <bitfield name="SOLID_FILL" pos="22" type="boolean"/> 3097ec681f3Smrg <bitfield name="CHROMA_SAMP" low="26" high="27" type="mdp_chroma_samp_type"/> 3107ec681f3Smrg <bitfield name="FRAME_FORMAT" low="29" high="30" type="mdp4_frame_format"/> 3117ec681f3Smrg </reg32> 3127ec681f3Smrg <reg32 offset="0x0054" name="SRC_UNPACK" type="mdp_unpack_pattern"/> 3137ec681f3Smrg <reg32 offset="0x0058" name="OP_MODE"> 3147ec681f3Smrg <bitfield name="SCALEX_EN" pos="0" type="boolean"/> 3157ec681f3Smrg <bitfield name="SCALEY_EN" pos="1" type="boolean"/> 3167ec681f3Smrg <bitfield name="SCALEX_UNIT_SEL" low="2" high="3" type="mdp4_scale_unit"/> 3177ec681f3Smrg <bitfield name="SCALEY_UNIT_SEL" low="4" high="5" type="mdp4_scale_unit"/> 3187ec681f3Smrg <bitfield name="SRC_YCBCR" pos="9" type="boolean"/> 3197ec681f3Smrg <bitfield name="DST_YCBCR" pos="10" type="boolean"/> 3207ec681f3Smrg <bitfield name="CSC_EN" pos="11" type="boolean"/> 3217ec681f3Smrg <bitfield name="FLIP_LR" pos="13" type="boolean"/> 3227ec681f3Smrg <bitfield name="FLIP_UD" pos="14" type="boolean"/> 3237ec681f3Smrg <bitfield name="DITHER_EN" pos="15" type="boolean"/> 3247ec681f3Smrg <bitfield name="IGC_LUT_EN" pos="16" type="boolean"/> 3257ec681f3Smrg <bitfield name="DEINT_EN" pos="18" type="boolean"/> 3267ec681f3Smrg <bitfield name="DEINT_ODD_REF" pos="19" type="boolean"/> 3277ec681f3Smrg </reg32> 3287ec681f3Smrg <reg32 offset="0x005c" name="PHASEX_STEP"/> 3297ec681f3Smrg <reg32 offset="0x0060" name="PHASEY_STEP"/> 3307ec681f3Smrg <reg32 offset="0x1004" name="FETCH_CONFIG"/> 3317ec681f3Smrg <reg32 offset="0x1008" name="SOLID_COLOR"/> 3327ec681f3Smrg 3337ec681f3Smrg <array offset="0x4000" name="CSC" length="1" stride="0x700"> 3347ec681f3Smrg <use-group ref="mdp4_csc"/> 3357ec681f3Smrg </array> 3367ec681f3Smrg </array> 3377ec681f3Smrg 3387ec681f3Smrg <!-- 3397ec681f3Smrg ENCODERS 3407ec681f3Smrg LCDC and DSI seem the same, DTV is just slightly different.. 3417ec681f3Smrg --> 3427ec681f3Smrg 3437ec681f3Smrg <bitset name="mdp4_ctrl_polarity" inline="yes"> 3447ec681f3Smrg <!-- not entirely sure if these bits mean hi or low.. --> 3457ec681f3Smrg <bitfield name="HSYNC_LOW" pos="0" type="boolean"/> 3467ec681f3Smrg <bitfield name="VSYNC_LOW" pos="1" type="boolean"/> 3477ec681f3Smrg <bitfield name="DATA_EN_LOW" pos="2" type="boolean"/> 3487ec681f3Smrg </bitset> 3497ec681f3Smrg 3507ec681f3Smrg <bitset name="mdp4_active_hctl" inline="yes"> 3517ec681f3Smrg <bitfield name="START" low="0" high="14" type="uint"/> 3527ec681f3Smrg <bitfield name="END" low="16" high="30" type="uint"/> 3537ec681f3Smrg <bitfield name="ACTIVE_START_X" pos="31" type="boolean"/> 3547ec681f3Smrg </bitset> 3557ec681f3Smrg 3567ec681f3Smrg <bitset name="mdp4_display_hctl" inline="yes"> 3577ec681f3Smrg <bitfield name="START" low="0" high="15" type="uint"/> 3587ec681f3Smrg <bitfield name="END" low="16" high="31" type="uint"/> 3597ec681f3Smrg </bitset> 3607ec681f3Smrg 3617ec681f3Smrg <bitset name="mdp4_hsync_ctrl" inline="yes"> 3627ec681f3Smrg <bitfield name="PULSEW" low="0" high="15" type="uint"/> 3637ec681f3Smrg <bitfield name="PERIOD" low="16" high="31" type="uint"/> 3647ec681f3Smrg </bitset> 3657ec681f3Smrg 3667ec681f3Smrg <bitset name="mdp4_underflow_clr" inline="yes"> 3677ec681f3Smrg <bitfield name="COLOR" low="0" high="23"/> 3687ec681f3Smrg <bitfield name="ENABLE_RECOVERY" pos="31" type="boolean"/> 3697ec681f3Smrg </bitset> 3707ec681f3Smrg 3717ec681f3Smrg <!-- offset is 0xe0000 on !mdp4.. --> 3727ec681f3Smrg <array offset="0xc0000" name="LCDC" length="1" stride="0x1000"> 3737ec681f3Smrg <reg32 offset="0x0000" name="ENABLE"/> 3747ec681f3Smrg <reg32 offset="0x0004" name="HSYNC_CTRL" type="mdp4_hsync_ctrl"/> 3757ec681f3Smrg <reg32 offset="0x0008" name="VSYNC_PERIOD" type="uint"/> 3767ec681f3Smrg <reg32 offset="0x000c" name="VSYNC_LEN" type="uint"/> 3777ec681f3Smrg <reg32 offset="0x0010" name="DISPLAY_HCTRL" type="mdp4_display_hctl"/> 3787ec681f3Smrg <reg32 offset="0x0014" name="DISPLAY_VSTART" type="uint"/> 3797ec681f3Smrg <reg32 offset="0x0018" name="DISPLAY_VEND" type="uint"/> 3807ec681f3Smrg <reg32 offset="0x001c" name="ACTIVE_HCTL" type="mdp4_active_hctl"/> 3817ec681f3Smrg <reg32 offset="0x0020" name="ACTIVE_VSTART" type="uint"/> 3827ec681f3Smrg <reg32 offset="0x0024" name="ACTIVE_VEND" type="uint"/> 3837ec681f3Smrg <reg32 offset="0x0028" name="BORDER_CLR"/> 3847ec681f3Smrg <reg32 offset="0x002c" name="UNDERFLOW_CLR" type="mdp4_underflow_clr"/> 3857ec681f3Smrg <reg32 offset="0x0030" name="HSYNC_SKEW"/> 3867ec681f3Smrg <reg32 offset="0x0034" name="TEST_CNTL"/> 3877ec681f3Smrg <reg32 offset="0x0038" name="CTRL_POLARITY" type="mdp4_ctrl_polarity"/> 3887ec681f3Smrg </array> 3897ec681f3Smrg 3907ec681f3Smrg <reg32 offset="0xc2000" name="LCDC_LVDS_INTF_CTL"> 3917ec681f3Smrg <bitfield name="MODE_SEL" pos="2" type="boolean"/> 3927ec681f3Smrg <bitfield name="RGB_OUT" pos="3" type="boolean"/> 3937ec681f3Smrg <bitfield name="CH_SWAP" pos="4" type="boolean"/> 3947ec681f3Smrg <bitfield name="CH1_RES_BIT" pos="5" type="boolean"/> 3957ec681f3Smrg <bitfield name="CH2_RES_BIT" pos="6" type="boolean"/> 3967ec681f3Smrg <bitfield name="ENABLE" pos="7" type="boolean"/> 3977ec681f3Smrg <bitfield name="CH1_DATA_LANE0_EN" pos="8" type="boolean"/> 3987ec681f3Smrg <bitfield name="CH1_DATA_LANE1_EN" pos="9" type="boolean"/> 3997ec681f3Smrg <bitfield name="CH1_DATA_LANE2_EN" pos="10" type="boolean"/> 4007ec681f3Smrg <bitfield name="CH1_DATA_LANE3_EN" pos="11" type="boolean"/> 4017ec681f3Smrg <bitfield name="CH2_DATA_LANE0_EN" pos="12" type="boolean"/> 4027ec681f3Smrg <bitfield name="CH2_DATA_LANE1_EN" pos="13" type="boolean"/> 4037ec681f3Smrg <bitfield name="CH2_DATA_LANE2_EN" pos="14" type="boolean"/> 4047ec681f3Smrg <bitfield name="CH2_DATA_LANE3_EN" pos="15" type="boolean"/> 4057ec681f3Smrg <bitfield name="CH1_CLK_LANE_EN" pos="16" type="boolean"/> 4067ec681f3Smrg <bitfield name="CH2_CLK_LANE_EN" pos="17" type="boolean"/> 4077ec681f3Smrg </reg32> 4087ec681f3Smrg 4097ec681f3Smrg <array offset="0xc2014" name="LCDC_LVDS_MUX_CTL" length="4" stride="0x8"> 4107ec681f3Smrg <reg32 offset="0x0" name="3_TO_0"> 4117ec681f3Smrg <bitfield name="BIT0" low="0" high="7"/> 4127ec681f3Smrg <bitfield name="BIT1" low="8" high="15"/> 4137ec681f3Smrg <bitfield name="BIT2" low="16" high="23"/> 4147ec681f3Smrg <bitfield name="BIT3" low="24" high="31"/> 4157ec681f3Smrg </reg32> 4167ec681f3Smrg <reg32 offset="0x4" name="6_TO_4"> 4177ec681f3Smrg <bitfield name="BIT4" low="0" high="7"/> 4187ec681f3Smrg <bitfield name="BIT5" low="8" high="15"/> 4197ec681f3Smrg <bitfield name="BIT6" low="16" high="23"/> 4207ec681f3Smrg </reg32> 4217ec681f3Smrg </array> 4227ec681f3Smrg 4237ec681f3Smrg <reg32 offset="0xc2034" name="LCDC_LVDS_PHY_RESET"/> 4247ec681f3Smrg 4257ec681f3Smrg <reg32 offset="0xc3000" name="LVDS_PHY_PLL_CTRL_0"/> 4267ec681f3Smrg <reg32 offset="0xc3004" name="LVDS_PHY_PLL_CTRL_1"/> 4277ec681f3Smrg <reg32 offset="0xc3008" name="LVDS_PHY_PLL_CTRL_2"/> 4287ec681f3Smrg <reg32 offset="0xc300c" name="LVDS_PHY_PLL_CTRL_3"/> 4297ec681f3Smrg <reg32 offset="0xc3014" name="LVDS_PHY_PLL_CTRL_5"/> 4307ec681f3Smrg <reg32 offset="0xc3018" name="LVDS_PHY_PLL_CTRL_6"/> 4317ec681f3Smrg <reg32 offset="0xc301c" name="LVDS_PHY_PLL_CTRL_7"/> 4327ec681f3Smrg <reg32 offset="0xc3020" name="LVDS_PHY_PLL_CTRL_8"/> 4337ec681f3Smrg <reg32 offset="0xc3024" name="LVDS_PHY_PLL_CTRL_9"/> 4347ec681f3Smrg <reg32 offset="0xc3080" name="LVDS_PHY_PLL_LOCKED"/> 4357ec681f3Smrg <reg32 offset="0xc3108" name="LVDS_PHY_CFG2"/> 4367ec681f3Smrg 4377ec681f3Smrg <reg32 offset="0xc3100" name="LVDS_PHY_CFG0"> 4387ec681f3Smrg <bitfield name="SERIALIZATION_ENBLE" pos="4" type="boolean"/> 4397ec681f3Smrg <bitfield name="CHANNEL0" pos="6" type="boolean"/> 4407ec681f3Smrg <bitfield name="CHANNEL1" pos="7" type="boolean"/> 4417ec681f3Smrg </reg32> 4427ec681f3Smrg 4437ec681f3Smrg <array offset="0xd0000" name="DTV" length="1" stride="0x1000"> 4447ec681f3Smrg <reg32 offset="0x0000" name="ENABLE"/> 4457ec681f3Smrg <reg32 offset="0x0004" name="HSYNC_CTRL" type="mdp4_hsync_ctrl"/> 4467ec681f3Smrg <reg32 offset="0x0008" name="VSYNC_PERIOD" type="uint"/> 4477ec681f3Smrg <reg32 offset="0x000c" name="VSYNC_LEN" type="uint"/> 4487ec681f3Smrg <reg32 offset="0x0018" name="DISPLAY_HCTRL" type="mdp4_display_hctl"/> 4497ec681f3Smrg <reg32 offset="0x001c" name="DISPLAY_VSTART" type="uint"/> 4507ec681f3Smrg <reg32 offset="0x0020" name="DISPLAY_VEND" type="uint"/> 4517ec681f3Smrg <reg32 offset="0x002c" name="ACTIVE_HCTL" type="mdp4_active_hctl"/> 4527ec681f3Smrg <reg32 offset="0x0030" name="ACTIVE_VSTART" type="uint"/> 4537ec681f3Smrg <reg32 offset="0x0038" name="ACTIVE_VEND" type="uint"/> 4547ec681f3Smrg <reg32 offset="0x0040" name="BORDER_CLR"/> 4557ec681f3Smrg <reg32 offset="0x0044" name="UNDERFLOW_CLR" type="mdp4_underflow_clr"/> 4567ec681f3Smrg <reg32 offset="0x0048" name="HSYNC_SKEW"/> 4577ec681f3Smrg <reg32 offset="0x004c" name="TEST_CNTL"/> 4587ec681f3Smrg <reg32 offset="0x0050" name="CTRL_POLARITY" type="mdp4_ctrl_polarity"/> 4597ec681f3Smrg </array> 4607ec681f3Smrg 4617ec681f3Smrg <array offset="0xe0000" name="DSI" length="1" stride="0x1000"> 4627ec681f3Smrg <reg32 offset="0x0000" name="ENABLE"/> 4637ec681f3Smrg <reg32 offset="0x0004" name="HSYNC_CTRL" type="mdp4_hsync_ctrl"/> 4647ec681f3Smrg <reg32 offset="0x0008" name="VSYNC_PERIOD" type="uint"/> 4657ec681f3Smrg <reg32 offset="0x000c" name="VSYNC_LEN" type="uint"/> 4667ec681f3Smrg <reg32 offset="0x0010" name="DISPLAY_HCTRL" type="mdp4_display_hctl"/> 4677ec681f3Smrg <reg32 offset="0x0014" name="DISPLAY_VSTART" type="uint"/> 4687ec681f3Smrg <reg32 offset="0x0018" name="DISPLAY_VEND" type="uint"/> 4697ec681f3Smrg <reg32 offset="0x001c" name="ACTIVE_HCTL" type="mdp4_active_hctl"/> 4707ec681f3Smrg <reg32 offset="0x0020" name="ACTIVE_VSTART" type="uint"/> 4717ec681f3Smrg <reg32 offset="0x0024" name="ACTIVE_VEND" type="uint"/> 4727ec681f3Smrg <reg32 offset="0x0028" name="BORDER_CLR"/> 4737ec681f3Smrg <reg32 offset="0x002c" name="UNDERFLOW_CLR" type="mdp4_underflow_clr"/> 4747ec681f3Smrg <reg32 offset="0x0030" name="HSYNC_SKEW"/> 4757ec681f3Smrg <reg32 offset="0x0034" name="TEST_CNTL"/> 4767ec681f3Smrg <reg32 offset="0x0038" name="CTRL_POLARITY" type="mdp4_ctrl_polarity"/> 4777ec681f3Smrg </array> 4787ec681f3Smrg</domain> 4797ec681f3Smrg 4807ec681f3Smrg</database> 481