/usr/include/openwince/arm/pxa2x0/gpio.h is in openwince-include 0.3.2-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 | /*
* $Id: gpio.h,v 1.13 2003/04/26 22:56:34 telka Exp $
*
* XScale PXA26x/PXA255/PXA250/PXA210 GPIO Registers
* Copyright (C) 2002, 2003 ETC s.r.o.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the ETC s.r.o. nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Written by Marcel Telka <marcel@telka.sk>, 2002, 2003.
*
* Documentation:
* [1] Intel Corporation, "Intel PXA250 and PXA210 Application Processors
* Developer's Manual", February 2002, Order Number: 278522-001
* [2] Intel Corporation, "Intel PXA26x Processor Family Developer's Manual",
* March 2003, Order Number: 278638-002
* [3] Intel Corporation, "Intel PXA255 Processor Developer's Manual"
* March 2003, Order Number: 278693-001
*
*/
#ifndef PXA2X0_GPIO_H
#define PXA2X0_GPIO_H
#include <common.h>
#if LANGUAGE == C
#include <stdint.h>
#endif
#if defined(PXA2X0_NOPXA250) && !defined(PXA2X0_NOPXA255)
#define PXA2X0_NOPXA255
#endif
#if defined(PXA2X0_NOPXA255) && !defined(PXA2X0_NOPXA260)
#define PXA2X0_NOPXA260
#endif
/* GPIO Registers */
#define GPIO_BASE 0x40E00000
#if LANGUAGE == C
typedef volatile struct GPIO_registers {
uint32_t gplr0;
uint32_t gplr1;
uint32_t gplr2;
uint32_t gpdr0;
uint32_t gpdr1;
uint32_t gpdr2;
uint32_t gpsr0;
uint32_t gpsr1;
uint32_t gpsr2;
uint32_t gpcr0;
uint32_t gpcr1;
uint32_t gpcr2;
uint32_t grer0;
uint32_t grer1;
uint32_t grer2;
uint32_t gfer0;
uint32_t gfer1;
uint32_t gfer2;
uint32_t gedr0;
uint32_t gedr1;
uint32_t gedr2;
uint32_t gafr0_l;
uint32_t gafr0_u;
uint32_t gafr1_l;
uint32_t gafr1_u;
uint32_t gafr2_l;
uint32_t gafr2_u;
} GPIO_registers_t;
#ifdef PXA2X0_UNMAPPED
#define GPIO_pointer ((GPIO_registers_t*) GPIO_BASE)
#endif
#define GPLR0 GPIO_pointer->gplr0
#define GPLR1 GPIO_pointer->gplr1
#define GPLR2 GPIO_pointer->gplr2
#define GPDR0 GPIO_pointer->gpdr0
#define GPDR1 GPIO_pointer->gpdr1
#define GPDR2 GPIO_pointer->gpdr2
#define GPSR0 GPIO_pointer->gpsr0
#define GPSR1 GPIO_pointer->gpsr1
#define GPSR2 GPIO_pointer->gpsr2
#define GPCR0 GPIO_pointer->gpcr0
#define GPCR1 GPIO_pointer->gpcr1
#define GPCR2 GPIO_pointer->gpcr2
#define GRER0 GPIO_pointer->grer0
#define GRER1 GPIO_pointer->grer1
#define GRER2 GPIO_pointer->grer2
#define GFER0 GPIO_pointer->gfer0
#define GFER1 GPIO_pointer->gfer1
#define GFER2 GPIO_pointer->gfer2
#define GEDR0 GPIO_pointer->gedr0
#define GEDR1 GPIO_pointer->gedr1
#define GEDR2 GPIO_pointer->gedr2
#define GAFR0_L GPIO_pointer->gafr0_l
#define GAFR0_U GPIO_pointer->gafr0_u
#define GAFR1_L GPIO_pointer->gafr1_l
#define GAFR1_U GPIO_pointer->gafr1_u
#define GAFR2_L GPIO_pointer->gafr2_l
#define GAFR2_U GPIO_pointer->gafr2_u
#endif /* LANGUAGE == C */
#define GPLR0_OFFSET 0x00
#define GPLR1_OFFSET 0x04
#define GPLR2_OFFSET 0x08
#define GPDR0_OFFSET 0x0C
#define GPDR1_OFFSET 0x10
#define GPDR2_OFFSET 0x14
#define GPSR0_OFFSET 0x18
#define GPSR1_OFFSET 0x1C
#define GPSR2_OFFSET 0x20
#define GPCR0_OFFSET 0x24
#define GPCR1_OFFSET 0x28
#define GPCR2_OFFSET 0x2C
#define GRER0_OFFSET 0x30
#define GRER1_OFFSET 0x34
#define GRER2_OFFSET 0x38
#define GFER0_OFFSET 0x3C
#define GFER1_OFFSET 0x40
#define GFER2_OFFSET 0x44
#define GEDR0_OFFSET 0x48
#define GEDR1_OFFSET 0x4C
#define GEDR2_OFFSET 0x50
#define GAFR0_L_OFFSET 0x54
#define GAFR0_U_OFFSET 0x58
#define GAFR1_L_OFFSET 0x5C
#define GAFR1_U_OFFSET 0x60
#define GAFR2_L_OFFSET 0x64
#define GAFR2_U_OFFSET 0x68
/* GPIO bits - see Table 2-11 in [1] */
#define GPIO0_GP0 bit(0)
#define GPIO0_GP1 bit(1)
#if !defined(PXA2X0_NOPXA250)
#define GPIO0_GP2 bit(2)
#define GPIO0_GP3 bit(3)
#define GPIO0_GP4 bit(4)
#define GPIO0_GP5 bit(5)
#define GPIO0_GP6 bit(6)
#define GPIO0_GP7 bit(7)
#define GPIO0_GP8 bit(8)
#define GPIO0_GP9 bit(9)
#define GPIO0_GP10 bit(10)
#define GPIO0_GP11 bit(11)
#define GPIO0_GP12 bit(12)
#define GPIO0_GP13 bit(13)
#define GPIO0_GP14 bit(14)
#endif /* PXA250 and above only */
#define GPIO0_GP15 bit(15)
#define GPIO0_GP16 bit(16)
#define GPIO0_GP17 bit(17)
#define GPIO0_GP18 bit(18)
#if !defined(PXA2X0_NOPXA250)
#define GPIO0_GP19 bit(19)
#define GPIO0_GP20 bit(20)
#define GPIO0_GP21 bit(21)
#define GPIO0_GP22 bit(22)
#endif /* PXA250 and above only */
#define GPIO0_GP23 bit(23)
#define GPIO0_GP24 bit(24)
#define GPIO0_GP25 bit(25)
#define GPIO0_GP26 bit(26)
#define GPIO0_GP27 bit(27)
#define GPIO0_GP28 bit(28)
#define GPIO0_GP29 bit(29)
#define GPIO0_GP30 bit(30)
#define GPIO0_GP31 bit(31)
#define GPIO1_GP32 bit(0)
#define GPIO1_GP33 bit(1)
#define GPIO1_GP34 bit(2)
#if !defined(PXA2X0_NOPXA250)
#define GPIO1_GP35 bit(3)
#define GPIO1_GP36 bit(4)
#define GPIO1_GP37 bit(5)
#define GPIO1_GP38 bit(6)
#endif /* PXA250 and above only */
#define GPIO1_GP39 bit(7)
#if !defined(PXA2X0_NOPXA250)
#define GPIO1_GP40 bit(8)
#define GPIO1_GP41 bit(9)
#endif /* PXA250 and above only */
#define GPIO1_GP42 bit(10)
#define GPIO1_GP43 bit(11)
#define GPIO1_GP44 bit(12)
#define GPIO1_GP45 bit(13)
#define GPIO1_GP46 bit(14)
#define GPIO1_GP47 bit(15)
#define GPIO1_GP48 bit(16)
#define GPIO1_GP49 bit(17)
#define GPIO1_GP50 bit(18)
#define GPIO1_GP51 bit(19)
#define GPIO1_GP52 bit(20)
#define GPIO1_GP53 bit(21)
#define GPIO1_GP54 bit(22)
#define GPIO1_GP55 bit(23)
#define GPIO1_GP56 bit(24)
#define GPIO1_GP57 bit(25)
#define GPIO1_GP58 bit(26)
#define GPIO1_GP59 bit(27)
#define GPIO1_GP60 bit(28)
#define GPIO1_GP61 bit(29)
#define GPIO1_GP62 bit(30)
#define GPIO1_GP63 bit(31)
#define GPIO2_GP64 bit(0)
#define GPIO2_GP65 bit(1)
#define GPIO2_GP66 bit(2)
#define GPIO2_GP67 bit(3)
#define GPIO2_GP68 bit(4)
#define GPIO2_GP69 bit(5)
#define GPIO2_GP70 bit(6)
#define GPIO2_GP71 bit(7)
#define GPIO2_GP72 bit(8)
#define GPIO2_GP73 bit(9)
#define GPIO2_GP74 bit(10)
#define GPIO2_GP75 bit(11)
#define GPIO2_GP76 bit(12)
#define GPIO2_GP77 bit(13)
#define GPIO2_GP78 bit(14)
#define GPIO2_GP79 bit(15)
#define GPIO2_GP80 bit(16)
#if !defined(PXA2X0_NOPXA255)
#define GPIO2_GP81 bit(17)
#define GPIO2_GP82 bit(18)
#define GPIO2_GP83 bit(19)
#define GPIO2_GP84 bit(20)
#endif /* PXA255 and above only */
#if !defined(PXA2X0_NOPXA260)
#define GPIO2_GP85 bit(21)
#define GPIO2_GP86 bit(22)
#define GPIO2_GP87 bit(23)
#define GPIO2_GP88 bit(24)
#define GPIO2_GP89 bit(25)
#endif /* PXA260 and above only */
/* GAFR constants - see 4.1.3.6 in [1], 4.1.3.6 in [2], 4.1.3.6 in [3] */
#define ALT_FN_MASK 3
#define ALT_FN_0_IN 0
#define ALT_FN_1_IN 1
#define ALT_FN_2_IN 2
#define ALT_FN_3_IN 3
#define ALT_FN_0_OUT 0
#define ALT_FN_1_OUT 1
#define ALT_FN_2_OUT 2
#define ALT_FN_3_OUT 3
/* GAFR0_L bits - see Table 4-24 in [1], Table 4-24 in [2], Table 4-24 in [3] */
#define GAFR0_L_AF0(x) ((x) & ALT_FN_MASK)
#define GAFR0_L_AF1(x) (((x) & ALT_FN_MASK) << 2)
#if !defined(PXA2X0_NOPXA250)
#define GAFR0_L_AF2(x) (((x) & ALT_FN_MASK) << 4)
#define GAFR0_L_AF3(x) (((x) & ALT_FN_MASK) << 6)
#define GAFR0_L_AF4(x) (((x) & ALT_FN_MASK) << 8)
#define GAFR0_L_AF5(x) (((x) & ALT_FN_MASK) << 10)
#define GAFR0_L_AF6(x) (((x) & ALT_FN_MASK) << 12)
#define GAFR0_L_AF7(x) (((x) & ALT_FN_MASK) << 14)
#define GAFR0_L_AF8(x) (((x) & ALT_FN_MASK) << 16)
#define GAFR0_L_AF9(x) (((x) & ALT_FN_MASK) << 18)
#define GAFR0_L_AF10(x) (((x) & ALT_FN_MASK) << 20)
#define GAFR0_L_AF11(x) (((x) & ALT_FN_MASK) << 22)
#define GAFR0_L_AF12(x) (((x) & ALT_FN_MASK) << 24)
#define GAFR0_L_AF13(x) (((x) & ALT_FN_MASK) << 26)
#define GAFR0_L_AF14(x) (((x) & ALT_FN_MASK) << 28)
#endif /* PXA250 and above only */
#define GAFR0_L_AF15(x) (((x) & ALT_FN_MASK) << 30)
/* GAFR0_U bits - see Table 4-25 in [1], Table 4-25 in [2], Table 4-25 in [3] */
#define GAFR0_U_AF16(x) ((x) & ALT_FN_MASK)
#define GAFR0_U_AF17(x) (((x) & ALT_FN_MASK) << 2)
#define GAFR0_U_AF18(x) (((x) & ALT_FN_MASK) << 4)
#if !defined(PXA2X0_NOPXA250)
#define GAFR0_U_AF19(x) (((x) & ALT_FN_MASK) << 6)
#define GAFR0_U_AF20(x) (((x) & ALT_FN_MASK) << 8)
#define GAFR0_U_AF21(x) (((x) & ALT_FN_MASK) << 10)
#define GAFR0_U_AF22(x) (((x) & ALT_FN_MASK) << 12)
#endif /* PXA250 and above only */
#define GAFR0_U_AF23(x) (((x) & ALT_FN_MASK) << 14)
#define GAFR0_U_AF24(x) (((x) & ALT_FN_MASK) << 16)
#define GAFR0_U_AF25(x) (((x) & ALT_FN_MASK) << 18)
#define GAFR0_U_AF26(x) (((x) & ALT_FN_MASK) << 20)
#define GAFR0_U_AF27(x) (((x) & ALT_FN_MASK) << 22)
#define GAFR0_U_AF28(x) (((x) & ALT_FN_MASK) << 24)
#define GAFR0_U_AF29(x) (((x) & ALT_FN_MASK) << 26)
#define GAFR0_U_AF30(x) (((x) & ALT_FN_MASK) << 28)
#define GAFR0_U_AF31(x) (((x) & ALT_FN_MASK) << 30)
/* GAFR1_L bits - see Table 4-26 in [1], Table 4-26 in [2], Table 4-26 in [3] */
#define GAFR1_L_AF32(x) ((x) & ALT_FN_MASK)
#define GAFR1_L_AF33(x) (((x) & ALT_FN_MASK) << 2)
#define GAFR1_L_AF34(x) (((x) & ALT_FN_MASK) << 4)
#if !defined(PXA2X0_NOPXA250)
#define GAFR1_L_AF35(x) (((x) & ALT_FN_MASK) << 6)
#define GAFR1_L_AF36(x) (((x) & ALT_FN_MASK) << 8)
#define GAFR1_L_AF37(x) (((x) & ALT_FN_MASK) << 10)
#define GAFR1_L_AF38(x) (((x) & ALT_FN_MASK) << 12)
#endif /* PXA250 and above only */
#define GAFR1_L_AF39(x) (((x) & ALT_FN_MASK) << 14)
#if !defined(PXA2X0_NOPXA250)
#define GAFR1_L_AF40(x) (((x) & ALT_FN_MASK) << 16)
#define GAFR1_L_AF41(x) (((x) & ALT_FN_MASK) << 18)
#endif /* PXA250 and above only */
#define GAFR1_L_AF42(x) (((x) & ALT_FN_MASK) << 20)
#define GAFR1_L_AF43(x) (((x) & ALT_FN_MASK) << 22)
#define GAFR1_L_AF44(x) (((x) & ALT_FN_MASK) << 24)
#define GAFR1_L_AF45(x) (((x) & ALT_FN_MASK) << 26)
#define GAFR1_L_AF46(x) (((x) & ALT_FN_MASK) << 28)
#define GAFR1_L_AF47(x) (((x) & ALT_FN_MASK) << 30)
/* GAFR1_U bits - see Table 4-27 in [1], Table 4-27 in [2], Table 4-27 in [3] */
#define GAFR1_U_AF48(x) ((x) & ALT_FN_MASK)
#define GAFR1_U_AF49(x) (((x) & ALT_FN_MASK) << 2)
#define GAFR1_U_AF50(x) (((x) & ALT_FN_MASK) << 4)
#define GAFR1_U_AF51(x) (((x) & ALT_FN_MASK) << 6)
#define GAFR1_U_AF52(x) (((x) & ALT_FN_MASK) << 8)
#define GAFR1_U_AF53(x) (((x) & ALT_FN_MASK) << 10)
#define GAFR1_U_AF54(x) (((x) & ALT_FN_MASK) << 12)
#define GAFR1_U_AF55(x) (((x) & ALT_FN_MASK) << 14)
#define GAFR1_U_AF56(x) (((x) & ALT_FN_MASK) << 16)
#define GAFR1_U_AF57(x) (((x) & ALT_FN_MASK) << 18)
#define GAFR1_U_AF58(x) (((x) & ALT_FN_MASK) << 20)
#define GAFR1_U_AF59(x) (((x) & ALT_FN_MASK) << 22)
#define GAFR1_U_AF60(x) (((x) & ALT_FN_MASK) << 24)
#define GAFR1_U_AF61(x) (((x) & ALT_FN_MASK) << 26)
#define GAFR1_U_AF62(x) (((x) & ALT_FN_MASK) << 28)
#define GAFR1_U_AF63(x) (((x) & ALT_FN_MASK) << 30)
/* GAFR2_L bits - see Table 4-28 in [1], Table 4-28 in [2], Table 4-28 in [3] */
#define GAFR2_L_AF64(x) ((x) & ALT_FN_MASK)
#define GAFR2_L_AF65(x) (((x) & ALT_FN_MASK) << 2)
#define GAFR2_L_AF66(x) (((x) & ALT_FN_MASK) << 4)
#define GAFR2_L_AF67(x) (((x) & ALT_FN_MASK) << 6)
#define GAFR2_L_AF68(x) (((x) & ALT_FN_MASK) << 8)
#define GAFR2_L_AF69(x) (((x) & ALT_FN_MASK) << 10)
#define GAFR2_L_AF70(x) (((x) & ALT_FN_MASK) << 12)
#define GAFR2_L_AF71(x) (((x) & ALT_FN_MASK) << 14)
#define GAFR2_L_AF72(x) (((x) & ALT_FN_MASK) << 16)
#define GAFR2_L_AF73(x) (((x) & ALT_FN_MASK) << 18)
#define GAFR2_L_AF74(x) (((x) & ALT_FN_MASK) << 20)
#define GAFR2_L_AF75(x) (((x) & ALT_FN_MASK) << 22)
#define GAFR2_L_AF76(x) (((x) & ALT_FN_MASK) << 24)
#define GAFR2_L_AF77(x) (((x) & ALT_FN_MASK) << 26)
#define GAFR2_L_AF78(x) (((x) & ALT_FN_MASK) << 28)
#define GAFR2_L_AF79(x) (((x) & ALT_FN_MASK) << 30)
/* GAFR2_U bits - see Table 4-29 in [1], Table 4-29 in [2], Table 4-29 in [3] */
#define GAFR2_U_AF80(x) ((x) & ALT_FN_MASK)
#if !defined(PXA2X0_NOPXA255)
#define GAFR2_U_AF81(x) (((x) & ALT_FN_MASK) << 2)
#define GAFR2_U_AF82(x) (((x) & ALT_FN_MASK) << 4)
#define GAFR2_U_AF83(x) (((x) & ALT_FN_MASK) << 6)
#define GAFR2_U_AF84(x) (((x) & ALT_FN_MASK) << 8)
#endif /* PXA255 and above only */
#if !defined(PXA2X0_NOPXA260)
#define GAFR2_U_AF85(x) (((x) & ALT_FN_MASK) << 10)
#define GAFR2_U_AF86(x) (((x) & ALT_FN_MASK) << 12)
#define GAFR2_U_AF87(x) (((x) & ALT_FN_MASK) << 14)
#define GAFR2_U_AF88(x) (((x) & ALT_FN_MASK) << 16)
#define GAFR2_U_AF89(x) (((x) & ALT_FN_MASK) << 18)
#endif /* PXA260 and above only */
#endif /* PXA2X0_GPIO_H */
|