1 ///*****************************************
2 // Copyright (C) 2009-2014
3 // ITE Tech. Inc. All Rights Reserved
4 // Proprietary and Confidential
5 ///*****************************************
6 // @file >cat66121_sys.c<
7 // @author Jau-Chih.Tseng@ite.com.tw
9 // @fileversion: cat66121_SAMPLEINTERFACE_1.12
10 //******************************************/
12 ///////////////////////////////////////////////////////////////////////////////
13 // This is the sample program for cat66121 driver usage.
14 ///////////////////////////////////////////////////////////////////////////////
17 #include "hdmitx_sys.h"
18 #include "cat66121_hdmi.h"
21 BYTE HDMITX_ReadI2C_Byte(BYTE RegAddr);
22 SYS_STATUS HDMITX_WriteI2C_Byte(BYTE RegAddr,BYTE d);
23 SYS_STATUS HDMITX_ReadI2C_ByteN(BYTE RegAddr,BYTE *pData,int N);
24 SYS_STATUS HDMITX_WriteI2C_ByteN(BYTE RegAddr,BYTE *pData,int N);
25 SYS_STATUS HDMITX_SetI2C_Byte(BYTE Reg,BYTE Mask,BYTE Value);
27 /* I2C read/write funcs */
28 BYTE HDMITX_ReadI2C_Byte(BYTE RegAddr)
30 struct i2c_msg msgs[2];
36 /* Write device addr fisrt */
37 msgs[0].addr = cat66121_hdmi->client->addr;
38 msgs[0].flags = !I2C_M_RD;
40 msgs[0].buf = &buf[0];
41 msgs[0].scl_rate= 100*1000;
42 /* Then, begin to read data */
43 msgs[1].addr = cat66121_hdmi->client->addr;
44 msgs[1].flags = I2C_M_RD;
46 msgs[1].buf = &buf[0];
47 msgs[1].scl_rate= 100*1000;
49 ret = i2c_transfer(cat66121_hdmi->client->adapter, msgs, 2);
51 printk("I2C transfer Error! ret = %d\n", ret);
53 //ErrorF("Reg%02xH: 0x%02x\n", RegAddr, buf[0]);
57 SYS_STATUS HDMITX_WriteI2C_Byte(BYTE RegAddr, BYTE data)
66 msg.addr = cat66121_hdmi->client->addr;
67 msg.flags = !I2C_M_RD;
70 msg.scl_rate= 100*1000;
72 ret = i2c_transfer(cat66121_hdmi->client->adapter, &msg, 1);
74 printk("I2C transfer Error!\n");
79 SYS_STATUS HDMITX_ReadI2C_ByteN(BYTE RegAddr, BYTE *pData, int N)
81 struct i2c_msg msgs[2];
86 msgs[0].addr = cat66121_hdmi->client->addr;
87 msgs[0].flags = !I2C_M_RD;
89 msgs[0].buf = &pData[0];
90 msgs[0].scl_rate= 100*1000;
92 msgs[1].addr = cat66121_hdmi->client->addr;
93 msgs[1].flags = I2C_M_RD;
96 msgs[1].scl_rate= 100*1000;
98 ret = i2c_transfer(cat66121_hdmi->client->adapter, msgs, 2);
100 printk("I2C transfer Error! ret = %d\n", ret);
105 SYS_STATUS HDMITX_WriteI2C_ByteN(BYTE RegAddr, BYTE *pData, int N)
112 memcpy(&buf[1], pData, N);
114 msg.addr = cat66121_hdmi->client->addr;
115 msg.flags = !I2C_M_RD;
117 msg.buf = buf; // gModify.Exp."Include RegAddr"
118 msg.scl_rate= 100*1000;
120 ret = i2c_transfer(cat66121_hdmi->client->adapter, &msg, 1);
122 printk("I2C transfer Error! ret = %d\n", ret);
126 static int cat66121_hdmi_i2c_read_reg(char reg, char *val)
128 if(i2c_master_reg8_recv(cat66121_hdmi->client, reg, val, 1, 100*1000) > 0)
131 printk("[%s] reg %02x error\n", __FUNCTION__, reg);
135 /*******************************
137 ******************************/
139 /*******************************
141 ******************************/
142 int cat66121_detect_device(void)
144 printk(">>>%s \n",__func__);
148 int cat66121_sys_init(struct hdmi *hdmi)
150 printk(">>>%s \n",__func__);
151 InitHDMITX_Variable();
153 HDMITX_ChangeDisplayOption(HDMI_720p60,HDMI_RGB444) ;
154 HDMITX_DevLoopProc();
155 return HDMI_ERROR_SUCESS;
158 int cat66121_sys_unplug(struct hdmi *hdmi)
160 printk(">>>%s \n",__func__);
161 return HDMI_ERROR_SUCESS;
164 int cat66121_sys_detect_hpd(struct hdmi *hdmi, int *hpdstatus)
166 printk(">>>%s \n",__func__);
169 return HDMI_ERROR_SUCESS;
172 int cat66121_sys_detect_sink(struct hdmi *hdmi, int *sink_status)
174 printk(">>>%s \n",__func__);
176 return HDMI_ERROR_SUCESS;
179 int cat66121_sys_read_edid(struct hdmi *hdmi, int block, unsigned char *buff)
181 printk(">>>%s \n",__func__);
182 return HDMI_ERROR_SUCESS;
185 static void cat66121_sys_config_avi(int VIC, int bOutputColorMode, int aspec, int Colorimetry, int pixelrep)
189 int cat66121_sys_config_video(struct hdmi *hdmi, int vic, int input_color, int output_color)
191 printk(">>>%s \n",__func__);
192 HDMITX_DevLoopProc();
193 return HDMI_ERROR_SUCESS ;
196 static void cat66121_sys_config_aai(void)
198 printk(">>>%s \n",__func__);
201 int cat66121_sys_config_audio(struct hdmi *hdmi, struct hdmi_audio *audio)
203 printk(">>>%s \n",__func__);
204 return HDMI_ERROR_SUCESS;
207 int cat66121_sys_config_hdcp(struct hdmi *hdmi, int enable)
209 printk(">>>%s \n",__func__);
210 return HDMI_ERROR_SUCESS;
213 int cat66121_sys_enalbe_output(struct hdmi *hdmi, int enable)
215 printk(">>>%s \n",__func__);
216 return HDMI_ERROR_SUCESS;