GNU Linux-libre 5.19-rc6-gnu
[releases.git] / drivers / staging / sm750fb / ddk750_dvi.h
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