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