Adaptation/GUID-9BBDFF77-5E2C-4E13-BEB3-716CC80B3375.dita
author Graeme Price <GRAEME.PRICE@NOKIA.COM>
Fri, 15 Oct 2010 14:32:18 +0100
changeset 15 307f4279f433
permissions -rw-r--r--
Initial contribution of the Adaptation Documentation.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-9BBDFF77-5E2C-4E13-BEB3-716CC80B3375" xml:lang="en"><title>SDIO Implementation Guide</title><shortdesc>How to port the SDIO Controller for your platform to provide
the SDIO adaptation.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>The SDIO implementation shares most of its functionality with the
Secure Digital (SD) Controller, which in turn extends the MultiMedia
Card (MMC) Controller. SDIO adds support for data transfer between
Input/Output hardware included on SDIO peripherals. The SDIO Controller
initializes SDIO peripherals and provides an API so that class drivers
can access the SDIO services.</p>
<p>Providing an SDIO adaptation for your platform means porting the
SDIO Controller. This is done by providing platform specific implementations
of the SDIO SHAI interface functions.</p>
<section id="GUID-64516BCF-2245-46DF-9E7F-FFC18AC7F691"><title>Prerequisites</title><p>SDIO depends on SD and MMC: the SDIO protocol is a super-set of
the SD protocol (and of the MMC protocol). Therefore, in addition
to the SDIO standard, you need to know about the following:<ul>
<li><p>SD (Secure Digital)</p></li>
<li><p>MMC (MultiMedia Card)</p></li>
</ul></p>     </section>
<section id="GUID-A6598353-0AC5-4DB0-82AD-C2F397CB5CD0"><title>Architecture</title><p>The following diagram illustrates the implementation of the SDIO
extension for the MMC Controller. The classes in green provide the
hardware interface and the classes in blue implement the platform-specific
functions.</p><fig id="GUID-AA66D99B-9EF2-4803-8D43-A3BDA180C9C9">
<title>SDIO Controller classes</title>
<image href="GUID-D5030CC5-1FC1-40F3-9D68-4A454B25C58B_d0e103563_href.png" placement="inline"/>
</fig></section>
<section id="GUID-20DF01A9-64AF-45E6-8F22-2E384F4177EA"><title>Implementation</title>The Platform-Independent Layer (PIL) of the SDIO Controller is made
up from three sets of files described in the following table:<p><table id="GUID-54A82958-4168-42CD-81DE-466CEA0FEEFC-GENID-1-2-1-10-1-5-1-9-1-1-8-1-5-1-3-5-2-1">
<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
<thead>
<row>
<entry valign="top">Standard</entry>
<entry valign="top">Source code location</entry>
</row>
</thead>
<tbody>
<row>
<entry>MMC</entry>
<entry><p><filepath>os/kernelhwsrv/kernel/eka/drivers/pbus/mmc</filepath></p><p>See also <xref href="GUID-40F2BC43-5022-5F4E-B445-56FEF43FEB8B.dita">Code Organization</xref> in the MMC section.</p></entry>
</row>
<row>
<entry>SD</entry>
<entry><filepath>os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/sdcard3c/</filepath><p>Also see <xref href="GUID-E194A923-99E7-5DC1-BB78-D050A4793A60.dita#GUID-E194A923-99E7-5DC1-BB78-D050A4793A60/GUID-59DA32AA-97F3-4001-9B6F-887E986C633D">Source Code</xref> in the SD section.</p></entry>
</row>
<row>
<entry>SDIO</entry>
<entry><filepath>os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/sdcard3c/sdio/</filepath></entry>
</row>
</tbody>
</tgroup>
</table></p><p>The Platform-Specific Layer (PSL) should be located
in a variant directory and have a similar folder hierarchy to the
PIL. It should provide the following implementations:<ul>
<li><p>Stack</p></li>
<li><p>Power Supply Unit (PSU)</p></li>
</ul> These implementations are discussed in the tutorials:<ul>
<li><p><xref href="GUID-2344B900-5EC5-4467-BEAD-AB55C88CE63E.dita">SDIO
Stack Implementation Tutorial</xref></p></li>
<li><p><xref href="GUID-7E3BBB18-3113-4312-AD91-897DE87C58BF.dita">SDIO
PSU Implementation Tutorial</xref></p></li>
</ul></p></section>
</conbody></concept>