|
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-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 |
|
13 the SDIO adaptation.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
14 <p>The SDIO implementation shares most of its functionality with the |
|
15 Secure Digital (SD) Controller, which in turn extends the MultiMedia |
|
16 Card (MMC) Controller. SDIO adds support for data transfer between |
|
17 Input/Output hardware included on SDIO peripherals. The SDIO Controller |
|
18 initializes SDIO peripherals and provides an API so that class drivers |
|
19 can access the SDIO services.</p> |
|
20 <p>Providing an SDIO adaptation for your platform means porting the |
|
21 SDIO Controller. This is done by providing platform specific implementations |
|
22 of the SDIO SHAI interface functions.</p> |
|
23 <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 |
|
24 the SD protocol (and of the MMC protocol). Therefore, in addition |
|
25 to the SDIO standard, you need to know about the following:<ul> |
|
26 <li><p>SD (Secure Digital)</p></li> |
|
27 <li><p>MMC (MultiMedia Card)</p></li> |
|
28 </ul></p> </section> |
|
29 <section id="GUID-A6598353-0AC5-4DB0-82AD-C2F397CB5CD0"><title>Architecture</title><p>The following diagram illustrates the implementation of the SDIO |
|
30 extension for the MMC Controller. The classes in green provide the |
|
31 hardware interface and the classes in blue implement the platform-specific |
|
32 functions.</p><fig id="GUID-AA66D99B-9EF2-4803-8D43-A3BDA180C9C9"> |
|
33 <title>SDIO Controller classes</title> |
|
34 <image href="GUID-D5030CC5-1FC1-40F3-9D68-4A454B25C58B_d0e103563_href.png" placement="inline"/> |
|
35 </fig></section> |
|
36 <section id="GUID-20DF01A9-64AF-45E6-8F22-2E384F4177EA"><title>Implementation</title>The Platform-Independent Layer (PIL) of the SDIO Controller is made |
|
37 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"> |
|
38 <tgroup cols="2"><colspec colname="col1"/><colspec colname="col2"/> |
|
39 <thead> |
|
40 <row> |
|
41 <entry valign="top">Standard</entry> |
|
42 <entry valign="top">Source code location</entry> |
|
43 </row> |
|
44 </thead> |
|
45 <tbody> |
|
46 <row> |
|
47 <entry>MMC</entry> |
|
48 <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> |
|
49 </row> |
|
50 <row> |
|
51 <entry>SD</entry> |
|
52 <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> |
|
53 </row> |
|
54 <row> |
|
55 <entry>SDIO</entry> |
|
56 <entry><filepath>os/kernelhwsrv/kernel/eka/drivers/pbus/mmc/sdcard/sdcard3c/sdio/</filepath></entry> |
|
57 </row> |
|
58 </tbody> |
|
59 </tgroup> |
|
60 </table></p><p>The Platform-Specific Layer (PSL) should be located |
|
61 in a variant directory and have a similar folder hierarchy to the |
|
62 PIL. It should provide the following implementations:<ul> |
|
63 <li><p>Stack</p></li> |
|
64 <li><p>Power Supply Unit (PSU)</p></li> |
|
65 </ul> These implementations are discussed in the tutorials:<ul> |
|
66 <li><p><xref href="GUID-2344B900-5EC5-4467-BEAD-AB55C88CE63E.dita">SDIO |
|
67 Stack Implementation Tutorial</xref></p></li> |
|
68 <li><p><xref href="GUID-7E3BBB18-3113-4312-AD91-897DE87C58BF.dita">SDIO |
|
69 PSU Implementation Tutorial</xref></p></li> |
|
70 </ul></p></section> |
|
71 </conbody></concept> |