epoc32/include/assp/omap3530_assp/omap3530_gpio.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
williamr@4
     1
// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@4
     2
// All rights reserved.
williamr@4
     3
// This component and the accompanying materials are made available
williamr@4
     4
// under the terms of the License "Eclipse Public License v1.0"
williamr@4
     5
// which accompanies this distribution, and is available
williamr@4
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
williamr@4
     7
//
williamr@4
     8
// Initial Contributors:
williamr@4
     9
// Nokia Corporation - initial contribution.
williamr@4
    10
//
williamr@4
    11
// Contributors:
williamr@4
    12
//
williamr@4
    13
// Description:
williamr@4
    14
// omap3530/omap3530_drivers/gpio/omap3530_gpio.h
williamr@4
    15
// This file is part of the Beagle Base port
williamr@4
    16
//
williamr@4
    17
williamr@4
    18
#ifndef __OMAP3530_GPIO_H__
williamr@4
    19
#define __OMAP3530_GPIO_H__
williamr@4
    20
williamr@4
    21
#include <assp/omap3530_assp/omap3530_hardware_base.h>
williamr@4
    22
#include <assp/omap3530_assp/omap3530_irqmap.h>
williamr@4
    23
//#include <drivers/gpio.h>
williamr@4
    24
williamr@4
    25
#include <assp/omap3530_assp/gpio.h>
williamr@4
    26
#include <assp.h>
williamr@4
    27
williamr@4
    28
const TUint KGPIO1 = Omap3530HwBase::TVirtual<0x48310000>::Value;
williamr@4
    29
const TUint KGPIO2 = Omap3530HwBase::TVirtual<0x49050000>::Value;
williamr@4
    30
const TUint KGPIO3 = Omap3530HwBase::TVirtual<0x49052000>::Value;
williamr@4
    31
const TUint KGPIO4 = Omap3530HwBase::TVirtual<0x49054000>::Value;
williamr@4
    32
const TUint KGPIO5 = Omap3530HwBase::TVirtual<0x49056000>::Value;
williamr@4
    33
const TUint KGPIO6 = Omap3530HwBase::TVirtual<0x49058000>::Value;
williamr@4
    34
williamr@4
    35
	
williamr@4
    36
const TUint KGPIO_REVISION = 0x000;
williamr@4
    37
const TUint KGPIO_SYSCONFIG = 0x010;
williamr@4
    38
const TUint KGPIO_SYSSTATUS = 0x014;
williamr@4
    39
const TUint KGPIO_IRQSTATUS1 = 0x018;
williamr@4
    40
const TUint KGPIO_IRQENABLE1 = 0x01C;
williamr@4
    41
const TUint KGPIO_WAKEUPENABLE = 0x020;
williamr@4
    42
const TUint KGPIO_IRQSTATUS2 = 0x028;
williamr@4
    43
const TUint KGPIO_IRQENABLE2 = 0x02C;
williamr@4
    44
const TUint KGPIO_CTRL = 0x030;
williamr@4
    45
const TUint KGPIO_OE = 0x034;
williamr@4
    46
const TUint KGPIO_DATAIN = 0x038;
williamr@4
    47
const TUint KGPIO_DATAOUT = 0x03C;
williamr@4
    48
const TUint KGPIO_LEVELDETECT0 = 0x040;
williamr@4
    49
const TUint KGPIO_LEVELDETECT1 = 0x044;
williamr@4
    50
const TUint KGPIO_RISINGDETECT = 0x048;
williamr@4
    51
const TUint KGPIO_FALLINGDETECT = 0x04C;
williamr@4
    52
const TUint KGPIO_DEBOUNCENABLE = 0x050;
williamr@4
    53
const TUint KGPIO_DEBOUNCINGTIME = 0x054;
williamr@4
    54
const TUint KGPIO_CLEARIRQENABLE1 = 0x060;
williamr@4
    55
const TUint KGPIO_SETIRQENABLE1 = 0x064;
williamr@4
    56
const TUint KGPIO_CLEARIRQENABLE2 = 0x070;
williamr@4
    57
