|
1 <?xml version="1.0" encoding="utf-8"?> |
|
2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. --> |
|
3 <!-- This component and the accompanying materials are made available under the terms of the License |
|
4 "Eclipse Public License v1.0" which accompanies this distribution, |
|
5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". --> |
|
6 <!-- Initial Contributors: |
|
7 Nokia Corporation - initial contribution. |
|
8 Contributors: |
|
9 --> |
|
10 <!DOCTYPE concept |
|
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
|
12 <concept id="GUID-70041B11-4C03-42C6-9EC2-307E5FF0F626" xml:lang="en"><title>IIC Interface Overview</title><shortdesc>Provides a summary of IIC interface.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
13 <p>The IIC platform service provides APIs for a master channel and |
|
14 a slave channel. The PIL provides the generic platform independent |
|
15 functionality.</p> |
|
16 <section id="GUID-61CABBE0-B15D-47A1-9F12-95C74DAADFD6"> |
|
17 <title>Master channel</title> <p>You must derive a |
|
18 class from <xref href="GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B.dita"><apiname>DIicBusChannelMaster</apiname></xref> and implement certain |
|
19 pure virtual functions.</p> <table id="GUID-C138F5F0-138A-4C1B-A6DC-35548F413B64"> |
|
20 <tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/> |
|
21 <thead> |
|
22 <row> |
|
23 <entry valign="top">API</entry> |
|
24 <entry valign="top">Description</entry> |
|
25 </row> |
|
26 </thead> |
|
27 <tbody> |
|
28 <row> |
|
29 <entry><xref href="GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B.dita#GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B/GUID-E64BFB0C-8959-3FF6-B3C1-F6FC918832BF"><apiname>DIicBusChannelMaster::DoRequest(TIicBusTransaction* |
|
30 aTransaction)</apiname></xref></entry> |
|
31 <entry>Gateway function for the PSL implementation. This function |
|
32 allows the client to request a new channel.</entry> |
|
33 </row> |
|
34 <row> |
|
35 <entry><xref href="GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B.dita#GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B/GUID-6830B886-FD32-39E1-A0BE-1897131E27CB"><apiname>DIicBusChannelMaster::DoCreate()</apiname></xref></entry> |
|
36 <entry>Second phase constructor to create a new channel.</entry> |
|
37 </row> |
|
38 <row> |
|
39 <entry><xref href="GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B.dita#GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B/GUID-FB025EB1-1632-360B-AFFB-AEC508D2C291"><apiname>DIicBusChannelMaster::HandleSlaveTimeout()</apiname></xref></entry> |
|
40 <entry>Function to be called in the event of slave time out. Implement |
|
41 this function to stop the transmission, disable the hardware or call |
|
42 PIL function<xref href="GUID-853C87F1-0E44-3B1E-A97E-6461F1188B3A.dita"><apiname> CompleteRequest()</apiname></xref>.</entry> |
|
43 </row> |
|
44 <row> |
|
45 <entry><xref href="GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B.dita#GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B/GUID-DDF338C1-4F9F-3E01-9596-FAF42C3AE12A"><apiname>DIicBusChannelMaster::CheckHdr()</apiname></xref></entry> |
|
46 <entry>Function to check if the header of the transaction is valid.</entry> |
|
47 </row> |
|
48 </tbody> |
|
49 </tgroup> |
|
50 </table> </section> |
|
51 <section id="GUID-CBFFAB9D-B006-4B75-9508-44C29BEDD434"><title>PIL |
|
52 functions for master channel</title>The following functions can be |
|
53 used by the platform specific implementation of the IIC platform services.<table id="GUID-8ECF612B-CE35-4D94-9778-00481218D131"> |
|
54 <tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/> |
|
55 <thead> |
|
56 <row> |
|
57 <entry valign="top">API </entry> |
|
58 <entry valign="top">Description</entry> |
|
59 </row> |
|
60 </thead> |
|
61 <tbody> |
|
62 <row> |
|
63 <entry> <xref href="GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B.dita#GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B/GUID-F1103884-A156-36E8-967B-5A65404B5D70"><apiname>DIicBusChannelMaster::Init()</apiname></xref></entry> |
|
64 <entry>Initialise the child class <xref href="GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B.dita"><apiname>DIicBusChannelMaster</apiname></xref>.</entry> |
|
65 </row> |
|
66 <row> |
|
67 <entry><xref href="GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B.dita#GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B/GUID-3C7168AD-0832-3266-BDD2-991CC49971C5"><apiname>DIicBusChannelMaster::SetDfcQ()</apiname></xref></entry> |
|
68 <entry>To set the IIC driver's DFC queue to be used by the DFC of |
|
69 PIL.</entry> |
|
70 </row> |
|
71 <row> |
|
72 <entry><xref href="GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B.dita#GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B/GUID-740EAD34-9338-319C-BFCC-32664B0680A0"><apiname>DIicBusChannelMaster::StartSlaveTimeOutTimer()</apiname></xref></entry> |
|
73 <entry>To start a timer to wait for the slave class functions, if |
|
74 the time expires the <xref href="GUID-AD480427-A00E-3BB3-AD62-1B91A86B37A2.dita"><apiname>HandleSlaveTimeout()</apiname></xref> call |
|
75 up function is invoked by the clients.</entry> |
|
76 </row> |
|
77 <row> |
|
78 <entry><xref href="GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B.dita#GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B/GUID-540783BD-7970-3472-9812-FBE0040D9039"><apiname>DIicBusChannelMaster::CancelTimeOut()</apiname></xref></entry> |
|
79 <entry>To cancel the timer monitoring the transactions.</entry> |
|
80 </row> |
|
81 <row> |
|
82 <entry><xref href="GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B.dita#GUID-FA3881ED-B736-34EB-8F1F-026BE1602B1B/GUID-77CF7770-960A-314F-B97A-A59C9AA437AF"><apiname>DIicBusChannelMaster::CompleteRequest()</apiname></xref></entry> |
|
83 <entry>To notify the PIL of a completed transaction</entry> |
|
84 </row> |
|
85 </tbody> |
|
86 </tgroup> |
|
87 </table></section> |
|
88 <section id="GUID-4F13084A-B068-4E94-A167-FFC7B9C82434"><title>Slave |
|
89 channel</title>You must derive a class from <xref href="GUID-22FF70C1-A805-3EBB-B142-15FD16D00837.dita"><apiname>DIicBusChannelSlave</apiname></xref> and implement the following pure virtual functions:<table id="GUID-F1E731D5-F983-4439-A7AC-2B82F8828677"> |
|
90 <tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/> |
|
91 <thead> |
|
92 <row> |
|
93 <entry valign="top">API</entry> |
|
94 <entry valign="top">Description</entry> |
|
95 </row> |
|
96 </thead> |
|
97 <tbody> |
|
98 <row> |
|
99 <entry> <xref href="GUID-22FF70C1-A805-3EBB-B142-15FD16D00837.dita#GUID-22FF70C1-A805-3EBB-B142-15FD16D00837/GUID-07172C58-9EAD-39E3-9F50-34E9F14FAA35"><apiname>DIicBusChannelSlave::DoRequest()</apiname></xref></entry> |
|
100 <entry>The gateway function to the SHAI implementation layer.</entry> |
|
101 </row> |
|
102 <row> |
|
103 <entry> <xref href="GUID-22FF70C1-A805-3EBB-B142-15FD16D00837.dita#GUID-22FF70C1-A805-3EBB-B142-15FD16D00837/GUID-695FBFF9-3F47-3DAD-B416-E218BB7624D5"><apiname>DIicBusChannelSlave::DoCreate()</apiname></xref></entry> |
|
104 <entry>The second phase constructor function to create a new channel.</entry> |
|
105 </row> |
|
106 <row> |
|
107 <entry> <xref href="GUID-22FF70C1-A805-3EBB-B142-15FD16D00837.dita#GUID-22FF70C1-A805-3EBB-B142-15FD16D00837/GUID-9217102F-6501-3B3D-BB6C-D6833EDB315A"><apiname>DIicBusChannelSlave::ProcessData()</apiname></xref></entry> |
|
108 <entry> Called by the PIL in response to the <xref href="GUID-22FF70C1-A805-3EBB-B142-15FD16D00837.dita#GUID-22FF70C1-A805-3EBB-B142-15FD16D00837/GUID-0F1A82C1-E604-36F1-B71B-1387EC414A9A"><apiname>DIicBusChannelSlave::NotifyClient()</apiname></xref> function.</entry> |
|
109 </row> |
|
110 <row> |
|
111 <entry> <xref href="GUID-22FF70C1-A805-3EBB-B142-15FD16D00837.dita#GUID-22FF70C1-A805-3EBB-B142-15FD16D00837/GUID-C412A246-6565-331B-87C1-A32BF6CF6B89"><apiname>DIicBusChannelSlave::ChechHdr()</apiname></xref></entry> |
|
112 <entry>The function to validate a configuration.</entry> |
|
113 </row> |
|
114 </tbody> |
|
115 </tgroup> |
|
116 </table></section> |
|
117 <section id="GUID-D7FE7B2B-A9ED-47A1-BC0F-7575BE8DB747"><title>PIL |
|
118 function for slave channel</title>The following are the generic functions |
|
119 provided by the PIL of the IIC platform service: <table id="GUID-C1016541-E8FD-4C1C-9E7A-D6861FC21050"> |
|
120 <tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/> |
|
121 <thead> |
|
122 <row> |
|
123 <entry valign="top">API</entry> |
|
124 <entry valign="top">Description</entry> |
|
125 </row> |
|
126 </thead> |
|
127 <tbody> |
|
128 <row> |
|
129 <entry><xref href="GUID-22FF70C1-A805-3EBB-B142-15FD16D00837.dita#GUID-22FF70C1-A805-3EBB-B142-15FD16D00837/GUID-163A4AF3-21E4-359F-B10A-FDE2C2FECE82"><apiname>DIicBusChannelSlave::DIicBusChannelSlave()</apiname></xref></entry> |
|
130 <entry>Constructor function for PIL.</entry> |
|
131 </row> |
|
132 <row> |
|
133 <entry><xref href="GUID-22FF70C1-A805-3EBB-B142-15FD16D00837.dita#GUID-22FF70C1-A805-3EBB-B142-15FD16D00837/GUID-F6DB5014-3AF9-3573-9B19-9E6761860226"><apiname>DIicBusChannelSlave::Init()</apiname></xref></entry> |
|
134 <entry>Initialise the slave channel.</entry> |
|
135 </row> |
|
136 <row> |
|
137 <entry><xref href="GUID-22FF70C1-A805-3EBB-B142-15FD16D00837.dita#GUID-22FF70C1-A805-3EBB-B142-15FD16D00837/GUID-9B1B40FB-3767-3D73-8876-89EAAC96EFF0"><apiname>DIicBusChannelSlave::SetMasterWaitTime()</apiname></xref></entry> |
|
138 <entry>Set the timer to wait for the master channel to respond after |
|
139 a transmission is started.</entry> |
|
140 </row> |
|
141 <row> |
|
142 <entry><xref href="GUID-22FF70C1-A805-3EBB-B142-15FD16D00837.dita#GUID-22FF70C1-A805-3EBB-B142-15FD16D00837/GUID-16535EB6-2DBB-3682-A704-3BCB0618DA31"><apiname>DIicBusChannelSlave::GetMasterWaitTime()</apiname></xref></entry> |
|
143 <entry>Get the current delay to wait for the master channel to respond |
|
144 after a transmission is started.</entry> |
|
145 </row> |
|
146 <row> |
|
147 <entry><xref href="GUID-22FF70C1-A805-3EBB-B142-15FD16D00837.dita#GUID-22FF70C1-A805-3EBB-B142-15FD16D00837/GUID-E767FE3F-840C-3B5E-9DDC-CF00C3FF56BF"><apiname>DIicBusChannelSlave::SetClientWaitTime()</apiname></xref></entry> |
|
148 <entry>Set the timer of the client to respond for the next operation.</entry> |
|
149 </row> |
|
150 <row> |
|
151 <entry><xref href="GUID-22FF70C1-A805-3EBB-B142-15FD16D00837.dita#GUID-22FF70C1-A805-3EBB-B142-15FD16D00837/GUID-2124E2FF-5F58-35C4-BDB3-E7E3353EB83F"><apiname>DIicBusChannelSlave::GetClientWaitTime()</apiname></xref></entry> |
|
152 <entry>Get the current delay of the client to respond for the next |
|
153 operation.</entry> |
|
154 </row> |
|
155 <row> |
|
156 <entry><xref href="GUID-22FF70C1-A805-3EBB-B142-15FD16D00837.dita#GUID-22FF70C1-A805-3EBB-B142-15FD16D00837/GUID-0F1A82C1-E604-36F1-B71B-1387EC414A9A"><apiname>DIicBusChannelSlave::NotifyClient()</apiname></xref></entry> |
|
157 <entry>Notify clients of the slave channel events.</entry> |
|
158 </row> |
|
159 </tbody> |
|
160 </tgroup> |
|
161 </table><p>The header file for the IIC can be found <xref href="http://developer.symbian.org/xref/oss/xref/MCL/sf/os/kernelhwsrv/kernel/eka/include/drivers/iic.h.dita">here</xref></p></section> |
|
162 </conbody><related-links> |
|
163 <link href="GUID-C24A5B52-0B40-53B2-BF85-6ECC35BDCBA5.dita"><linktext>IIC |
|
164 Implementation Guide</linktext></link> |
|
165 </related-links></concept> |