Adaptation/GUID-7D535B68-CA7F-4796-80FB-AE7A27642A88.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-7D535B68-CA7F-4796-80FB-AE7A27642A88" xml:lang="en"><title>SDIO
       
    13 Overview</title><shortdesc>SDIO is an Input/Output interface based on the SD card standard. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    14 <p>The intent behind SDIO is to allow the use of an SD slot for more than
       
    15 memory cards. SDIO allows I/O devices such as GPS, camera, Wi-Fi, FM radio,
       
    16 Ethernet, barcode readers and Bluetooth to be plugged into such a slot. </p>
       
    17 <p>However, with space being limited in modern mobile phones, memory card
       
    18 slots are usually microSD slots - which are too small to accept SDIO or miniSDIO
       
    19 cards. Also, memory card slots are often internal to the phone which prohibits the
       
    20 insertion of SDIO cards. Therefore in Symbian devices, SDIO is typically used
       
    21 only as an internal peripheral bus on all but hardware reference platforms.
       
    22 Because of its ability to provide high-speed data I/O with low power consumption,
       
    23 SDIO can be used to connect components such as Wi-Fi and FM radio peripheral
       
    24 chips to the main processor.</p>
       
    25 <section id="GUID-82B34422-2F2D-4D1E-860A-556FEB7FF41B"><title>Required background</title><p>You
       
    26 must have an understanding of SD card before using SDIO. </p></section>
       
    27 <section id="GUID-D5194E78-3B55-40C9-A832-7E24C2CC43D3">       <title>Architecture</title><fig id="GUID-00983E3C-72BE-40EC-9F93-216741F00CD6">
       
    28 <title>SDIO Architecture</title>
       
    29 <image href="GUID-A819DE06-7B00-4643-9D3E-EFE14132981C_d0e99133_href.png" placement="inline"/>
       
    30 </fig>           </section>
       
    31 <section id="GUID-CF3292E0-0BF4-4FC2-9253-D052AF89AC1E"><title>Description</title><p>The
       
    32 SDIO is divided into key modules described below.</p><ul>
       
    33 <li><p><i>Memory card</i> performs the SD or the MMC card operations. It registers
       
    34 the card driver, initializes the card, and sets permissions for the read and
       
    35 write operations</p></li>
       
    36 </ul><ul>
       
    37 <li><p><i>SDIO Host controller</i> is the most important module in the SDIO
       
    38 architecture. It has a driver that allows card initialization, bus width settings,
       
    39 clock frequency setting, sending and receiving of commands and SDIO interrupt
       
    40 handling.</p></li>
       
    41 </ul><ul>
       
    42 <li><p><i>General Card Functions</i> contains functions that are useful during
       
    43 the development of other card drivers. The module supplies the read/write
       
    44 SDIO/SD/MMC card register operations as well as select/deselect card, read
       
    45 card status and reset card procedures.</p></li>
       
    46 </ul></section>
       
    47 <section id="GUID-19CA14BB-BE60-4063-BB68-E960357D2C96"><title>Key Concepts</title><ul>
       
    48 <li><p><b>SDIO Interrupts:</b> SDIO Interrupts are level-sensitive interrupts.
       
    49 They communicate with the host through the SDIO line.  The signal is held
       
    50 active until the host acknowledges the interrupt through some function unique
       
    51 I/O operation.</p></li>
       
    52 </ul><ul>
       
    53 <li><p><b>SDIO Class Driver:</b> SDIO Driver supports the SDIO Host Controller.
       
    54 The driver includes functions such as initialization, bus settings, clock
       
    55 frequency setting, sending and receiving of commands, and SDIO interrupt handling.</p></li>
       
    56 </ul><ul>
       
    57 <li><p><b>SDIO card controller:</b> SDIO card protocol is a super-set of the
       
    58 SD card protocol. The SDIO Card Controller shares some of its functionality
       
    59 with the SD controller. The Symbian platform SDIO card controller is implemented
       
    60 as a set of SDIO card classes, each of which is derived from the corresponding
       
    61 SD card classes. The SDIO card controller provides support for SDIO cards
       
    62 within the E32 kernel. It manages access to the SDIO card hardware interface
       
    63 and provides an API for class drivers to access SDIO card functions. </p> </li>
       
    64 </ul></section>
       
    65 <section id="GUID-069B6CC3-9811-4BD8-869E-596BC1C0313F"><title>API summary</title><p>This
       
    66 API is used by the implementers of the class drivers.</p><table id="GUID-B0DC509E-F1BC-450F-9BBE-C3FFF85AEB06">
       
    67 <tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/>
       
    68 <thead>
       
    69 <row>
       
    70 <entry valign="top"><p>API names </p></entry>
       
    71 <entry valign="top"><p>Description</p></entry>
       
    72 </row>
       
    73 </thead>
       
    74 <tbody>
       
    75 <row>
       
    76 <entry><p><xref href="GUID-F84A87F1-7DDD-37D7-A936-EB5DEC4F4740.dita"><apiname>DSDIOSTACK</apiname></xref></p></entry>
       
    77 <entry><p>The stack can handle multiple outstanding requests simultaneously.
       
    78  It schedules these requests onto the bus, thereby putting the appropriate
       
    79 card into transfer state automatically and running the appropriate state machine
       
    80 function. </p></entry>
       
    81 </row>
       
    82 <row>
       
    83 <entry><p><xref href="GUID-8E2210D1-CCE7-34B3-9D19-B7F79481CD67.dita"><apiname>TSDIOCARD</apiname></xref></p></entry>
       
    84 <entry><p>This class owns the I/O function objects. It provides access to
       
    85 an I/O function object provided through the <codeph>IOFunction()</codeph>,
       
    86 which returns a pointer to the object concerned. </p></entry>
       
    87 </row>
       
    88 <row>
       
    89 <entry><p><xref href="GUID-87D13F47-6680-34DD-956E-AB2A8C21AE19.dita"><apiname>DSDIOSESSION</apiname></xref></p></entry>
       
    90 <entry><p>This contains functions for setting up a session object to perform
       
    91 SDIO specific command sequences such as initialization, scheduling, invoking
       
    92 and submitting the session.</p></entry>
       
    93 </row>
       
    94 <row>
       
    95 <entry><p><xref href="GUID-522BF42B-1A3F-3FF7-B227-39AC1A285C10.dita"><apiname>DSDIOREGINTERFACE</apiname></xref></p></entry>
       
    96 <entry><p>This contains the APIs that are used most frequently
       
    97 during the implementation of the SDIO class drivers. It contains member functions
       
    98 that allow single-byte read or write operations to a given register address
       
    99 together with the corresponding ones for multi-byte access</p></entry>
       
   100 </row>
       
   101 <row>
       
   102 <entry><p><xref href="GUID-7CC8E73B-0656-3ABD-AA70-6C309E74C035.dita"><apiname>TSDIOFUNCTION</apiname></xref></p></entry>
       
   103 <entry><p>This contains member functions for access and control of function-specific
       
   104 features such as function enable, function ready. It also has the member functions
       
   105 for access and control of FBR features such as CSA access and function block
       
   106 size. </p></entry>
       
   107 </row>
       
   108 <row>
       
   109 <entry><p><xref href="GUID-0CABFFC3-743C-35EB-99E0-1B0452E4A42B.dita"><apiname>TSDIOINTERRUPT</apiname></xref></p></entry>
       
   110 <entry><p>This contains the usual interrupt object member functions. It provides
       
   111 the abstraction of a per-function interrupt even though each function actually
       
   112 shares a single interrupt request signal on the card. </p></entry>
       
   113 </row>
       
   114 </tbody>
       
   115 </tgroup>
       
   116 </table></section>
       
   117 </conbody></concept>