|
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> |