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