blob: c7bf5043e6053383951a3ebe58ea1ab98cafca67 [file] [log] [blame]
Stefan Bosch3e054112020-07-10 19:07:32 +02001/* SPDX-License-Identifier: GPL-2.0+
2 *
3 * Copyright (C) 2016 Nexell Co., Ltd.
4 *
5 * Author: junghyun, kim <jhkim@nexell.co.kr>
6 */
7
8#ifndef _S5PXX18_SOC_DISPTOP_H_
9#define _S5PXX18_SOC_DISPTOP_H_
10
11#include "s5pxx18_soc_disptype.h"
12
13#define NUMBER_OF_DISPTOP_MODULE 1
14#define PHY_BASEADDR_DISPLAYTOP_MODULE 0xC0100000
15#define PHY_BASEADDR_DISPTOP_LIST \
16 { PHY_BASEADDR_DISPLAYTOP_MODULE }
17
18#define HDMI_ADDR_OFFSET \
19 (((PHY_BASEADDR_DISPLAYTOP_MODULE / 0x00100000) % 2) ? 0x100000 \
20 : 0x000000)
21#define OTHER_ADDR_OFFSET \
22 (((PHY_BASEADDR_DISPLAYTOP_MODULE / 0x00100000) % 2) ? 0x000000 \
23 : 0x100000)
24#define PHY_BASEADDR_DISPLAYTOP_MODULE_OFFSET (OTHER_ADDR_OFFSET + 0x001000)
25#define PHY_BASEADDR_DUALDISPLAY_MODULE \
26 (PHY_BASEADDR_DISPLAYTOP_MODULE + OTHER_ADDR_OFFSET + 0x002000)
27#define PHY_BASEADDR_RESCONV_MODULE \
28 (PHY_BASEADDR_DISPLAYTOP_MODULE + OTHER_ADDR_OFFSET + 0x003000)
29#define PHY_BASEADDR_LCDINTERFACE_MODULE \
30 (PHY_BASEADDR_DISPLAYTOP_MODULE + OTHER_ADDR_OFFSET + 0x004000)
31#define PHY_BASEADDR_HDMI_MODULE (PHY_BASEADDR_DISPLAYTOP_MODULE + 0x000000)
32#define PHY_BASEADDR_LVDS_MODULE \
33 (PHY_BASEADDR_DISPLAYTOP_MODULE + OTHER_ADDR_OFFSET + 0x00a000)
34
35#define NUMBER_OF_DUALDISPLAY_MODULE 1
36#define INTNUM_OF_DUALDISPLAY_MODULE_PRIMIRQ \
37 INTNUM_OF_DISPLAYTOP_MODULE_DUALDISPLAY_PRIMIRQ
38#define INTNUM_OF_DUALDISPLAY_MODULE_SECONDIRQ \
39 INTNUM_OF_DISPLAYTOP_MODULE_DUALDISPLAY_SECONDIRQ
40#define RESETINDEX_OF_DUALDISPLAY_MODULE_I_NRST \
41 RESETINDEX_OF_DISPLAYTOP_MODULE_I_DUALDISPLAY_NRST
42#define PADINDEX_OF_DUALDISPLAY_O_NCS \
43 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PADPRIMVCLK
44#define PADINDEX_OF_DUALDISPLAY_O_NRD \
45 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PRIM_PADN_HSYNC
46#define PADINDEX_OF_DUALDISPLAY_O_RS \
47 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PRIM_PADN_VSYNC
48#define PADINDEX_OF_DUALDISPLAY_O_NWR \
49 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PRIM_PADDE
50#define PADINDEX_OF_DUALDISPLAY_PADPRIMVCLK \
51 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PADPRIMVCLK
52#define PADINDEX_OF_DUALDISPLAY_O_PRIM_PADN_HSYNC \
53 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PRIM_PADN_HSYNC
54#define PADINDEX_OF_DUALDISPLAY_O_PRIM_PADN_VSYNC \
55 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PRIM_PADN_VSYNC
56#define PADINDEX_OF_DUALDISPLAY_O_PRIM_PADDE \
57 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PRIM_PADDE
58#define PADINDEX_OF_DUALDISPLAY_PRIM_0_ \
59 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_0_
60#define PADINDEX_OF_DUALDISPLAY_PRIM_1_ \
61 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_1_
62#define PADINDEX_OF_DUALDISPLAY_PRIM_2_ \
63 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_2_
64#define PADINDEX_OF_DUALDISPLAY_PRIM_3_ \
65 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_3_
66#define PADINDEX_OF_DUALDISPLAY_PRIM_4_ \
67 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_4_
68#define PADINDEX_OF_DUALDISPLAY_PRIM_5_ \
69 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_5_
70#define PADINDEX_OF_DUALDISPLAY_PRIM_6_ \
71 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_6_
72#define PADINDEX_OF_DUALDISPLAY_PRIM_7_ \
73 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_7_
74#define PADINDEX_OF_DUALDISPLAY_PRIM_8_ \
75 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_8_
76#define PADINDEX_OF_DUALDISPLAY_PRIM_9_ \
77 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_9_
78#define PADINDEX_OF_DUALDISPLAY_PRIM_10_ \
79 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_10_
80#define PADINDEX_OF_DUALDISPLAY_PRIM_11_ \
81 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_11_
82#define PADINDEX_OF_DUALDISPLAY_PRIM_12_ \
83 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_12_
84#define PADINDEX_OF_DUALDISPLAY_PRIM_13_ \
85 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_13_
86#define PADINDEX_OF_DUALDISPLAY_PRIM_14_ \
87 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_14_
88#define PADINDEX_OF_DUALDISPLAY_PRIM_15_ \
89 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_15_
90#define PADINDEX_OF_DUALDISPLAY_PRIM_16_ \
91 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_16_
92#define PADINDEX_OF_DUALDISPLAY_PRIM_17_ \
93 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_17_
94#define PADINDEX_OF_DUALDISPLAY_PRIM_18_ \
95 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_18_
96#define PADINDEX_OF_DUALDISPLAY_PRIM_19_ \
97 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_19_
98#define PADINDEX_OF_DUALDISPLAY_PRIM_20_ \
99 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_20_
100#define PADINDEX_OF_DUALDISPLAY_PRIM_21_ \
101 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_21_
102#define PADINDEX_OF_DUALDISPLAY_PRIM_22_ \
103 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_22_
104#define PADINDEX_OF_DUALDISPLAY_PRIM_23_ \
105 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_23_
106#define PADINDEX_OF_DUALDISPLAY_PADSECONDVCLK \
107 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PADPRIMVCLK
108#define PADINDEX_OF_DUALDISPLAY_O_SECOND_PADN_HSYNC \
109 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PRIM_PADN_HSYNC
110#define PADINDEX_OF_DUALDISPLAY_O_SECOND_PADN_VSYNC \
111 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PRIM_PADN_VSYNC
112#define PADINDEX_OF_DUALDISPLAY_O_SECOND_PADDE \
113 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PRIM_PADDE
114#define PADINDEX_OF_DUALDISPLAY_SECOND_0_ \
115 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_0_
116#define PADINDEX_OF_DUALDISPLAY_SECOND_1_ \
117 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_1_
118#define PADINDEX_OF_DUALDISPLAY_SECOND_2_ \
119 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_2_
120#define PADINDEX_OF_DUALDISPLAY_SECOND_3_ \
121 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_3_
122#define PADINDEX_OF_DUALDISPLAY_SECOND_4_ \
123 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_4_
124#define PADINDEX_OF_DUALDISPLAY_SECOND_5_ \
125 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_5_
126#define PADINDEX_OF_DUALDISPLAY_SECOND_6_ \
127 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_6_
128#define PADINDEX_OF_DUALDISPLAY_SECOND_7_ \
129 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_7_
130#define PADINDEX_OF_DUALDISPLAY_SECOND_8_ \
131 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_8_
132#define PADINDEX_OF_DUALDISPLAY_SECOND_9_ \
133 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_9_
134#define PADINDEX_OF_DUALDISPLAY_SECOND_10_ \
135 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_10_
136#define PADINDEX_OF_DUALDISPLAY_SECOND_11_ \
137 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_11_
138#define PADINDEX_OF_DUALDISPLAY_SECOND_12_ \
139 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_12_
140#define PADINDEX_OF_DUALDISPLAY_SECOND_13_ \
141 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_13_
142#define PADINDEX_OF_DUALDISPLAY_SECOND_14_ \
143 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_14_
144#define PADINDEX_OF_DUALDISPLAY_SECOND_15_ \
145 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_15_
146#define PADINDEX_OF_DUALDISPLAY_SECOND_16_ \
147 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_16_
148#define PADINDEX_OF_DUALDISPLAY_SECOND_17_ \
149 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_17_
150#define PADINDEX_OF_DUALDISPLAY_SECOND_18_ \
151 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_18_
152#define PADINDEX_OF_DUALDISPLAY_SECOND_19_ \
153 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_19_
154#define PADINDEX_OF_DUALDISPLAY_SECOND_20_ \
155 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_20_
156#define PADINDEX_OF_DUALDISPLAY_SECOND_21_ \
157 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_21_
158#define PADINDEX_OF_DUALDISPLAY_SECOND_22_ \
159 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_22_
160#define PADINDEX_OF_DUALDISPLAY_SECOND_23_ \
161 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_23_
162
163#define NUMBER_OF_RESCONV_MODULE 1
164#define INTNUM_OF_RESCONV_MODULE INTNUM_OF_DISPLAYTOP_MODULE_RESCONV_IRQ
165#define RESETINDEX_OF_RESCONV_MODULE_I_NRST \
166 RESETINDEX_OF_DISPLAYTOP_MODULE_I_RESCONV_NRST
167#define RESETINDEX_OF_RESCONV_MODULE RESETINDEX_OF_RESCONV_MODULE_I_NRST
168#define NUMBER_OF_LCDINTERFACE_MODULE 1
169#define RESETINDEX_OF_LCDINTERFACE_MODULE_I_NRST \
170 RESETINDEX_OF_DISPLAYTOP_MODULE_I_LCDIF_NRST
171#define PADINDEX_OF_LCDINTERFACE_O_VCLK \
172 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PADPRIMVCLK
173#define PADINDEX_OF_LCDINTERFACE_O_NHSYNC \
174 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PRIM_PADN_HSYNC
175#define PADINDEX_OF_LCDINTERFACE_O_NVSYNC \
176 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PRIM_PADN_VSYNC
177#define PADINDEX_OF_LCDINTERFACE_O_DE \
178 PADINDEX_OF_DISPLAYTOP_O_DUAL_DISPLAY_PRIM_PADDE
179#define PADINDEX_OF_LCDINTERFACE_RGB24_0_ \
180 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_0_
181#define PADINDEX_OF_LCDINTERFACE_RGB24_1_ \
182 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_1_
183#define PADINDEX_OF_LCDINTERFACE_RGB24_2_ \
184 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_2_
185#define PADINDEX_OF_LCDINTERFACE_RGB24_3_ \
186 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_3_
187#define PADINDEX_OF_LCDINTERFACE_RGB24_4_ \
188 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_4_
189#define PADINDEX_OF_LCDINTERFACE_RGB24_5_ \
190 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_5_
191#define PADINDEX_OF_LCDINTERFACE_RGB24_6_ \
192 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_6_
193#define PADINDEX_OF_LCDINTERFACE_RGB24_7_ \
194 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_7_
195#define PADINDEX_OF_LCDINTERFACE_RGB24_8_ \
196 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_8_
197#define PADINDEX_OF_LCDINTERFACE_RGB24_9_ \
198 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_9_
199#define PADINDEX_OF_LCDINTERFACE_RGB24_10_ \
200 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_10_
201#define PADINDEX_OF_LCDINTERFACE_RGB24_11_ \
202 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_11_
203#define PADINDEX_OF_LCDINTERFACE_RGB24_12_ \
204 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_12_
205#define PADINDEX_OF_LCDINTERFACE_RGB24_13_ \
206 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_13_
207#define PADINDEX_OF_LCDINTERFACE_RGB24_14_ \
208 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_14_
209#define PADINDEX_OF_LCDINTERFACE_RGB24_15_ \
210 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_15_
211#define PADINDEX_OF_LCDINTERFACE_RGB24_16_ \
212 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_16_
213#define PADINDEX_OF_LCDINTERFACE_RGB24_17_ \
214 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_17_
215#define PADINDEX_OF_LCDINTERFACE_RGB24_18_ \
216 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_18_
217#define PADINDEX_OF_LCDINTERFACE_RGB24_19_ \
218 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_19_
219#define PADINDEX_OF_LCDINTERFACE_RGB24_20_ \
220 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_20_
221#define PADINDEX_OF_LCDINTERFACE_RGB24_21_ \
222 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_21_
223#define PADINDEX_OF_LCDINTERFACE_RGB24_22_ \
224 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_22_
225#define PADINDEX_OF_LCDINTERFACE_RGB24_23_ \
226 PADINDEX_OF_DISPLAYTOP_DUAL_DISPLAY_PRIM_23_
227
228#define NUMBER_OF_HDMI_MODULE 1
229#define INTNUM_OF_HDMI_MODULE INTNUM_OF_DISPLAYTOP_MODULE_HDMI_IRQ
230#define RESETINDEX_OF_HDMI_MODULE_I_NRST \
231 RESETINDEX_OF_DISPLAYTOP_MODULE_I_HDMI_NRST
232#define RESETINDEX_OF_HDMI_MODULE_I_NRST_VIDEO \
233 RESETINDEX_OF_DISPLAYTOP_MODULE_I_HDMI_VIDEO_NRST
234#define RESETINDEX_OF_HDMI_MODULE_I_NRST_SPDIF \
235 RESETINDEX_OF_DISPLAYTOP_MODULE_I_HDMI_SPDIF_NRST
236#define RESETINDEX_OF_HDMI_MODULE_I_NRST_TMDS \
237 RESETINDEX_OF_DISPLAYTOP_MODULE_I_HDMI_TMDS_NRST
238#define RESETINDEX_OF_HDMI_MODULE_I_NRST_PHY \
239 RESETINDEX_OF_DISPLAYTOP_MODULE_I_HDMI_PHY_NRST
240#define PADINDEX_OF_HDMI_I_PHY_CLKI PADINDEX_OF_DISPLAYTOP_I_HDMI_CLKI
241#define PADINDEX_OF_HDMI_O_PHY_CLKO PADINDEX_OF_DISPLAYTOP_O_HDMI_CLKO
242#define PADINDEX_OF_HDMI_IO_PHY_REXT PADINDEX_OF_DISPLAYTOP_IO_HDMI_REXT
243#define PADINDEX_OF_HDMI_O_PHY_TX0P PADINDEX_OF_DISPLAYTOP_O_HDMI_TX0P
244#define PADINDEX_OF_HDMI_O_PHY_TX0N PADINDEX_OF_DISPLAYTOP_O_HDMI_TX0N
245#define PADINDEX_OF_HDMI_O_PHY_TX1P PADINDEX_OF_DISPLAYTOP_O_HDMI_TX1P
246#define PADINDEX_OF_HDMI_O_PHY_TX1N PADINDEX_OF_DISPLAYTOP_O_HDMI_TX1N
247#define PADINDEX_OF_HDMI_O_PHY_TX2P PADINDEX_OF_DISPLAYTOP_O_HDMI_TX2P
248#define PADINDEX_OF_HDMI_O_PHY_TX2N PADINDEX_OF_DISPLAYTOP_O_HDMI_TX2N
249#define PADINDEX_OF_HDMI_O_PHY_TXCP PADINDEX_OF_DISPLAYTOP_O_HDMI_TXCP
250#define PADINDEX_OF_HDMI_O_PHY_TXCN PADINDEX_OF_DISPLAYTOP_O_HDMI_TXCN
251#define PADINDEX_OF_HDMI_I_HOTPLUG PADINDEX_OF_DISPLAYTOP_I_HDMI_HOTPLUG_5V
252#define PADINDEX_OF_HDMI_IO_PAD_CEC PADINDEX_OF_DISPLAYTOP_IO_HDMI_CEC
253#define NUMBER_OF_LVDS_MODULE 1
254
255#define RESETINDEX_OF_LVDS_MODULE_I_RESETN \
256 RESETINDEX_OF_DISPLAYTOP_MODULE_I_LVDS_NRST
257#define RESETINDEX_OF_LVDS_MODULE RESETINDEX_OF_LVDS_MODULE_I_RESETN
258
259#define PADINDEX_OF_LVDS_TAP PADINDEX_OF_DISPLAYTOP_LVDS_TXP_A
260#define PADINDEX_OF_LVDS_TAN PADINDEX_OF_DISPLAYTOP_LVDS_TXN_A
261#define PADINDEX_OF_LVDS_TBP PADINDEX_OF_DISPLAYTOP_LVDS_TXP_B
262#define PADINDEX_OF_LVDS_TBN PADINDEX_OF_DISPLAYTOP_LVDS_TXN_B
263#define PADINDEX_OF_LVDS_TCP PADINDEX_OF_DISPLAYTOP_LVDS_TXP_C
264#define PADINDEX_OF_LVDS_TCN PADINDEX_OF_DISPLAYTOP_LVDS_TXN_C
265#define PADINDEX_OF_LVDS_TDP PADINDEX_OF_DISPLAYTOP_LVDS_TXP_D
266#define PADINDEX_OF_LVDS_TDN PADINDEX_OF_DISPLAYTOP_LVDS_TXN_D
267#define PADINDEX_OF_LVDS_TCLKP PADINDEX_OF_DISPLAYTOP_LVDS_TXP_CLK
268#define PADINDEX_OF_LVDS_TCLKN PADINDEX_OF_DISPLAYTOP_LVDS_TXN_CLK
269#define PADINDEX_OF_LVDS_ROUT PADINDEX_OF_DISPLAYTOP_LVDS_ROUT
270#define PADINDEX_OF_LVDS_TEP PADINDEX_OF_DISPLAYTOP_LVDS_TXN_E
271#define PADINDEX_OF_LVDS_TEN PADINDEX_OF_DISPLAYTOP_LVDS_TXN_E
272#define NUMBER_OF_DISPTOP_CLKGEN_MODULE 5
273
274enum disptop_clkgen_module_index {
275 res_conv_clkgen = 0,
276 lcdif_clkgen = 1,
277 to_mipi_clkgen = 2,
278 to_lvds_clkgen = 3,
279 hdmi_clkgen = 4,
280};
281
282enum disptop_res_conv_iclk_cclk {
283 res_conv_iclk = 0,
284 res_conv_cclk = 1,
285};
286
287enum disptop_res_conv_oclk {
288 res_conv_oclk = 1,
289};
290
291enum disptop_lcdif_clk {
292 lcdif_pixel_clkx_n = 0,
293 lcdif_pixel_clk = 1,
294};
295
296#define HDMI_SPDIF_CLKGEN 2
297#define HDMI_SPDIF_CLKOUT 0
298#define HDMI_I_VCLK_CLKOUT 0
299#define PHY_BASEADDR_DISPTOP_CLKGEN0_MODULE \
300 (PHY_BASEADDR_DISPLAYTOP_MODULE + OTHER_ADDR_OFFSET + 0x006000)
301#define PHY_BASEADDR_DISPTOP_CLKGEN1_MODULE \
302 (PHY_BASEADDR_DISPLAYTOP_MODULE + OTHER_ADDR_OFFSET + 0x007000)
303#define PHY_BASEADDR_DISPTOP_CLKGEN2_MODULE \
304 (PHY_BASEADDR_DISPLAYTOP_MODULE + OTHER_ADDR_OFFSET + 0x005000)
305#define PHY_BASEADDR_DISPTOP_CLKGEN3_MODULE \
306 (PHY_BASEADDR_DISPLAYTOP_MODULE + OTHER_ADDR_OFFSET + 0x008000)
307#define PHY_BASEADDR_DISPTOP_CLKGEN4_MODULE \
308 (PHY_BASEADDR_DISPLAYTOP_MODULE + OTHER_ADDR_OFFSET + 0x009000)
309
310struct nx_disp_top_register_set {
311 u32 resconv_mux_ctrl;
312 u32 interconv_mux_ctrl;
313 u32 mipi_mux_ctrl;
314 u32 lvds_mux_ctrl;
315 u32 hdmifixctrl0;
316 u32 hdmisyncctrl0;
317 u32 hdmisyncctrl1;
318 u32 hdmisyncctrl2;
319 u32 hdmisyncctrl3;
320 u32 tftmpu_mux;
321 u32 hdmifieldctrl;
322 u32 greg0;
323 u32 greg1;
324 u32 greg2;
325 u32 greg3;
326 u32 greg4;
327 u32 greg5;
328};
329
330int nx_disp_top_initialize(void);
331u32 nx_disp_top_get_number_of_module(void);
332
333u32 nx_disp_top_get_physical_address(void);
334u32 nx_disp_top_get_size_of_register_set(void);
335void nx_disp_top_set_base_address(void *base_address);
336void *nx_disp_top_get_base_address(void);
337int nx_disp_top_open_module(void);
338int nx_disp_top_close_module(void);
339int nx_disp_top_check_busy(void);
340
341enum mux_index {
342 primary_mlc = 0,
343 secondary_mlc = 1,
344 resolution_conv = 2,
345};
346
347enum prim_pad_mux_index {
348 padmux_primary_mlc = 0,
349 padmux_primary_mpu = 1,
350 padmux_secondary_mlc = 2,
351 padmux_resolution_conv = 3,
352};
353
354void nx_disp_top_set_resconvmux(int benb, u32 sel);
355void nx_disp_top_set_hdmimux(int benb, u32 sel);
356void nx_disp_top_set_mipimux(int benb, u32 sel);
357void nx_disp_top_set_lvdsmux(int benb, u32 sel);
358void nx_disp_top_set_primary_mux(u32 sel);
359void nx_disp_top_hdmi_set_vsync_start(u32 sel);
360void nx_disp_top_hdmi_set_vsync_hsstart_end(u32 start, u32 end);
361void nx_disp_top_hdmi_set_hactive_start(u32 sel);
362void nx_disp_top_hdmi_set_hactive_end(u32 sel);
363
364void nx_disp_top_set_hdmifield(u32 enable, u32 init_val, u32 vsynctoggle,
365 u32 hsynctoggle, u32 vsyncclr, u32 hsyncclr,
366 u32 field_use, u32 muxsel);
367
368enum padclk_config {
369 padclk_clk = 0,
370 padclk_inv_clk = 1,
371 padclk_reserved_clk = 2,
372 padclk_reserved_inv_clk = 3,
373 padclk_clk_div2_0 = 4,
374 padclk_clk_div2_90 = 5,
375 padclk_clk_div2_180 = 6,
376 padclk_clk_div2_270 = 7,
377};
378
379void nx_disp_top_set_padclock(u32 mux_index, u32 padclk_cfg);
380void nx_disp_top_set_lcdif_enb(int enb);
381void nx_disp_top_set_hdmifield(u32 enable, u32 init_val, u32 vsynctoggle,
382 u32 hsynctoggle, u32 vsyncclr, u32 hsyncclr,
383 u32 field_use, u32 muxsel);
384
385#endif