1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
281dee67eSSudip Mukherjee #ifndef DDK750_DVI_H__
381dee67eSSudip Mukherjee #define DDK750_DVI_H__
481dee67eSSudip Mukherjee 
581dee67eSSudip Mukherjee /* dvi chip stuffs structros */
681dee67eSSudip Mukherjee 
7*9314a822SNam Cao typedef long (*PFN_DVICTRL_INIT)(unsigned char edge_select,
8*9314a822SNam Cao 				 unsigned char bus_select,
9*9314a822SNam Cao 				 unsigned char dual_edge_clk_select,
10*9314a822SNam Cao 				 unsigned char hsync_enable,
11*9314a822SNam Cao 				 unsigned char vsync_enable,
12*9314a822SNam Cao 				 unsigned char deskew_enable,
13*9314a822SNam Cao 				 unsigned char deskew_setting,
14*9314a822SNam Cao 				 unsigned char continuous_sync_enable,
15*9314a822SNam Cao 				 unsigned char pll_filter_enable,
16*9314a822SNam Cao 				 unsigned char pll_filter_value);
17658373e5SNiranjan Dighe 
1881dee67eSSudip Mukherjee typedef void (*PFN_DVICTRL_RESETCHIP)(void);
1981dee67eSSudip Mukherjee typedef char* (*PFN_DVICTRL_GETCHIPSTRING)(void);
2081dee67eSSudip Mukherjee typedef unsigned short (*PFN_DVICTRL_GETVENDORID)(void);
2181dee67eSSudip Mukherjee typedef unsigned short (*PFN_DVICTRL_GETDEVICEID)(void);
22*9314a822SNam Cao typedef void (*PFN_DVICTRL_SETPOWER)(unsigned char power_up);
23*9314a822SNam Cao typedef void (*PFN_DVICTRL_HOTPLUGDETECTION)(unsigned char enable_hot_plug);
2481dee67eSSudip Mukherjee typedef unsigned char (*PFN_DVICTRL_ISCONNECTED)(void);
2581dee67eSSudip Mukherjee typedef unsigned char (*PFN_DVICTRL_CHECKINTERRUPT)(void);
2681dee67eSSudip Mukherjee typedef void (*PFN_DVICTRL_CLEARINTERRUPT)(void);
2781dee67eSSudip Mukherjee 
2881dee67eSSudip Mukherjee /* Structure to hold all the function pointer to the DVI Controller. */
29f290d491SMihaela Muraru struct dvi_ctrl_device {
30*9314a822SNam Cao 	PFN_DVICTRL_INIT		init;
31*9314a822SNam Cao 	PFN_DVICTRL_RESETCHIP		reset_chip;
32*9314a822SNam Cao 	PFN_DVICTRL_GETCHIPSTRING	get_chip_string;
33*9314a822SNam Cao 	PFN_DVICTRL_GETVENDORID		get_vendor_id;
34*9314a822SNam Cao 	PFN_DVICTRL_GETDEVICEID		get_device_id;
35*9314a822SNam Cao 	PFN_DVICTRL_SETPOWER		set_power;
36*9314a822SNam Cao 	PFN_DVICTRL_HOTPLUGDETECTION	enable_hot_plug_detection;
37*9314a822SNam Cao 	PFN_DVICTRL_ISCONNECTED		is_connected;
38*9314a822SNam Cao 	PFN_DVICTRL_CHECKINTERRUPT	check_interrupt;
39*9314a822SNam Cao 	PFN_DVICTRL_CLEARINTERRUPT	clear_interrupt;
40f290d491SMihaela Muraru };
41658373e5SNiranjan Dighe 
4281dee67eSSudip Mukherjee #define DVI_CTRL_SII164
4381dee67eSSudip Mukherjee 
4481dee67eSSudip Mukherjee /* dvi functions prototype */
45*9314a822SNam Cao int dvi_init(unsigned char edge_select,
46*9314a822SNam Cao 	     unsigned char bus_select,
47*9314a822SNam Cao 	     unsigned char dual_edge_clk_select,
48*9314a822SNam Cao 	     unsigned char hsync_enable,
49*9314a822SNam Cao 	     unsigned char vsync_enable,
50*9314a822SNam Cao 	     unsigned char deskew_enable,
51*9314a822SNam Cao 	     unsigned char deskew_setting,
52*9314a822SNam Cao 	     unsigned char continuous_sync_enable,
53*9314a822SNam Cao 	     unsigned char pll_filter_enable,
54*9314a822SNam Cao 	     unsigned char pll_filter_value);
5581dee67eSSudip Mukherjee 
5681dee67eSSudip Mukherjee #endif
5781dee67eSSudip Mukherjee 
58