const TUint KGPIO_SETIRQENABLE2 = 0x074;
williamr@4
    58
const TUint KGPIO_CLEARWKUENA = 0x080;
williamr@4
    59
const TUint KGPIO_SETWKUENA = 0x084;
williamr@4
    60
const TUint KGPIO_CLEARDATAOUT = 0x090;
williamr@4
    61
const TUint KGPIO_SETDATAOUT = 0x094;
williamr@4
    62
williamr@4
    63
const TUint KGPIO_DEBOUNCE_TIME_MASK = 0xF;
williamr@4
    64
williamr@4
    65
williamr@4
    66
enum TGPIO_InterruptId 
williamr@4
    67
	{
williamr@4
    68
	EGPIOIRQ_FIRST = (EIrqRangeBaseGpio << KIrqRangeIndexShift),
williamr@4
    69
	EGPIOIRQ_PIN_0 = EGPIOIRQ_FIRST,
williamr@4
    70
	EGPIOIRQ_PIN_1,
williamr@4
    71
	EGPIOIRQ_PIN_2,
williamr@4
    72
	EGPIOIRQ_PIN_3,
williamr@4
    73
	EGPIOIRQ_PIN_4,
williamr@4
    74
	EGPIOIRQ_PIN_5,	
williamr@4
    75
	EGPIOIRQ_PIN_6,	
williamr@4
    76
	EGPIOIRQ_PIN_7,	
williamr@4
    77
	EGPIOIRQ_PIN_8,	
williamr@4
    78
	EGPIOIRQ_PIN_9,	
williamr@4
    79
	EGPIOIRQ_PIN_10,
williamr@4
    80
	EGPIOIRQ_PIN_11,
williamr@4
    81
	EGPIOIRQ_PIN_12,
williamr@4
    82
	EGPIOIRQ_PIN_13,
williamr@4
    83
	EGPIOIRQ_PIN_14,
williamr@4
    84
	EGPIOIRQ_PIN_15,	
williamr@4
    85
	EGPIOIRQ_PIN_16,	
williamr@4
    86
	EGPIOIRQ_PIN_17,	
williamr@4
    87
	EGPIOIRQ_PIN_18,	
williamr@4
    88
	EGPIOIRQ_PIN_19,	
williamr@4
    89
	EGPIOIRQ_PIN_20,
williamr@4
    90
	EGPIOIRQ_PIN_21,
williamr@4
    91
	EGPIOIRQ_PIN_22,
williamr@4
    92
	EGPIOIRQ_PIN_23,
williamr@4
    93
	EGPIOIRQ_PIN_24,
williamr@4
    94
	EGPIOIRQ_PIN_25,	
williamr@4
    95
	EGPIOIRQ_PIN_26,	
williamr@4
    96
	EGPIOIRQ_PIN_27,	
williamr@4
    97
	EGPIOIRQ_PIN_28,	
williamr@4
    98
	EGPIOIRQ_PIN_29,	
williamr@4
    99
	EGPIOIRQ_PIN_30,
williamr@4
   100
	EGPIOIRQ_PIN_31,
williamr@4
   101
	EGPIOIRQ_PIN_32,
williamr@4
   102
	EGPIOIRQ_PIN_33,
williamr@4
   103
	EGPIOIRQ_PIN_34,
williamr@4
   104
	EGPIOIRQ_PIN_35,	
williamr@4
   105
	EGPIOIRQ_PIN_36,	
williamr@4
   106
	EGPIOIRQ_PIN_37,	
williamr@4
   107
	EGPIOIRQ_PIN_38,	
williamr@4
   108
	EGPIOIRQ_PIN_39,	
williamr@4
   109
	EGPIOIRQ_PIN_40,
williamr@4
   110
	EGPIOIRQ_PIN_41,
williamr@4
   111
	EGPIOIRQ_PIN_42,
williamr@4
   112
	EGPIOIRQ_PIN_43,
williamr@4
   113
	EGPIOIRQ_PIN_44,
williamr@4
   114
	EGPIOIRQ_PIN_45,	
williamr@4
   115
	EGPIOIRQ_PIN_46,	
williamr@4
   116
	EGPIOIRQ_PIN_47,	
williamr@4
   117
	EGPIOIRQ_PIN_48,	
williamr@4
   118
	EGPIOIRQ_PIN_49,	
williamr@4
   119
	EGPIOIRQ_PIN_50,
williamr@4
   120
	EGPIOIRQ_PIN_51,
williamr@4
   121
	EGPIOIRQ_PIN_52,
williamr@4
   122
	EGPIOIRQ_PIN_53,
williamr@4
   123
	EGPIOIRQ_PIN_54,
williamr@4
   124
	EGPIOIRQ_PIN_55,	
williamr@4
   125
	EGPIOIRQ_PIN_56,	
williamr@4
   126
	EGPIOIRQ_PIN_57,	
williamr@4
   127
	EGPIOIRQ_PIN_58,	
williamr@4
   128
	EGPIOIRQ_PIN_59,	
williamr@4
   129
	EGPIOIRQ_PIN_60,
williamr@4
   130
	EGPIOIRQ_PIN_61,
williamr@4
   131
	EGPIOIRQ_PIN_62,
williamr@4
   132
	EGPIOIRQ_PIN_63,
williamr@4
   133
	EGPIOIRQ_PIN_64,
williamr@4
   134
	EGPIOIRQ_PIN_65,	
williamr@4
   135
	EGPIOIRQ_PIN_66,	
williamr@4
   136
	EGPIOIRQ_PIN_67,	
williamr@4
   137
	EGPIOIRQ_PIN_68,	
williamr@4
   138
	EGPIOIRQ_PIN_69,	
williamr@4
   139
	EGPIOIRQ_PIN_70,
williamr@4
   140
	EGPIOIRQ_PIN_71,
williamr@4
   141
	EGPIOIRQ_PIN_72,
williamr@4
   142
	EGPIOIRQ_PIN_73,
williamr@4
   143
	EGPIOIRQ_PIN_74,
williamr@4
   144
	EGPIOIRQ_PIN_75,	
williamr@4
   145
	EGPIOIRQ_PIN_76,	
williamr@4
   146
	EGPIOIRQ_PIN_77,	
williamr@4
   147
	EGPIOIRQ_PIN_78,	
williamr@4
   148
	EGPIOIRQ_PIN_79,	
williamr@4
   149
	EGPIOIRQ_PIN_80,
williamr@4
   150
	EGPIOIRQ_PIN_81,
williamr@4
   151
	EGPIOIRQ_PIN_82,
williamr@4
   152
	EGPIOIRQ_PIN_83,
williamr@4
   153
	EGPIOIRQ_PIN_84,
williamr@4
   154
	EGPIOIRQ_PIN_85,	
williamr@4
   155
	EGPIOIRQ_PIN_86,	
williamr@4
   156
	EGPIOIRQ_PIN_87,	
williamr@4
   157
	EGPIOIRQ_PIN_88,	
williamr@4
   158
	EGPIOIRQ_PIN_89,	
williamr@4
   159
	EGPIOIRQ_PIN_90,
williamr@4
   160
	EGPIOIRQ_PIN_91,
williamr@4
   161
	EGPIOIRQ_PIN_92,
williamr@4
   162
	EGPIOIRQ_PIN_93,
williamr@4
   163
	EGPIOIRQ_PIN_94,
williamr@4
   164
	EGPIOIRQ_PIN_95,	
williamr@4
   165
	EGPIOIRQ_PIN_96,	
williamr@4
   166
	EGPIOIRQ_PIN_97,	
williamr@4
   167
	EGPIOIRQ_PIN_98,	
williamr@4
   168
	EGPIOIRQ_PIN_99,	
williamr@4
   169
	EGPIOIRQ_PIN_100,
williamr@4
   170
	EGPIOIRQ_PIN_101,
williamr@4
   171
	EGPIOIRQ_PIN_102,
williamr@4
   172
	EGPIOIRQ_PIN_103,
williamr@4
   173
	EGPIOIRQ_PIN_104,
williamr@4
   174
	EGPIOIRQ_PIN_105,	
williamr@4
   175
	EGPIOIRQ_PIN_106,	
williamr@4
   176
	EGPIOIRQ_PIN_107,	
williamr@4
   177
	EGPIOIRQ_PIN_108,	
williamr@4
   178
	EGPIOIRQ_PIN_109,	
williamr@4
   179
	EGPIOIRQ_PIN_110,
williamr@4
   180
	EGPIOIRQ_PIN_111,
williamr@4
   181
	EGPIOIRQ_PIN_112,
williamr@4
   182
	EGPIOIRQ_PIN_113,
williamr@4
   183
	EGPIOIRQ_PIN_114,
williamr@4
   184
	EGPIOIRQ_PIN_115,	
williamr@4
   185
	EGPIOIRQ_PIN_116,	
williamr@4
   186
	EGPIOIRQ_PIN_117,	
williamr@4
   187
	EGPIOIRQ_PIN_118,	
williamr@4
   188
	EGPIOIRQ_PIN_119,	
williamr@4
   189
	EGPIOIRQ_PIN_120,
williamr@4
   190
	EGPIOIRQ_PIN_121,
williamr@4
   191
	EGPIOIRQ_PIN_122,
williamr@4
   192
	EGPIOIRQ_PIN_123,
williamr@4
   193
	EGPIOIRQ_PIN_124,
williamr@4
   194
	EGPIOIRQ_PIN_125,	
williamr@4
   195
	EGPIOIRQ_PIN_126,	
williamr@4
   196
	EGPIOIRQ_PIN_127,	
williamr@4
   197
	EGPIOIRQ_PIN_128,	
williamr@4
   198
	EGPIOIRQ_PIN_129,	
williamr@4
   199
	EGPIOIRQ_PIN_130,
williamr@4
   200
	EGPIOIRQ_PIN_131,
williamr@4
   201
	EGPIOIRQ_PIN_132,
williamr@4
   202
	EGPIOIRQ_PIN_133,
williamr@4
   203
	EGPIOIRQ_PIN_134,
williamr@4
   204
	EGPIOIRQ_PIN_135,	
williamr@4
   205
	EGPIOIRQ_PIN_136,	
williamr@4
   206
	EGPIOIRQ_PIN_137,	
williamr@4
   207
	EGPIOIRQ_PIN_138,	
williamr@4
   208
	EGPIOIRQ_PIN_139,	
williamr@4
   209
	EGPIOIRQ_PIN_140,
williamr@4
   210
	EGPIOIRQ_PIN_141,
williamr@4
   211
	EGPIOIRQ_PIN_142,
williamr@4
   212
	EGPIOIRQ_PIN_143,
williamr@4
   213
	EGPIOIRQ_PIN_144,
williamr@4
   214
	EGPIOIRQ_PIN_145,	
williamr@4
   215
	EGPIOIRQ_PIN_146,	
williamr@4
   216
	EGPIOIRQ_PIN_147,	
williamr@4
   217
	EGPIOIRQ_PIN_148,	
williamr@4
   218
	EGPIOIRQ_PIN_149,	
williamr@4
   219
	EGPIOIRQ_PIN_150,
williamr@4
   220
	EGPIOIRQ_PIN_151,
williamr@4
   221
	EGPIOIRQ_PIN_152,
williamr@4
   222
	EGPIOIRQ_PIN_153,
williamr@4
   223
	EGPIOIRQ_PIN_154,
williamr@4
   224
	EGPIOIRQ_PIN_155,	
williamr@4
   225
	EGPIOIRQ_PIN_156,	
williamr@4
   226
	EGPIOIRQ_PIN_157,	
williamr@4
   227
	EGPIOIRQ_PIN_158,	
williamr@4
   228
	EGPIOIRQ_PIN_159,	
williamr@4
   229
	EGPIOIRQ_PIN_160,
williamr@4
   230
	EGPIOIRQ_PIN_161,
williamr@4
   231
	EGPIOIRQ_PIN_162,
williamr@4
   232
	EGPIOIRQ_PIN_163,
williamr@4
   233
	EGPIOIRQ_PIN_164,
williamr@4
   234
	EGPIOIRQ_PIN_165,	
williamr@4
   235
	EGPIOIRQ_PIN_166,	
williamr@4
   236
	EGPIOIRQ_PIN_167,	
williamr@4
   237
	EGPIOIRQ_PIN_168,	
williamr@4
   238
	EGPIOIRQ_PIN_169,	
williamr@4
   239
	EGPIOIRQ_PIN_170,
williamr@4
   240
	EGPIOIRQ_PIN_171,
williamr@4
   241
	EGPIOIRQ_PIN_172,
williamr@4
   242
	EGPIOIRQ_PIN_173,
williamr@4
   243
	EGPIOIRQ_PIN_174,
williamr@4
   244
	EGPIOIRQ_PIN_175,	
williamr@4
   245
	EGPIOIRQ_PIN_176,	
williamr@4
   246
	EGPIOIRQ_PIN_177,	
williamr@4
   247
	EGPIOIRQ_PIN_178,	
williamr@4
   248
	EGPIOIRQ_PIN_179,	
williamr@4
   249
	EGPIOIRQ_PIN_180,
williamr@4
   250
	EGPIOIRQ_PIN_181,
williamr@4
   251
	EGPIOIRQ_PIN_182,
williamr@4
   252
	EGPIOIRQ_PIN_183,
williamr@4
   253
	EGPIOIRQ_PIN_184,
williamr@4
   254
	EGPIOIRQ_PIN_185,	
williamr@4
   255
	EGPIOIRQ_PIN_186,	
williamr@4
   256
	EGPIOIRQ_PIN_187,	
williamr@4
   257
	EGPIOIRQ_PIN_188,	
williamr@4
   258
	EGPIOIRQ_PIN_189,	
williamr@4
   259
	EGPIOIRQ_PIN_190,
williamr@4
   260
	EGPIOIRQ_PIN_191,
williamr@4
   261
williamr@4
   262
	EGPIOIRQ_END
williamr@4
   263
	};
