// 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