it66121: update and remove debug log
[firefly-linux-kernel-4.4.55.git] / drivers / video / rockchip / hdmi / chips / cat66121 / cat66121_sys.c
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
8 //   @date   2009/08/24
9 //   @fileversion: cat66121_SAMPLEINTERFACE_1.12
10 //******************************************/
11
12 ///////////////////////////////////////////////////////////////////////////////
13 // This is the sample program for cat66121 driver usage.
14 ///////////////////////////////////////////////////////////////////////////////
15
16 #include "hdmitx.h"
17 #include "hdmitx_sys.h"
18 #include "cat66121_hdmi.h"
19
20 #if 0
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);
26 #endif
27 /* I2C read/write funcs */
28 BYTE HDMITX_ReadI2C_Byte(BYTE RegAddr)
29 {
30         struct i2c_msg msgs[2];
31         SYS_STATUS ret = -1;
32         BYTE buf[1];
33
34         buf[0] = RegAddr;
35
36         /* Write device addr fisrt */
37         msgs[0].addr    = cat66121_hdmi->client->addr;
38         msgs[0].flags   = !I2C_M_RD;
39         msgs[0].len             = 1;
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;
45         msgs[1].len             = 1;
46         msgs[1].buf             = &buf[0];
47         msgs[1].scl_rate= 100*1000;
48         
49         ret = i2c_transfer(cat66121_hdmi->client->adapter, msgs, 2);
50         if(ret != 2)
51                 printk("I2C transfer Error! ret = %d\n", ret);
52
53         //ErrorF("Reg%02xH: 0x%02x\n", RegAddr, buf[0]);
54         return buf[0];
55 }
56
57 SYS_STATUS HDMITX_WriteI2C_Byte(BYTE RegAddr, BYTE data)
58 {
59         struct i2c_msg msg;
60         SYS_STATUS ret = -1;
61         BYTE buf[2];
62
63         buf[0] = RegAddr;
64         buf[1] = data;
65
66         msg.addr        = cat66121_hdmi->client->addr;
67         msg.flags       = !I2C_M_RD;
68         msg.len         = 2;
69         msg.buf         = buf;          
70         msg.scl_rate= 100*1000;
71         
72         ret = i2c_transfer(cat66121_hdmi->client->adapter, &msg, 1);
73         if(ret != 1)
74                 printk("I2C transfer Error!\n");
75
76         return ret;
77 }
78
79 SYS_STATUS HDMITX_ReadI2C_ByteN(BYTE RegAddr, BYTE *pData, int N)
80 {
81         struct i2c_msg msgs[2];
82         SYS_STATUS ret = -1;
83
84         pData[0] = RegAddr;
85
86         msgs[0].addr    = cat66121_hdmi->client->addr;
87         msgs[0].flags   = !I2C_M_RD;
88         msgs[0].len             = 1;
89         msgs[0].buf             = &pData[0];
90         msgs[0].scl_rate= 100*1000;
91
92         msgs[1].addr    = cat66121_hdmi->client->addr;
93         msgs[1].flags   = I2C_M_RD;
94         msgs[1].len             = N;
95         msgs[1].buf             = pData;
96         msgs[1].scl_rate= 100*1000;
97         
98         ret = i2c_transfer(cat66121_hdmi->client->adapter, msgs, 2);
99         if(ret != 2)
100                 printk("I2C transfer Error! ret = %d\n", ret);
101
102         return ret;
103 }
104
105 SYS_STATUS HDMITX_WriteI2C_ByteN(BYTE RegAddr, BYTE *pData, int N)
106 {
107         struct i2c_msg msg;
108         SYS_STATUS ret = -1;
109         BYTE buf[N + 1];
110
111         buf[0] = RegAddr;
112     memcpy(&buf[1], pData, N);
113
114         msg.addr        = cat66121_hdmi->client->addr;
115         msg.flags       = !I2C_M_RD;
116         msg.len         = N + 1;
117         msg.buf         = buf;          // gModify.Exp."Include RegAddr"
118         msg.scl_rate= 100*1000;
119         
120         ret = i2c_transfer(cat66121_hdmi->client->adapter, &msg, 1);
121         if(ret != 1)
122                 printk("I2C transfer Error! ret = %d\n", ret);
123
124         return ret;
125 }
126 static int cat66121_hdmi_i2c_read_reg(char reg, char *val)
127 {
128         if(i2c_master_reg8_recv(cat66121_hdmi->client, reg, val, 1, 100*1000) > 0)
129                 return  0;
130         else {
131                 printk("[%s] reg %02x error\n", __FUNCTION__, reg);
132                 return -EINVAL;
133         }
134 }
135 /*******************************
136  * Global Data
137  ******************************/
138
139 /*******************************
140  * Functions
141  ******************************/
142 int cat66121_detect_device(void)
143 {
144         printk(">>>%s \n",__func__);
145         return 0;
146 }
147
148 int cat66121_sys_init(struct hdmi *hdmi)
149 {
150         printk(">>>%s \n",__func__);
151         InitHDMITX_Variable();
152         InitHDMITX();
153         HDMITX_ChangeDisplayOption(HDMI_720p60,HDMI_RGB444) ;
154             HDMITX_DevLoopProc();
155         return HDMI_ERROR_SUCESS;
156 }
157
158 int cat66121_sys_unplug(struct hdmi *hdmi)
159 {
160         printk(">>>%s \n",__func__);
161         return HDMI_ERROR_SUCESS;
162 }
163
164 int cat66121_sys_detect_hpd(struct hdmi *hdmi, int *hpdstatus)
165 {
166         printk(">>>%s \n",__func__);
167     *hpdstatus = TRUE;
168     
169     return HDMI_ERROR_SUCESS;
170 }
171
172 int cat66121_sys_detect_sink(struct hdmi *hdmi, int *sink_status)
173 {
174         printk(">>>%s \n",__func__);
175     *sink_status = TRUE;
176     return HDMI_ERROR_SUCESS;
177 }
178
179 int cat66121_sys_read_edid(struct hdmi *hdmi, int block, unsigned char *buff)
180 {
181         printk(">>>%s \n",__func__);
182         return HDMI_ERROR_SUCESS;
183 }
184
185 static void cat66121_sys_config_avi(int VIC, int bOutputColorMode, int aspec, int Colorimetry, int pixelrep)
186 {
187 }
188
189 int cat66121_sys_config_video(struct hdmi *hdmi, int vic, int input_color, int output_color)
190 {
191         printk(">>>%s \n",__func__);
192             HDMITX_DevLoopProc();
193         return HDMI_ERROR_SUCESS ;
194 }
195
196 static void cat66121_sys_config_aai(void)
197 {
198         printk(">>>%s \n",__func__);
199 }
200
201 int cat66121_sys_config_audio(struct hdmi *hdmi, struct hdmi_audio *audio)
202 {
203         printk(">>>%s \n",__func__);
204         return HDMI_ERROR_SUCESS;
205 }
206
207 int cat66121_sys_config_hdcp(struct hdmi *hdmi, int enable)
208 {
209         printk(">>>%s \n",__func__);
210         return HDMI_ERROR_SUCESS;
211 }
212
213 int cat66121_sys_enalbe_output(struct hdmi *hdmi, int enable)
214 {
215         printk(">>>%s \n",__func__);
216         return HDMI_ERROR_SUCESS;
217 }