williamr@4
   264
williamr@4
   265
williamr@4
   266
williamr@4
   267
const TInt32 KHwGpioPinMax		= 192;	// 32*6 pins
williamr@4
   268
const TInt32 KHwGpioPinsPerBank	= 32;
williamr@4
   269
const TInt32 KHwGpioBanks		= KHwGpioPinMax / KHwGpioPinsPerBank ;
williamr@4
   270
williamr@4
   271
// Utility code to convert a pin number to a GPIO bank
williamr@4
   272
const TUint KGPIO_BASE_ADDRESSES[] = { KGPIO1, KGPIO2, KGPIO3, KGPIO4, KGPIO5, KGPIO6 };
williamr@4
   273
williamr@4
   274
williamr@4
   275
williamr@4
   276
williamr@4
   277
williamr@4
   278
inline TUint GPIO_BASE_ADDRESS(TInt aPin) {return KGPIO_BASE_ADDRESSES[(TInt)(aPin/KHwGpioPinsPerBank)];};
williamr@4
   279
#define GPIO_PIN_BANK(aId) ((aId)/KHwGpioPinsPerBank)
williamr@4
   280
#define GPIO_PIN_OFFSET(aId) (1 <<  (aId%KHwGpioPinsPerBank))
williamr@4
   281
#define GPIO_PIN_BOUNDS(aId)((aId > 0) && (aId <KHwGpioPinMax))
williamr@4
   282
williamr@4
   283
class GpioPin
williamr@4
   284
	{
williamr@4
   285
	public:
williamr@4
   286
		GPIO::TGpioMode	iMode;
williamr@4
   287
		TUint iBankAddr;
williamr@4
   288
		TUint iBank;
williamr@4
   289
		SInterruptHandler irq;		
williamr@4
   290
		TUint iIrqVector;
williamr@4
   291
	};
williamr@4
   292
williamr@4
   293
#endif	// __OMAP3530_GPIO_H__
williamr@4
   294
williamr@4
   295