1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef DDK750_DVI_H__ 3 #define DDK750_DVI_H__ 4 5 /* dvi chip stuffs structros */ 6 7 typedef long (*PFN_DVICTRL_INIT)(unsigned char edge_select, 8 unsigned char bus_select, 9 unsigned char dual_edge_clk_select, 10 unsigned char hsync_enable, 11 unsigned char vsync_enable, 12 unsigned char deskew_enable, 13 unsigned char deskew_setting, 14 unsigned char continuous_sync_enable, 15 unsigned char pll_filter_enable, 16 unsigned char pll_filter_value); 17 18 typedef void (*PFN_DVICTRL_RESETCHIP)(void); 19 typedef char* (*PFN_DVICTRL_GETCHIPSTRING)(void); 20 typedef unsigned short (*PFN_DVICTRL_GETVENDORID)(void); 21 typedef unsigned short (*PFN_DVICTRL_GETDEVICEID)(void); 22 typedef void (*PFN_DVICTRL_SETPOWER)(unsigned char power_up); 23 typedef void (*PFN_DVICTRL_HOTPLUGDETECTION)(unsigned char enable_hot_plug); 24 typedef unsigned char (*PFN_DVICTRL_ISCONNECTED)(void); 25 typedef unsigned char (*PFN_DVICTRL_CHECKINTERRUPT)(void); 26 typedef void (*PFN_DVICTRL_CLEARINTERRUPT)(void); 27 28 /* Structure to hold all the function pointer to the DVI Controller. */ 29 struct dvi_ctrl_device { 30 PFN_DVICTRL_INIT init; 31 PFN_DVICTRL_RESETCHIP reset_chip; 32 PFN_DVICTRL_GETCHIPSTRING get_chip_string; 33 PFN_DVICTRL_GETVENDORID get_vendor_id; 34 PFN_DVICTRL_GETDEVICEID get_device_id; 35 PFN_DVICTRL_SETPOWER set_power; 36 PFN_DVICTRL_HOTPLUGDETECTION enable_hot_plug_detection; 37 PFN_DVICTRL_ISCONNECTED is_connected; 38 PFN_DVICTRL_CHECKINTERRUPT check_interrupt; 39 PFN_DVICTRL_CLEARINTERRUPT clear_interrupt; 40 }; 41 42 #define DVI_CTRL_SII164 43 44 /* dvi functions prototype */ 45 int dvi_init(unsigned char edge_select, 46 unsigned char bus_select, 47 unsigned char dual_edge_clk_select, 48 unsigned char hsync_enable, 49 unsigned char vsync_enable, 50 unsigned char deskew_enable, 51 unsigned char deskew_setting, 52 unsigned char continuous_sync_enable, 53 unsigned char pll_filter_enable, 54 unsigned char pll_filter_value); 55 56 #endif 57 58