Symbian3/PDK/Source/GUID-5471CDD4-030E-4509-8B7C-603C9B7953B4.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Wed, 31 Mar 2010 11:11:55 +0100
changeset 7 51a74ef9ed63
parent 5 f345bda72bc4
permissions -rw-r--r--
Week 12 contribution of API Specs and fix SDK submission

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