1b2441318SGreg Kroah-Hartman // SPDX-License-Identifier: GPL-2.0
281dee67eSSudip Mukherjee #define USE_DVICHIP
381dee67eSSudip Mukherjee #ifdef USE_DVICHIP
4efe9bc08SElise Lennion #include "ddk750_chip.h"
581dee67eSSudip Mukherjee #include "ddk750_reg.h"
681dee67eSSudip Mukherjee #include "ddk750_dvi.h"
781dee67eSSudip Mukherjee #include "ddk750_sii164.h"
881dee67eSSudip Mukherjee
92d17105eSEdward Lipinsky /*
102d17105eSEdward Lipinsky * This global variable contains all the supported driver and its corresponding
112d17105eSEdward Lipinsky * function API. Please set the function pointer to NULL whenever the function
122d17105eSEdward Lipinsky * is not supported.
132d17105eSEdward Lipinsky */
149314a822SNam Cao static struct dvi_ctrl_device dcft_supported_dvi_controller[] = {
1581dee67eSSudip Mukherjee #ifdef DVI_CTRL_SII164
1681dee67eSSudip Mukherjee {
17*72eb8304SAbdel Alkuor .init = sii164_init_chip,
18864a821cSNam Cao .get_vendor_id = sii164_get_vendor_id,
199314a822SNam Cao .get_device_id = sii164GetDeviceID,
2081dee67eSSudip Mukherjee #ifdef SII164_FULL_FUNCTIONS
219314a822SNam Cao .reset_chip = sii164ResetChip,
229314a822SNam Cao .get_chip_string = sii164GetChipString,
239314a822SNam Cao .set_power = sii164SetPower,
249314a822SNam Cao .enable_hot_plug_detection = sii164EnableHotPlugDetection,
259314a822SNam Cao .is_connected = sii164IsConnected,
269314a822SNam Cao .check_interrupt = sii164CheckInterrupt,
279314a822SNam Cao .clear_interrupt = sii164ClearInterrupt,
2881dee67eSSudip Mukherjee #endif
2981dee67eSSudip Mukherjee },
3081dee67eSSudip Mukherjee #endif
3181dee67eSSudip Mukherjee };
3281dee67eSSudip Mukherjee
dvi_init(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)339314a822SNam Cao int dvi_init(unsigned char edge_select,
34de5e4aeaSNishka Dasgupta unsigned char bus_select,
35de5e4aeaSNishka Dasgupta unsigned char dual_edge_clk_select,
36de5e4aeaSNishka Dasgupta unsigned char hsync_enable,
37de5e4aeaSNishka Dasgupta unsigned char vsync_enable,
38de5e4aeaSNishka Dasgupta unsigned char deskew_enable,
39de5e4aeaSNishka Dasgupta unsigned char deskew_setting,
40de5e4aeaSNishka Dasgupta unsigned char continuous_sync_enable,
41de5e4aeaSNishka Dasgupta unsigned char pll_filter_enable,
42de5e4aeaSNishka Dasgupta unsigned char pll_filter_value)
4381dee67eSSudip Mukherjee {
449314a822SNam Cao struct dvi_ctrl_device *current_dvi_ctrl;
4540403c1bSJuston Li
469314a822SNam Cao current_dvi_ctrl = dcft_supported_dvi_controller;
479314a822SNam Cao if (current_dvi_ctrl->init) {
489314a822SNam Cao return current_dvi_ctrl->init(edge_select,
49de5e4aeaSNishka Dasgupta bus_select,
50de5e4aeaSNishka Dasgupta dual_edge_clk_select,
51de5e4aeaSNishka Dasgupta hsync_enable,
52de5e4aeaSNishka Dasgupta vsync_enable,
53de5e4aeaSNishka Dasgupta deskew_enable,
54de5e4aeaSNishka Dasgupta deskew_setting,
55de5e4aeaSNishka Dasgupta continuous_sync_enable,
56de5e4aeaSNishka Dasgupta pll_filter_enable,
57de5e4aeaSNishka Dasgupta pll_filter_value);
5881dee67eSSudip Mukherjee }
595ee35ea7SJuston Li return -1; /* error */
6081dee67eSSudip Mukherjee }
6181dee67eSSudip Mukherjee
6281dee67eSSudip Mukherjee #endif
63