<?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-F8AC78AB-D1D8-4342-A773-9804723989D0" xml:lang="en"><title>GPIO
Implementation Guide</title><shortdesc>Provides information to create a platform specific implementation
of the Symbian platform generic GPIO interface. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>GPIO provides new implementation infrastructure that platforms may choose
to use when implementing the GPIO programming interface. Platforms can update
their GPIO support to use this. The driver programming interfaces also provided
in this guide You can provide support for GPIO hardware in a board support
package by implementing the interface that Symbian platform defines in the
GPIO class.</p>
<section id="GUID-BCDC252F-7466-4391-9E42-26D173FA4E50"> <title>Required
background</title> <p>Before you start, you must know the following:</p><ul>
<li><p>Platform implementation.</p></li>
<li><p>GPIO concepts and terminology.</p></li>
<li><p>Architecture of the platform on which you are implementing.</p></li>
<li><p>C++ signature of the functions you are implementing.</p></li>
</ul> </section>
<section id="GUID-3F5A1CB6-7717-48A3-B63A-CB843D7F7054"><title>Implementation</title><p> To
provide a consistent interface to clients of the GPIO class, your implementation
must return certain error codes in certain specified conditions. The functions
are mainly categorized into:</p><ul>
<li><p><xref href="GUID-9AD35939-26DD-4A42-8727-D0FD2F45B6DE.dita">Pin mode functions</xref></p></li>
<li><p><xref href="GUID-DA8526FB-5789-4CB6-9A92-754E39C52E3B.dita">Pin direction
functions</xref></p></li>
<li><p><xref href="GUID-96CA3539-8C01-4EFE-8DE8-1F88C0607E02.dita">Pin bias functions</xref></p></li>
<li><p><xref href="GUID-D948E88E-D123-40A5-A2CD-CF3D13581CC9.dita">Pin idle functions</xref></p></li>
<li><p><xref href="GUID-153E6611-D7BC-4B5B-A5C4-38BCA16C1635.dita">Interrupt functions</xref></p></li>
<li><p><xref href="GUID-74FE6572-14B9-4B94-8DD0-803DA21D14A3.dita">Wakeup functions</xref></p></li>
<li><p><xref href="GUID-BAE9F3A8-E232-491B-9F29-E2BF7298F9EA.dita">Trigger functions.</xref></p></li>
<li><p><xref href="GUID-9E7F8D0B-2B0E-41CC-BCDF-6B01B56CEF37.dita">Debounce functions</xref></p></li>
<li><p><xref href="GUID-90E2A645-56B0-4FC2-AE92-CD72FEC23AE6.dita">Input and Output
functions</xref></p></li>
</ul><p> The details of the functions, modes, associated required return values
and their usage are described in their respective sections.</p><note> Implementation
of the functions communicates with your GPIO hardware will be specific to
the hardware you are using.</note></section>
<section id="GUID-0D4BD293-329B-4549-A36B-A428FE1BE57A"><title>See Also</title><p><xref href="GUID-A5D862E4-3EC3-45C0-B635-23A02E5BB11F.dita">GPIO Overview</xref></p></section>
</conbody></concept>