// SPDX-License-Identifier: GPL-2.0
|
#define USE_DVICHIP
|
#ifdef USE_DVICHIP
|
#include "ddk750_chip.h"
|
#include "ddk750_reg.h"
|
#include "ddk750_dvi.h"
|
#include "ddk750_sii164.h"
|
|
/*
|
* This global variable contains all the supported driver and its corresponding
|
* function API. Please set the function pointer to NULL whenever the function
|
* is not supported.
|
*/
|
static struct dvi_ctrl_device g_dcftSupportedDviController[] = {
|
#ifdef DVI_CTRL_SII164
|
{
|
.pfnInit = sii164InitChip,
|
.pfnGetVendorId = sii164GetVendorID,
|
.pfnGetDeviceId = sii164GetDeviceID,
|
#ifdef SII164_FULL_FUNCTIONS
|
.pfnResetChip = sii164ResetChip,
|
.pfnGetChipString = sii164GetChipString,
|
.pfnSetPower = sii164SetPower,
|
.pfnEnableHotPlugDetection = sii164EnableHotPlugDetection,
|
.pfnIsConnected = sii164IsConnected,
|
.pfnCheckInterrupt = sii164CheckInterrupt,
|
.pfnClearInterrupt = sii164ClearInterrupt,
|
#endif
|
},
|
#endif
|
};
|
|
int dviInit(unsigned char edge_select,
|
unsigned char bus_select,
|
unsigned char dual_edge_clk_select,
|
unsigned char hsync_enable,
|
unsigned char vsync_enable,
|
unsigned char deskew_enable,
|
unsigned char deskew_setting,
|
unsigned char continuous_sync_enable,
|
unsigned char pll_filter_enable,
|
unsigned char pll_filter_value)
|
{
|
struct dvi_ctrl_device *pCurrentDviCtrl;
|
|
pCurrentDviCtrl = g_dcftSupportedDviController;
|
if (pCurrentDviCtrl->pfnInit) {
|
return pCurrentDviCtrl->pfnInit(edge_select,
|
bus_select,
|
dual_edge_clk_select,
|
hsync_enable,
|
vsync_enable,
|
deskew_enable,
|
deskew_setting,
|
continuous_sync_enable,
|
pll_filter_enable,
|
pll_filter_value);
|
}
|
return -1; /* error */
|
}
|
|
#endif
|