Adaptation/GUID-70041B11-4C03-42C6-9EC2-307E5FF0F626.dita
changeset 15 307f4279f433
equal deleted inserted replaced
14:578be2adaf3e 15:307f4279f433
       
     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>