Symbian3/PDK/Source/GUID-5471CDD4-030E-4509-8B7C-603C9B7953B4.dita
changeset 5 f345bda72bc4
equal deleted inserted replaced
4:4816d766a08a 5:f345bda72bc4
       
     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-5471CDD4-030E-4509-8B7C-603C9B7953B4" xml:lang="en"><title>GPIO
       
    13 Technology Guide</title><shortdesc>Discusses GPIO technology as specified for implementation as a
       
    14 SHAI.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    15 <section id="GUID-087A2FDD-8879-5944-9C0E-05ABD9FFAF50"><title>Purpose</title><p>GPIO
       
    16 (General Purpose Input/Output) is a communication interface between microprocessor
       
    17 components. GPIOs consist of binary inputs/outputs called pins, arranged in
       
    18 groups called modules, typically of up to 32 pins in a module. GPIO is often
       
    19 used to implement hardware interrupts and CPU wakeup and also to control peripherals. </p> <p>Symbian
       
    20 platform defines a single static exported class <xref href="GUID-C93C53D3-2BE8-36AE-83B8-4CDB4195649B.dita"><apiname>GPIO</apiname></xref> for
       
    21 device drivers to use to access the GPIO hardware on the device. The SHAI
       
    22 does not provide an implementation of the class. When you implement a board
       
    23 support package for device hardware with GPIO hardware, you should provide
       
    24 an implementation of the class in a variant-specific component. </p> </section>
       
    25 <section id="GUID-48176C53-72DC-5A2E-8124-9FA222AE91AB"><title>Key concepts</title> <p>Certain
       
    26 terms have a specific meaning in the context of GPIO. </p> <dl>
       
    27 <dlentry>
       
    28 <dt>module</dt>
       
    29 <dd><p>A group of pins which can be mapped on to a register. </p> </dd>
       
    30 </dlentry>
       
    31 <dlentry>
       
    32 <dt>function</dt>
       
    33 <dd><p>The purpose for which the pins and modules are used. GPIO is one such
       
    34 purpose: serial bus line signals are an example of a different function. </p> </dd>
       
    35 </dlentry>
       
    36 <dlentry>
       
    37 <dt>state</dt>
       
    38 <dd><p>Electrical states as mapped on to mode, direction and logical state. </p> </dd>
       
    39 </dlentry>
       
    40 <dlentry>
       
    41 <dt>configuration</dt>
       
    42 <dd><p>The current configuration of all the pins on a module: their direction,
       
    43 electrical and logical state, interrupt and wakeup enablement status. </p> </dd>
       
    44 </dlentry>
       
    45 </dl> </section>
       
    46 <section id="GUID-35C041B8-F3F0-544B-A67E-0A25BE140D8B"><title>Design features</title> <p>The
       
    47 Symbian platform GPIO interface reserves most decisions about design to implementers
       
    48 in accordance with the platform they are writing for. However, certain design
       
    49 features are implicit in the interface provided. </p> <p>These are the main
       
    50 features of the Symbian platform GPIO interface: </p> <ul>
       
    51 <li id="GUID-DD56DA4D-C0A7-5180-9142-81887C7538C2"><p>The interface is supplied
       
    52 as a single static exported interface to be implemented as a variant specific
       
    53 component. </p> </li>
       
    54 <li id="GUID-B201623E-64E2-5FEF-959F-9C096F424D7E"><p>The access APIs are
       
    55 specified at pin level. There are no module level APIs. </p> </li>
       
    56 <li id="GUID-D8FF221C-F0EB-5F1B-886B-0F6AAC4023A9"><p>The pin IDs are to be
       
    57 defined in a single enumeration with values to be determined at build time. </p> </li>
       
    58 <li id="GUID-7F703C00-FE1D-5DE6-8E0E-29E4138E1060"><p>Bidirectional input/output
       
    59 is not supported. </p> </li>
       
    60 <li id="GUID-2CF55AD5-B98C-5207-A78F-B4C7654E677A"><p>Electrical states intermediate
       
    61 between High and Low are not supported. </p> </li>
       
    62 <li id="GUID-C3982CA3-04F3-58C4-B907-EE6A82FBD548"><p>It is strongly recommended
       
    63 that debouncing should be implemented in software if it is not provided with
       
    64 the hardware. </p> </li>
       
    65 <li id="GUID-CD64A653-AB5C-575A-A3D3-0151FD8ADCF4"><p>There is limited support
       
    66 for extensions to the functionality within the framework of the static interface. </p> </li>
       
    67 </ul> </section>
       
    68 </conbody></concept>