Adaptation/GUID-7D535B68-CA7F-4796-80FB-AE7A27642A88.dita
changeset 15 307f4279f433
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Adaptation/GUID-7D535B68-CA7F-4796-80FB-AE7A27642A88.dita	Fri Oct 15 14:32:18 2010 +0100
@@ -0,0 +1,117 @@
+<?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-7D535B68-CA7F-4796-80FB-AE7A27642A88" xml:lang="en"><title>SDIO
+Overview</title><shortdesc>SDIO is an Input/Output interface based on the SD card standard. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>The intent behind SDIO is to allow the use of an SD slot for more than
+memory cards. SDIO allows I/O devices such as GPS, camera, Wi-Fi, FM radio,
+Ethernet, barcode readers and Bluetooth to be plugged into such a slot. </p>
+<p>However, with space being limited in modern mobile phones, memory card
+slots are usually microSD slots - which are too small to accept SDIO or miniSDIO
+cards. Also, memory card slots are often internal to the phone which prohibits the
+insertion of SDIO cards. Therefore in Symbian devices, SDIO is typically used
+only as an internal peripheral bus on all but hardware reference platforms.
+Because of its ability to provide high-speed data I/O with low power consumption,
+SDIO can be used to connect components such as Wi-Fi and FM radio peripheral
+chips to the main processor.</p>
+<section id="GUID-82B34422-2F2D-4D1E-860A-556FEB7FF41B"><title>Required background</title><p>You
+must have an understanding of SD card before using SDIO. </p></section>
+<section id="GUID-D5194E78-3B55-40C9-A832-7E24C2CC43D3">       <title>Architecture</title><fig id="GUID-00983E3C-72BE-40EC-9F93-216741F00CD6">
+<title>SDIO Architecture</title>
+<image href="GUID-A819DE06-7B00-4643-9D3E-EFE14132981C_d0e99133_href.png" placement="inline"/>
+</fig>           </section>
+<section id="GUID-CF3292E0-0BF4-4FC2-9253-D052AF89AC1E"><title>Description</title><p>The
+SDIO is divided into key modules described below.</p><ul>
+<li><p><i>Memory card</i> performs the SD or the MMC card operations. It registers
+the card driver, initializes the card, and sets permissions for the read and
+write operations</p></li>
+</ul><ul>
+<li><p><i>SDIO Host controller</i> is the most important module in the SDIO
+architecture. It has a driver that allows card initialization, bus width settings,
+clock frequency setting, sending and receiving of commands and SDIO interrupt
+handling.</p></li>
+</ul><ul>
+<li><p><i>General Card Functions</i> contains functions that are useful during
+the development of other card drivers. The module supplies the read/write
+SDIO/SD/MMC card register operations as well as select/deselect card, read
+card status and reset card procedures.</p></li>
+</ul></section>
+<section id="GUID-19CA14BB-BE60-4063-BB68-E960357D2C96"><title>Key Concepts</title><ul>
+<li><p><b>SDIO Interrupts:</b> SDIO Interrupts are level-sensitive interrupts.
+They communicate with the host through the SDIO line.  The signal is held
+active until the host acknowledges the interrupt through some function unique
+I/O operation.</p></li>
+</ul><ul>
+<li><p><b>SDIO Class Driver:</b> SDIO Driver supports the SDIO Host Controller.
+The driver includes functions such as initialization, bus settings, clock
+frequency setting, sending and receiving of commands, and SDIO interrupt handling.</p></li>
+</ul><ul>
+<li><p><b>SDIO card controller:</b> SDIO card protocol is a super-set of the
+SD card protocol. The SDIO Card Controller shares some of its functionality
+with the SD controller. The Symbian platform SDIO card controller is implemented
+as a set of SDIO card classes, each of which is derived from the corresponding
+SD card classes. The SDIO card controller provides support for SDIO cards
+within the E32 kernel. It manages access to the SDIO card hardware interface
+and provides an API for class drivers to access SDIO card functions. </p> </li>
+</ul></section>
+<section id="GUID-069B6CC3-9811-4BD8-869E-596BC1C0313F"><title>API summary</title><p>This
+API is used by the implementers of the class drivers.</p><table id="GUID-B0DC509E-F1BC-450F-9BBE-C3FFF85AEB06">
+<tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
+<thead>
+<row>
+<entry valign="top"><p>API names </p></entry>
+<entry valign="top"><p>Description</p></entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry><p><xref href="GUID-F84A87F1-7DDD-37D7-A936-EB5DEC4F4740.dita"><apiname>DSDIOSTACK</apiname></xref></p></entry>
+<entry><p>The stack can handle multiple outstanding requests simultaneously.
+ It schedules these requests onto the bus, thereby putting the appropriate
+card into transfer state automatically and running the appropriate state machine
+function. </p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-8E2210D1-CCE7-34B3-9D19-B7F79481CD67.dita"><apiname>TSDIOCARD</apiname></xref></p></entry>
+<entry><p>This class owns the I/O function objects. It provides access to
+an I/O function object provided through the <codeph>IOFunction()</codeph>,
+which returns a pointer to the object concerned. </p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-87D13F47-6680-34DD-956E-AB2A8C21AE19.dita"><apiname>DSDIOSESSION</apiname></xref></p></entry>
+<entry><p>This contains functions for setting up a session object to perform
+SDIO specific command sequences such as initialization, scheduling, invoking
+and submitting the session.</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-522BF42B-1A3F-3FF7-B227-39AC1A285C10.dita"><apiname>DSDIOREGINTERFACE</apiname></xref></p></entry>
+<entry><p>This contains the APIs that are used most frequently
+during the implementation of the SDIO class drivers. It contains member functions
+that allow single-byte read or write operations to a given register address
+together with the corresponding ones for multi-byte access</p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-7CC8E73B-0656-3ABD-AA70-6C309E74C035.dita"><apiname>TSDIOFUNCTION</apiname></xref></p></entry>
+<entry><p>This contains member functions for access and control of function-specific
+features such as function enable, function ready. It also has the member functions
+for access and control of FBR features such as CSA access and function block
+size. </p></entry>
+</row>
+<row>
+<entry><p><xref href="GUID-0CABFFC3-743C-35EB-99E0-1B0452E4A42B.dita"><apiname>TSDIOINTERRUPT</apiname></xref></p></entry>
+<entry><p>This contains the usual interrupt object member functions. It provides
+the abstraction of a per-function interrupt even though each function actually
+shares a single interrupt request signal on the card. </p></entry>
+</row>
+</tbody>
+</tgroup>
+</table></section>
+</conbody></concept>
\ No newline at end of file