Merge branch 'master' of https://scm.osdn.net/gitroot/tomoyo/tomoyo-test1
[linux-2.6-microblaze.git] / drivers / staging / sm750fb / ddk750_dvi.c
1 // SPDX-License-Identifier: GPL-2.0
2 #define USE_DVICHIP
3 #ifdef USE_DVICHIP
4 #include "ddk750_chip.h"
5 #include "ddk750_reg.h"
6 #include "ddk750_dvi.h"
7 #include "ddk750_sii164.h"
8
9 /*
10  * This global variable contains all the supported driver and its corresponding
11  * function API. Please set the function pointer to NULL whenever the function
12  * is not supported.
13  */
14 static struct dvi_ctrl_device g_dcftSupportedDviController[] = {
15 #ifdef DVI_CTRL_SII164
16         {
17                 .pfnInit = sii164InitChip,
18                 .pfnGetVendorId = sii164GetVendorID,
19                 .pfnGetDeviceId = sii164GetDeviceID,
20 #ifdef SII164_FULL_FUNCTIONS
21                 .pfnResetChip = sii164ResetChip,
22                 .pfnGetChipString = sii164GetChipString,
23                 .pfnSetPower = sii164SetPower,
24                 .pfnEnableHotPlugDetection = sii164EnableHotPlugDetection,
25                 .pfnIsConnected = sii164IsConnected,
26                 .pfnCheckInterrupt = sii164CheckInterrupt,
27                 .pfnClearInterrupt = sii164ClearInterrupt,
28 #endif
29         },
30 #endif
31 };
32
33 int dviInit(unsigned char edge_select,
34             unsigned char bus_select,
35             unsigned char dual_edge_clk_select,
36             unsigned char hsync_enable,
37             unsigned char vsync_enable,
38             unsigned char deskew_enable,
39             unsigned char deskew_setting,
40             unsigned char continuous_sync_enable,
41             unsigned char pll_filter_enable,
42             unsigned char pll_filter_value)
43 {
44         struct dvi_ctrl_device *pCurrentDviCtrl;
45
46         pCurrentDviCtrl = g_dcftSupportedDviController;
47         if (pCurrentDviCtrl->pfnInit) {
48                 return pCurrentDviCtrl->pfnInit(edge_select,
49                                                 bus_select,
50                                                 dual_edge_clk_select,
51                                                 hsync_enable,
52                                                 vsync_enable,
53                                                 deskew_enable,
54                                                 deskew_setting,
55                                                 continuous_sync_enable,
56                                                 pll_filter_enable,
57                                                 pll_filter_value);
58         }
59         return -1; /* error */
60 }
61
62 #endif