Ask for IBM I2C controller on PPC440EP
From: 권기준 <hidden>
Date: 2007-04-06 09:05:50
<html><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=euc-kr"><meta http-equiv="Pragma" content="no-cache"><style>Body {font-size:9pt; font-family: 돋움} P, TR, TD, DIV, SPAN {font-size:9pt; font-family: 돋움;} P{line-height:160%; margin-top:0; margin-bottom:0;}</style></head><body><P><font face="Times New Roman"><span style="font-size:10pt;">Hi
all~</span></font></P>
<p><font face="Times New Roman"><span style="font-size:10pt;">I have a question
of IBM I2C driver(drivers/i2c/busses/i2c-ibm_iic.c) on PPC440EP.</span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;">It is described
in PPC440EP's datasheet that PPC440EP provides iic-complying with the
spec. contained the phillips@</span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;">Semiconductors
document THE I2C Bus and How to Use It- bus interface. </span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;">Simply, the i2c
protocol is as followed</span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;"> </span></font></p>
<P><font face="Times New Roman"><span style="font-size:10pt;">S Slave_Addr Wr [A] Addr [A] Data[A] ... [A] Data [A] P</span></font></P>
<p><font face="Times New Roman"><span style="font-size:10pt;"> </span></font></p>
<P><font face="Times New Roman"><span style="font-size:10pt;">* S (1bit): Start Bit</span></font></P>
<P><font face="Times New Roman"><span style="font-size:10pt;"> P (1bit): Stop Bit</span></font></P>
<P><font face="Times New Roman"><span style="font-size:10pt;"> Wr(1bit) : Write bit</span></font></P>
<P><font face="Times New Roman"><span style="font-size:10pt;"> Slave_Addr(7bit
or 10bit): I2C Slave Device Address</span></font></P>
<P><font face="Times New Roman"><span style="font-size:10pt;"> Addr(8bit): Internal
Register Address</span></font></P>
<P><font face="Times New Roman"><span style="font-size:10pt;"> Data(8bit): Data</span></font></P>
<p><font face="Times New Roman"><span style="font-size:10pt;"> </span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;">But, now I have
been programming the device driver of MDI180 VGA chip. When I change the MDI180's
register value using i2c,</span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;">it doesn't work.
After finding the reason, I found that MDI180's i2c is different from that of
Phillipse. </span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;">The MDI180's i2c
protocol is as followed</span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;"> </span></font></p>
<P><font face="Times New Roman"><span style="font-size:10pt;">S Slave_Addr Wr [A] Addr1 [A] Addr2 [A] [Sr] Slave_Addr Wr [A] Data [A] Data
[A] ... [A] P</span></font></P>
<P><font face="Times New Roman"><span style="font-size:10pt;"> </span></font></P>
<P><font face="Times New Roman"><span style="font-size:10pt;">* S (1bit): Start Bit</span></font></P>
<P><font face="Times New Roman"><span style="font-size:10pt;"> P (1bit): Stop Bit</span></font></P>
<P><font face="Times New Roman"><span style="font-size:10pt;"> Wr(1bit) : Write bit</span></font></P>
<p><font face="Times New Roman"><span style="font-size:10pt;"> Sr(1bit):
Restart bit</span></font></p>
<P><font face="Times New Roman"><span style="font-size:10pt;"> Slave_Addr(7bit): I2C Slave Device Address</span></font></P>
<P><font face="Times New Roman"><span style="font-size:10pt;"> Addr1(8bit): MSB of Address</span></font></P>
<P><font face="Times New Roman"><span style="font-size:10pt;"> Addr2(8bit): LSB of Address</span></font></P>
<P><font face="Times New Roman"><span style="font-size:10pt;"> Data(8bit): Data</span></font></P>
<p><font face="Times New Roman"><span style="font-size:10pt;"> </span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;">It seems that
if I try to write Addr[15:0], Data[15:0] sequencely, it can be worked.
</span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;">For example, S Slave_Addr Wr [A] Addr [A] P
S Slave_Addr Wr Data[A] ] Data [A] P</span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;">But, It doesn't
work. Maybe stop bit between Addr[15:0] and Data[15:0] cause the problem.</span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;"> So I tried
to modify the IBM's i2c device driver for implementing the MDI180 I2C protocol.
</span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;">But I found that
ppc440EP's i2c module is work using address and data buffer. So, it is impossible
to include </span></font></p>
<P><font face="Times New Roman"><span style="font-size:10pt;">I2C Slave Device Address
twice in one i2c packet or remove the stop bit between Addr[15:0] and Data[15:0].
</span></font></P>
<p><font face="Times New Roman"><span style="font-size:10pt;"> </span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;">Is it possibe
to support non-standard i2c protocol(MDI180) using PPC440EP?</span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;">If it is possible,
please teach me the solution or patch that support non-standard i2c protocol(MDI180)?</span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;"> </span></font></p>
<p><font face="Times New Roman"><span style="font-size:10pt;">For easy understanding,
I attach the MDI180 I2C protocol document.</span></font></p>
<p> </p>
<p> </p>
<p> </p>
<P> Kijun, Kwon</P>
<p> </p>
---------------------------------------------------<br>권기준(우편번호: 135-973)<br>서울 강남구 삼성동 159-9 도심공항타워 13층 (주)아이디스<br>전화: 02-3429-9176<br>팩스: 02-561-9889<br>전자우편: gjkwon@idis.co.kr<br>회사홈페이지: www.idis.co.kr<br>---------------------------------------------------<P> </P><P> </P></body></html> Attachments
- MDI180-I2C.JPG [application/octet-stream] 89048 bytes