/** @defgroup gpio_defines General Purpose I/O Defines @brief Defined Constants and Types for the LPC43xx General Purpose I/O @ingroup LPC43xx_defines @version 1.0.0 @author @htmlonly © @endhtmlonly 2012 Michael Ossmann @date 10 March 2013 LGPL License Terms @ref lgpl_license */ /* * This file is part of the libopencm3 project. * * Copyright (C) 2010 Uwe Hermann * Copyright (C) 2012 Michael Ossmann * * This library is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . */ #ifndef LPC43XX_GPIO_H #define LPC43XX_GPIO_H /**@{*/ #include #include /* --- Convenience macros -------------------------------------------------- */ /* GPIO port base addresses (for convenience) */ #define GPIO0 (GPIO_PORT_BASE + 0x2000) #define GPIO1 (GPIO_PORT_BASE + 0x2004) #define GPIO2 (GPIO_PORT_BASE + 0x2008) #define GPIO3 (GPIO_PORT_BASE + 0x200C) #define GPIO4 (GPIO_PORT_BASE + 0x2010) #define GPIO5 (GPIO_PORT_BASE + 0x2014) #define GPIO6 (GPIO_PORT_BASE + 0x2018) #define GPIO7 (GPIO_PORT_BASE + 0x201C) /* GPIO number definitions (for convenience) */ #define GPIOPIN0 (1 << 0) #define GPIOPIN1 (1 << 1) #define GPIOPIN2 (1 << 2) #define GPIOPIN3 (1 << 3) #define GPIOPIN4 (1 << 4) #define GPIOPIN5 (1 << 5) #define GPIOPIN6 (1 << 6) #define GPIOPIN7 (1 << 7) #define GPIOPIN8 (1 << 8) #define GPIOPIN9 (1 << 9) #define GPIOPIN10 (1 << 10) #define GPIOPIN11 (1 << 11) #define GPIOPIN12 (1 << 12) #define GPIOPIN13 (1 << 13) #define GPIOPIN14 (1 << 14) #define GPIOPIN15 (1 << 15) #define GPIOPIN16 (1 << 16) #define GPIOPIN17 (1 << 17) #define GPIOPIN18 (1 << 18) #define GPIOPIN19 (1 << 19) #define GPIOPIN20 (1 << 20) #define GPIOPIN21 (1 << 21) #define GPIOPIN22 (1 << 22) #define GPIOPIN23 (1 << 23) #define GPIOPIN24 (1 << 24) #define GPIOPIN25 (1 << 25) #define GPIOPIN26 (1 << 26) #define GPIOPIN27 (1 << 27) #define GPIOPIN28 (1 << 28) #define GPIOPIN29 (1 << 29) #define GPIOPIN30 (1 << 30) #define GPIOPIN31 (1 << 31) /* --- GPIO registers ------------------------------------------------------ */ /* GPIO pin interrupts */ /* Pin Interrupt Mode register */ #define GPIO_PIN_INTERRUPT_ISEL MMIO32(GPIO_PIN_INTERRUPT_BASE + 0x000) /* Pin interrupt level (rising edge) interrupt enable register */ #define GPIO_PIN_INTERRUPT_IENR MMIO32(GPIO_PIN_INTERRUPT_BASE + 0x004) /* Pin interrupt level (rising edge) interrupt set register */ #define GPIO_PIN_INTERRUPT_SIENR MMIO32(GPIO_PIN_INTERRUPT_BASE + 0x008) /* Pin interrupt level (rising edge interrupt) clear register */ #define GPIO_PIN_INTERRUPT_CIENR MMIO32(GPIO_PIN_INTERRUPT_BASE + 0x00C) /* Pin interrupt active level (falling edge) interrupt enable register */ #define GPIO_PIN_INTERRUPT_IENF MMIO32(GPIO_PIN_INTERRUPT_BASE + 0x010) /* Pin interrupt active level (falling edge) interrupt set register */ #define GPIO_PIN_INTERRUPT_SIENF MMIO32(GPIO_PIN_INTERRUPT_BASE + 0x014) /* Pin interrupt active level (falling edge) interrupt clear register */ #define GPIO_PIN_INTERRUPT_CIENF MMIO32(GPIO_PIN_INTERRUPT_BASE + 0x018) /* Pin interrupt rising edge register */ #define GPIO_PIN_INTERRUPT_RISE MMIO32(GPIO_PIN_INTERRUPT_BASE + 0x01C) /* Pin interrupt falling edge register */ #define GPIO_PIN_INTERRUPT_FALL MMIO32(GPIO_PIN_INTERRUPT_BASE + 0x020) /* Pin interrupt status register */ #define GPIO_PIN_INTERRUPT_IST MMIO32(GPIO_PIN_INTERRUPT_BASE + 0x024) /* GPIO GROUP0 interrupt */ /* GPIO grouped interrupt control register */ #define GPIO_GROUP0_INTERRUPT_CTRL \ MMIO32(GPIO_GROUP0_INTERRUPT_BASE + 0x000) /* GPIO grouped interrupt port [0..7] polarity register */ #define GPIO_GROUP0_INTERRUPT_PORT_POL(x) \ MMIO32(GPIO_GROUP0_INTERRUPT_BASE + 0x020 + ((x)*4)) /* GPIO grouped interrupt port [0..7] enable register */ #define GPIO_GROUP0_INTERRUPT_PORT_ENA(x) \ MMIO32(GPIO_GROUP0_INTERRUPT_BASE + 0x040 + ((x)*4)) /* GPIO GROUP1 interrupt */ /* GPIO grouped interrupt control register */ #define GPIO_GROUP1_INTERRUPT_CTRL \ MMIO32(GPIO_GROUP1_INTERRUPT_BASE + 0x000) /* GPIO grouped interrupt port [0..7] polarity register */ #define GPIO_GROUP1_INTERRUPT_PORT_POL(x) \ MMIO32(GPIO_GROUP1_INTERRUPT_BASE + 0x020 + ((x)*4)) /* GPIO grouped interrupt port [0..7] enable register */ #define GPIO_GROUP1_INTERRUPT_PORT_ENA(x) \ MMIO32(GPIO_GROUP1_INTERRUPT_BASE + 0x040 + ((x)*4)) /* Byte pin registers port 0; pins PIO0_0 to PIO0_31 (R/W) */ #define GPIO_B0 (GPIO_PORT_BASE + 0x0000) #define GPIO_B1 (GPIO_PORT_BASE + 0x0001) #define GPIO_B2 (GPIO_PORT_BASE + 0x0002) #define GPIO_B3 (GPIO_PORT_BASE + 0x0003) #define GPIO_B4 (GPIO_PORT_BASE + 0x0004) #define GPIO_B5 (GPIO_PORT_BASE + 0x0005) #define GPIO_B6 (GPIO_PORT_BASE + 0x0006) #define GPIO_B7 (GPIO_PORT_BASE + 0x0007) #define GPIO_B8 (GPIO_PORT_BASE + 0x0008) #define GPIO_B9 (GPIO_PORT_BASE + 0x0009) #define GPIO_B10 (GPIO_PORT_BASE + 0x000A) #define GPIO_B11 (GPIO_PORT_BASE + 0x000B) #define GPIO_B12 (GPIO_PORT_BASE + 0x000C) #define GPIO_B13 (GPIO_PORT_BASE + 0x000D) #define GPIO_B14 (GPIO_PORT_BASE + 0x000E) #define GPIO_B15 (GPIO_PORT_BASE + 0x000F) #define GPIO_B16 (GPIO_PORT_BASE + 0x0010) #define GPIO_B17 (GPIO_PORT_BASE + 0x0011) #define GPIO_B18 (GPIO_PORT_BASE + 0x0012) #define GPIO_B19 (GPIO_PORT_BASE + 0x0013) #define GPIO_B20 (GPIO_PORT_BASE + 0x0014) #define GPIO_B21 (GPIO_PORT_BASE + 0x0015) #define GPIO_B22 (GPIO_PORT_BASE + 0x0016) #define GPIO_B23 (GPIO_PORT_BASE + 0x0017) #define GPIO_B24 (GPIO_PORT_BASE + 0x0018) #define GPIO_B25 (GPIO_PORT_BASE + 0x0019) #define GPIO_B26 (GPIO_PORT_BASE + 0x001A) #define GPIO_B27 (GPIO_PORT_BASE + 0x001B) #define GPIO_B28 (GPIO_PORT_BASE + 0x001C) #define GPIO_B29 (GPIO_PORT_BASE + 0x001D) #define GPIO_B30 (GPIO_PORT_BASE + 0x001E) #define GPIO_B31 (GPIO_PORT_BASE + 0x001F) /* Byte pin registers port 1 (R/W) */ #define GPIO_B32 (GPIO_PORT_BASE + 0x0020) #define GPIO_B33 (GPIO_PORT_BASE + 0x0021) #define GPIO_B34 (GPIO_PORT_BASE + 0x0022) #define GPIO_B35 (GPIO_PORT_BASE + 0x0023) #define GPIO_B36 (GPIO_PORT_BASE + 0x0024) #define GPIO_B37 (GPIO_PORT_BASE + 0x0025) #define GPIO_B38 (GPIO_PORT_BASE + 0x0026) #define GPIO_B39 (GPIO_PORT_BASE + 0x0027) #define GPIO_B40 (GPIO_PORT_BASE + 0x0028) #define GPIO_B41 (GPIO_PORT_BASE + 0x0029) #define GPIO_B42 (GPIO_PORT_BASE + 0x002A) #define GPIO_B43 (GPIO_PORT_BASE + 0x002B) #define GPIO_B44 (GPIO_PORT_BASE + 0x002C) #define GPIO_B45 (GPIO_PORT_BASE + 0x002D) #define GPIO_B46 (GPIO_PORT_BASE + 0x002E) #define GPIO_B47 (GPIO_PORT_BASE + 0x002F) #define GPIO_B48 (GPIO_PORT_BASE + 0x0030) #define GPIO_B49 (GPIO_PORT_BASE + 0x0031) #define GPIO_B50 (GPIO_PORT_BASE + 0x0032) #define GPIO_B51 (GPIO_PORT_BASE + 0x0033) #define GPIO_B52 (GPIO_PORT_BASE + 0x0034) #define GPIO_B53 (GPIO_PORT_BASE + 0x0035) #define GPIO_B54 (GPIO_PORT_BASE + 0x0036) #define GPIO_B55 (GPIO_PORT_BASE + 0x0037) #define GPIO_B56 (GPIO_PORT_BASE + 0x0038) #define GPIO_B57 (GPIO_PORT_BASE + 0x0039) #define GPIO_B58 (GPIO_PORT_BASE + 0x003A) #define GPIO_B59 (GPIO_PORT_BASE + 0x003B) #define GPIO_B60 (GPIO_PORT_BASE + 0x003C) #define GPIO_B61 (GPIO_PORT_BASE + 0x003D) #define GPIO_B62 (GPIO_PORT_BASE + 0x003E) #define GPIO_B63 (GPIO_PORT_BASE + 0x003F) /* Byte pin registers port 2 (R/W) */ #define GPIO_B64 (GPIO_PORT_BASE + 0x0040) #define GPIO_B65 (GPIO_PORT_BASE + 0x0041) #define GPIO_B66 (GPIO_PORT_BASE + 0x0042) #define GPIO_B67 (GPIO_PORT_BASE + 0x0043) #define GPIO_B68 (GPIO_PORT_BASE + 0x0044) #define GPIO_B69 (GPIO_PORT_BASE + 0x0045) #define GPIO_B70 (GPIO_PORT_BASE + 0x0046) #define GPIO_B71 (GPIO_PORT_BASE + 0x0047) #define GPIO_B72 (GPIO_PORT_BASE + 0x0048) #define GPIO_B73 (GPIO_PORT_BASE + 0x0049) #define GPIO_B74 (GPIO_PORT_BASE + 0x004A) #define GPIO_B75 (GPIO_PORT_BASE + 0x004B) #define GPIO_B76 (GPIO_PORT_BASE + 0x004C) #define GPIO_B77 (GPIO_PORT_BASE + 0x004D) #define GPIO_B78 (GPIO_PORT_BASE + 0x004E) #define GPIO_B79 (GPIO_PORT_BASE + 0x004F) #define GPIO_B80 (GPIO_PORT_BASE + 0x0050) #define GPIO_B81 (GPIO_PORT_BASE + 0x0051) #define GPIO_B82 (GPIO_PORT_BASE + 0x0052) #define GPIO_B83 (GPIO_PORT_BASE + 0x0053) #define GPIO_B84 (GPIO_PORT_BASE + 0x0054) #define GPIO_B85 (GPIO_PORT_BASE + 0x0055) #define GPIO_B86 (GPIO_PORT_BASE + 0x0056) #define GPIO_B87 (GPIO_PORT_BASE + 0x0057) #define GPIO_B88 (GPIO_PORT_BASE + 0x0058) #define GPIO_B89 (GPIO_PORT_BASE + 0x0059) #define GPIO_B90 (GPIO_PORT_BASE + 0x005A) #define GPIO_B91 (GPIO_PORT_BASE + 0x005B) #define GPIO_B92 (GPIO_PORT_BASE + 0x005C) #define GPIO_B93 (GPIO_PORT_BASE + 0x005D) #define GPIO_B94 (GPIO_PORT_BASE + 0x005E) #define GPIO_B95 (GPIO_PORT_BASE + 0x005F) /* Byte pin registers port 3 (R/W) */ #define GPIO_B96 (GPIO_PORT_BASE + 0x0060) #define GPIO_B97 (GPIO_PORT_BASE + 0x0061) #define GPIO_B98 (GPIO_PORT_BASE + 0x0062) #define GPIO_B99 (GPIO_PORT_BASE + 0x0063) #define GPIO_B100 (GPIO_PORT_BASE + 0x0064) #define GPIO_B101 (GPIO_PORT_BASE + 0x0065) #define GPIO_B102 (GPIO_PORT_BASE + 0x0066) #define GPIO_B103 (GPIO_PORT_BASE + 0x0067) #define GPIO_B104 (GPIO_PORT_BASE + 0x0068) #define GPIO_B105 (GPIO_PORT_BASE + 0x0069) #define GPIO_B106 (GPIO_PORT_BASE + 0x006A) #define GPIO_B107 (GPIO_PORT_BASE + 0x006B) #define GPIO_B108 (GPIO_PORT_BASE + 0x006C) #define GPIO_B109 (GPIO_PORT_BASE + 0x006D) #define GPIO_B110 (GPIO_PORT_BASE + 0x006E) #define GPIO_B111 (GPIO_PORT_BASE + 0x006F) #define GPIO_B112 (GPIO_PORT_BASE + 0x0070) #define GPIO_B113 (GPIO_PORT_BASE + 0x0071) #define GPIO_B114 (GPIO_PORT_BASE + 0x0072) #define GPIO_B115 (GPIO_PORT_BASE + 0x0073) #define GPIO_B116 (GPIO_PORT_BASE + 0x0074) #define GPIO_B117 (GPIO_PORT_BASE + 0x0075) #define GPIO_B118 (GPIO_PORT_BASE + 0x0076) #define GPIO_B119 (GPIO_PORT_BASE + 0x0077) #define GPIO_B120 (GPIO_PORT_BASE + 0x0078) #define GPIO_B121 (GPIO_PORT_BASE + 0x0079) #define GPIO_B122 (GPIO_PORT_BASE + 0x007A) #define GPIO_B123 (GPIO_PORT_BASE + 0x007B) #define GPIO_B124 (GPIO_PORT_BASE + 0x007C) #define GPIO_B125 (GPIO_PORT_BASE + 0x007D) #define GPIO_B126 (GPIO_PORT_BASE + 0x007E) #define GPIO_B127 (GPIO_PORT_BASE + 0x007F) /* Byte pin registers port 4 (R/W) */ #define GPIO_B128 (GPIO_PORT_BASE + 0x0080) #define GPIO_B129 (GPIO_PORT_BASE + 0x0081) #define GPIO_B130 (GPIO_PORT_BASE + 0x0082) #define GPIO_B131 (GPIO_PORT_BASE + 0x0083) #define GPIO_B132 (GPIO_PORT_BASE + 0x0084) #define GPIO_B133 (GPIO_PORT_BASE + 0x0085) #define GPIO_B134 (GPIO_PORT_BASE + 0x0086) #define GPIO_B135 (GPIO_PORT_BASE + 0x0087) #define GPIO_B136 (GPIO_PORT_BASE + 0x0088) #define GPIO_B137 (GPIO_PORT_BASE + 0x0089) #define GPIO_B138 (GPIO_PORT_BASE + 0x008A) #define GPIO_B139 (GPIO_PORT_BASE + 0x008B) #define GPIO_B140 (GPIO_PORT_BASE + 0x008C) #define GPIO_B141 (GPIO_PORT_BASE + 0x008D) #define GPIO_B142 (GPIO_PORT_BASE + 0x008E) #define GPIO_B143 (GPIO_PORT_BASE + 0x008F) #define GPIO_B144 (GPIO_PORT_BASE + 0x0090) #define GPIO_B145 (GPIO_PORT_BASE + 0x0091) #define GPIO_B146 (GPIO_PORT_BASE + 0x0092) #define GPIO_B147 (GPIO_PORT_BASE + 0x0093) #define GPIO_B148 (GPIO_PORT_BASE + 0x0094) #define GPIO_B149 (GPIO_PORT_BASE + 0x0095) #define GPIO_B150 (GPIO_PORT_BASE + 0x0096) #define GPIO_B151 (GPIO_PORT_BASE + 0x0097) #define GPIO_B152 (GPIO_PORT_BASE + 0x0098) #define GPIO_B153 (GPIO_PORT_BASE + 0x0099) #define GPIO_B154 (GPIO_PORT_BASE + 0x009A) #define GPIO_B155 (GPIO_PORT_BASE + 0x009B) #define GPIO_B156 (GPIO_PORT_BASE + 0x009C) #define GPIO_B157 (GPIO_PORT_BASE + 0x009D) #define GPIO_B158 (GPIO_PORT_BASE + 0x009E) #define GPIO_B159 (GPIO_PORT_BASE + 0x009F) /* Byte pin registers port 5 (R/W) */ #define GPIO_B160 (GPIO_PORT_BASE + 0x00A0) #define GPIO_B161 (GPIO_PORT_BASE + 0x00A1) #define GPIO_B162 (GPIO_PORT_BASE + 0x00A2) #define GPIO_B163 (GPIO_PORT_BASE + 0x00A3) #define GPIO_B164 (GPIO_PORT_BASE + 0x00A4) #define GPIO_B165 (GPIO_PORT_BASE + 0x00A5) #define GPIO_B166 (GPIO_PORT_BASE + 0x00A6) #define GPIO_B167 (GPIO_PORT_BASE + 0x00A7) #define GPIO_B168 (GPIO_PORT_BASE + 0x00A8) #define GPIO_B169 (GPIO_PORT_BASE + 0x00A9) #define GPIO_B170 (GPIO_PORT_BASE + 0x00AA) #define GPIO_B171 (GPIO_PORT_BASE + 0x00AB) #define GPIO_B172 (GPIO_PORT_BASE + 0x00AC) #define GPIO_B173 (GPIO_PORT_BASE + 0x00AD) #define GPIO_B174 (GPIO_PORT_BASE + 0x00AE) #define GPIO_B175 (GPIO_PORT_BASE + 0x00AF) #define GPIO_B176 (GPIO_PORT_BASE + 0x00B0) #define GPIO_B177 (GPIO_PORT_BASE + 0x00B1) #define GPIO_B178 (GPIO_PORT_BASE + 0x00B2) #define GPIO_B179 (GPIO_PORT_BASE + 0x00B3) #define GPIO_B180 (GPIO_PORT_BASE + 0x00B4) #define GPIO_B181 (GPIO_PORT_BASE + 0x00B5) #define GPIO_B182 (GPIO_PORT_BASE + 0x00B6) #define GPIO_B183 (GPIO_PORT_BASE + 0x00B7) #define GPIO_B184 (GPIO_PORT_BASE + 0x00B8) #define GPIO_B185 (GPIO_PORT_BASE + 0x00B9) #define GPIO_B186 (GPIO_PORT_BASE + 0x00BA) #define GPIO_B187 (GPIO_PORT_BASE + 0x00BB) #define GPIO_B188 (GPIO_PORT_BASE + 0x00BC) #define GPIO_B189 (GPIO_PORT_BASE + 0x00BD) #define GPIO_B190 (GPIO_PORT_BASE + 0x00BE) #define GPIO_B191 (GPIO_PORT_BASE + 0x00BF) /* Byte pin registers port 6 (R/W) */ #define GPIO_B192 (GPIO_PORT_BASE + 0x00C0) #define GPIO_B193 (GPIO_PORT_BASE + 0x00C1) #define GPIO_B194 (GPIO_PORT_BASE + 0x00C2) #define GPIO_B195 (GPIO_PORT_BASE + 0x00C3) #define GPIO_B196 (GPIO_PORT_BASE + 0x00C4) #define GPIO_B197 (GPIO_PORT_BASE + 0x00C5) #define GPIO_B198 (GPIO_PORT_BASE + 0x00C6) #define GPIO_B199 (GPIO_PORT_BASE + 0x00C7) #define GPIO_B200 (GPIO_PORT_BASE + 0x00C8) #define GPIO_B201 (GPIO_PORT_BASE + 0x00C9) #define GPIO_B202 (GPIO_PORT_BASE + 0x00CA) #define GPIO_B203 (GPIO_PORT_BASE + 0x00CB) #define GPIO_B204 (GPIO_PORT_BASE + 0x00CC) #define GPIO_B205 (GPIO_PORT_BASE + 0x00CD) #define GPIO_B206 (GPIO_PORT_BASE + 0x00CE) #define GPIO_B207 (GPIO_PORT_BASE + 0x00CF) #define GPIO_B208 (GPIO_PORT_BASE + 0x00D0) #define GPIO_B209 (GPIO_PORT_BASE + 0x00D1) #define GPIO_B210 (GPIO_PORT_BASE + 0x00D2) #define GPIO_B211 (GPIO_PORT_BASE + 0x00D3) #define GPIO_B212 (GPIO_PORT_BASE + 0x00D4) #define GPIO_B213 (GPIO_PORT_BASE + 0x00D5) #define GPIO_B214 (GPIO_PORT_BASE + 0x00D6) #define GPIO_B215 (GPIO_PORT_BASE + 0x00D7) #define GPIO_B216 (GPIO_PORT_BASE + 0x00D8) #define GPIO_B217 (GPIO_PORT_BASE + 0x00D9) #define GPIO_B218 (GPIO_PORT_BASE + 0x00DA) #define GPIO_B219 (GPIO_PORT_BASE + 0x00DB) #define GPIO_B220 (GPIO_PORT_BASE + 0x00DC) #define GPIO_B221 (GPIO_PORT_BASE + 0x00DD) #define GPIO_B222 (GPIO_PORT_BASE + 0x00DE) #define GPIO_B223 (GPIO_PORT_BASE + 0x00DF) /* Byte pin registers port 7 (R/W) */ #define GPIO_B224 (GPIO_PORT_BASE + 0x00E0) #define GPIO_B225 (GPIO_PORT_BASE + 0x00E1) #define GPIO_B226 (GPIO_PORT_BASE + 0x00E2) #define GPIO_B227 (GPIO_PORT_BASE + 0x00E3) #define GPIO_B228 (GPIO_PORT_BASE + 0x00E4) #define GPIO_B229 (GPIO_PORT_BASE + 0x00E5) #define GPIO_B230 (GPIO_PORT_BASE + 0x00E6) #define GPIO_B231 (GPIO_PORT_BASE + 0x00E7) #define GPIO_B232 (GPIO_PORT_BASE + 0x00E8) #define GPIO_B233 (GPIO_PORT_BASE + 0x00E9) #define GPIO_B234 (GPIO_PORT_BASE + 0x00EA) #define GPIO_B235 (GPIO_PORT_BASE + 0x00EB) #define GPIO_B236 (GPIO_PORT_BASE + 0x00EC) #define GPIO_B237 (GPIO_PORT_BASE + 0x00ED) #define GPIO_B238 (GPIO_PORT_BASE + 0x00EE) #define GPIO_B239 (GPIO_PORT_BASE + 0x00EF) #define GPIO_B240 (GPIO_PORT_BASE + 0x00F0) #define GPIO_B241 (GPIO_PORT_BASE + 0x00F1) #define GPIO_B242 (GPIO_PORT_BASE + 0x00F2) #define GPIO_B243 (GPIO_PORT_BASE + 0x00F3) #define GPIO_B244 (GPIO_PORT_BASE + 0x00F4) #define GPIO_B245 (GPIO_PORT_BASE + 0x00F5) #define GPIO_B246 (GPIO_PORT_BASE + 0x00F6) #define GPIO_B247 (GPIO_PORT_BASE + 0x00F7) #define GPIO_B248 (GPIO_PORT_BASE + 0x00F8) #define GPIO_B249 (GPIO_PORT_BASE + 0x00F9) #define GPIO_B250 (GPIO_PORT_BASE + 0x00FA) #define GPIO_B251 (GPIO_PORT_BASE + 0x00FB) #define GPIO_B252 (GPIO_PORT_BASE + 0x00FC) #define GPIO_B253 (GPIO_PORT_BASE + 0x00FD) #define GPIO_B254 (GPIO_PORT_BASE + 0x00FE) #define GPIO_B255 (GPIO_PORT_BASE + 0x00FF) /* Word pin registers port 0 (R/W) */ #define GPIO_W0 (GPIO_PORT_BASE + 0x1000) #define GPIO_W1 (GPIO_PORT_BASE + 0x1004) #define GPIO_W2 (GPIO_PORT_BASE + 0x1008) #define GPIO_W3 (GPIO_PORT_BASE + 0x100C) #define GPIO_W4 (GPIO_PORT_BASE + 0x1010) #define GPIO_W5 (GPIO_PORT_BASE + 0x1014) #define GPIO_W6 (GPIO_PORT_BASE + 0x1018) #define GPIO_W7 (GPIO_PORT_BASE + 0x101C) #define GPIO_W8 (GPIO_PORT_BASE + 0x1020) #define GPIO_W9 (GPIO_PORT_BASE + 0x1024) #define GPIO_W10 (GPIO_PORT_BASE + 0x1028) #define GPIO_W11 (GPIO_PORT_BASE + 0x102C) #define GPIO_W12 (GPIO_PORT_BASE + 0x1030) #define GPIO_W13 (GPIO_PORT_BASE + 0x1034) #define GPIO_W14 (GPIO_PORT_BASE + 0x1038) #define GPIO_W15 (GPIO_PORT_BASE + 0x103C) #define GPIO_W16 (GPIO_PORT_BASE + 0x1040) #define GPIO_W17 (GPIO_PORT_BASE + 0x1044) #define GPIO_W18 (GPIO_PORT_BASE + 0x1048) #define GPIO_W19 (GPIO_PORT_BASE + 0x104C) #define GPIO_W20 (GPIO_PORT_BASE + 0x1050) #define GPIO_W21 (GPIO_PORT_BASE + 0x1054) #define GPIO_W22 (GPIO_PORT_BASE + 0x1058) #define GPIO_W23 (GPIO_PORT_BASE + 0x105C) #define GPIO_W24 (GPIO_PORT_BASE + 0x1060) #define GPIO_W25 (GPIO_PORT_BASE + 0x1064) #define GPIO_W26 (GPIO_PORT_BASE + 0x1068) #define GPIO_W27 (GPIO_PORT_BASE + 0x106C) #define GPIO_W28 (GPIO_PORT_BASE + 0x1070) #define GPIO_W29 (GPIO_PORT_BASE + 0x1074) #define GPIO_W30 (GPIO_PORT_BASE + 0x1078) #define GPIO_W31 (GPIO_PORT_BASE + 0x107C) /* Word pin registers port 1 (R/W) */ #define GPIO_W32 (GPIO_PORT_BASE + 0x1080) #define GPIO_W33 (GPIO_PORT_BASE + 0x1084) #define GPIO_W34 (GPIO_PORT_BASE + 0x1088) #define GPIO_W35 (GPIO_PORT_BASE + 0x108C) #define GPIO_W36 (GPIO_PORT_BASE + 0x1090) #define GPIO_W37 (GPIO_PORT_BASE + 0x1094) #define GPIO_W38 (GPIO_PORT_BASE + 0x1098) #define GPIO_W39 (GPIO_PORT_BASE + 0x109C) #define GPIO_W40 (GPIO_PORT_BASE + 0x10A0) #define GPIO_W41 (GPIO_PORT_BASE + 0x10A4) #define GPIO_W42 (GPIO_PORT_BASE + 0x10A8) #define GPIO_W43 (GPIO_PORT_BASE + 0x10AC) #define GPIO_W44 (GPIO_PORT_BASE + 0x10B0) #define GPIO_W45 (GPIO_PORT_BASE + 0x10B4) #define GPIO_W46 (GPIO_PORT_BASE + 0x10B8) #define GPIO_W47 (GPIO_PORT_BASE + 0x10BC) #define GPIO_W48 (GPIO_PORT_BASE + 0x10C0) #define GPIO_W49 (GPIO_PORT_BASE + 0x10C4) #define GPIO_W50 (GPIO_PORT_BASE + 0x10C8) #define GPIO_W51 (GPIO_PORT_BASE + 0x10CC) #define GPIO_W52 (GPIO_PORT_BASE + 0x10D0) #define GPIO_W53 (GPIO_PORT_BASE + 0x10D4) #define GPIO_W54 (GPIO_PORT_BASE + 0x10D8) #define GPIO_W55 (GPIO_PORT_BASE + 0x10DC) #define GPIO_W56 (GPIO_PORT_BASE + 0x10E0) #define GPIO_W57 (GPIO_PORT_BASE + 0x10E4) #define GPIO_W58 (GPIO_PORT_BASE + 0x10E8) #define GPIO_W59 (GPIO_PORT_BASE + 0x10EC) #define GPIO_W60 (GPIO_PORT_BASE + 0x10F0) #define GPIO_W61 (GPIO_PORT_BASE + 0x10F4) #define GPIO_W62 (GPIO_PORT_BASE + 0x10F8) #define GPIO_W63 (GPIO_PORT_BASE + 0x10FC) /* Word pin registers port 2 (R/W) */ #define GPIO_W64 (GPIO_PORT_BASE + 0x1100) #define GPIO_W65 (GPIO_PORT_BASE + 0x1104) #define GPIO_W66 (GPIO_PORT_BASE + 0x1108) #define GPIO_W67 (GPIO_PORT_BASE + 0x110C) #define GPIO_W68 (GPIO_PORT_BASE + 0x1110) #define GPIO_W69 (GPIO_PORT_BASE + 0x1114) #define GPIO_W70 (GPIO_PORT_BASE + 0x1118) #define GPIO_W71 (GPIO_PORT_BASE + 0x111C) #define GPIO_W72 (GPIO_PORT_BASE + 0x1120) #define GPIO_W73 (GPIO_PORT_BASE + 0x1124) #define GPIO_W74 (GPIO_PORT_BASE + 0x1128) #define GPIO_W75 (GPIO_PORT_BASE + 0x112C) #define GPIO_W76 (GPIO_PORT_BASE + 0x1130) #define GPIO_W77 (GPIO_PORT_BASE + 0x1134) #define GPIO_W78 (GPIO_PORT_BASE + 0x1138) #define GPIO_W79 (GPIO_PORT_BASE + 0x113C) #define GPIO_W80 (GPIO_PORT_BASE + 0x1140) #define GPIO_W81 (GPIO_PORT_BASE + 0x1144) #define GPIO_W82 (GPIO_PORT_BASE + 0x1148) #define GPIO_W83 (GPIO_PORT_BASE + 0x114C) #define GPIO_W84 (GPIO_PORT_BASE + 0x1150) #define GPIO_W85 (GPIO_PORT_BASE + 0x1154) #define GPIO_W86 (GPIO_PORT_BASE + 0x1158) #define GPIO_W87 (GPIO_PORT_BASE + 0x115C) #define GPIO_W88 (GPIO_PORT_BASE + 0x1160) #define GPIO_W89 (GPIO_PORT_BASE + 0x1164) #define GPIO_W90 (GPIO_PORT_BASE + 0x1168) #define GPIO_W91 (GPIO_PORT_BASE + 0x116C) #define GPIO_W92 (GPIO_PORT_BASE + 0x1170) #define GPIO_W93 (GPIO_PORT_BASE + 0x1174) #define GPIO_W94 (GPIO_PORT_BASE + 0x1178) #define GPIO_W95 (GPIO_PORT_BASE + 0x117C) /* Word pin registers port 3 (R/W) */ #define GPIO_W96 (GPIO_PORT_BASE + 0x1180) #define GPIO_W97 (GPIO_PORT_BASE + 0x1184) #define GPIO_W98 (GPIO_PORT_BASE + 0x1188) #define GPIO_W99 (GPIO_PORT_BASE + 0x118C) #define GPIO_W100 (GPIO_PORT_BASE + 0x1190) #define GPIO_W101 (GPIO_PORT_BASE + 0x1194) #define GPIO_W102 (GPIO_PORT_BASE + 0x1198) #define GPIO_W103 (GPIO_PORT_BASE + 0x119C) #define GPIO_W104 (GPIO_PORT_BASE + 0x11A0) #define GPIO_W105 (GPIO_PORT_BASE + 0x11A4) #define GPIO_W106 (GPIO_PORT_BASE + 0x11A8) #define GPIO_W107 (GPIO_PORT_BASE + 0x11AC) #define GPIO_W108 (GPIO_PORT_BASE + 0x11B0) #define GPIO_W109 (GPIO_PORT_BASE + 0x11B4) #define GPIO_W110 (GPIO_PORT_BASE + 0x11B8) #define GPIO_W111 (GPIO_PORT_BASE + 0x11BC) #define GPIO_W112 (GPIO_PORT_BASE + 0x11C0) #define GPIO_W113 (GPIO_PORT_BASE + 0x11C4) #define GPIO_W114 (GPIO_PORT_BASE + 0x11C8) #define GPIO_W115 (GPIO_PORT_BASE + 0x11CC) #define GPIO_W116 (GPIO_PORT_BASE + 0x11D0) #define GPIO_W117 (GPIO_PORT_BASE + 0x11D4) #define GPIO_W118 (GPIO_PORT_BASE + 0x11D8) #define GPIO_W119 (GPIO_PORT_BASE + 0x11DC) #define GPIO_W120 (GPIO_PORT_BASE + 0x11E0) #define GPIO_W121 (GPIO_PORT_BASE + 0x11E4) #define GPIO_W122 (GPIO_PORT_BASE + 0x11E8) #define GPIO_W123 (GPIO_PORT_BASE + 0x11EC) #define GPIO_W124 (GPIO_PORT_BASE + 0x11F0) #define GPIO_W125 (GPIO_PORT_BASE + 0x11F4) #define GPIO_W126 (GPIO_PORT_BASE + 0x11F8) #define GPIO_W127 (GPIO_PORT_BASE + 0x11FC) /* Word pin registers port 4 (R/W) */ #define GPIO_W128 (GPIO_PORT_BASE + 0x1200) #define GPIO_W129 (GPIO_PORT_BASE + 0x1204) #define GPIO_W130 (GPIO_PORT_BASE + 0x1208) #define GPIO_W131 (GPIO_PORT_BASE + 0x120C) #define GPIO_W132 (GPIO_PORT_BASE + 0x1210) #define GPIO_W133 (GPIO_PORT_BASE + 0x1214) #define GPIO_W134 (GPIO_PORT_BASE + 0x1218) #define GPIO_W135 (GPIO_PORT_BASE + 0x121C) #define GPIO_W136 (GPIO_PORT_BASE + 0x1220) #define GPIO_W137 (GPIO_PORT_BASE + 0x1224) #define GPIO_W138 (GPIO_PORT_BASE + 0x1228) #define GPIO_W139 (GPIO_PORT_BASE + 0x122C) #define GPIO_W140 (GPIO_PORT_BASE + 0x1230) #define GPIO_W141 (GPIO_PORT_BASE + 0x1234) #define GPIO_W142 (GPIO_PORT_BASE + 0x1238) #define GPIO_W143 (GPIO_PORT_BASE + 0x123C) #define GPIO_W144 (GPIO_PORT_BASE + 0x1240) #define GPIO_W145 (GPIO_PORT_BASE + 0x1244) #define GPIO_W146 (GPIO_PORT_BASE + 0x1248) #define GPIO_W147 (GPIO_PORT_BASE + 0x124C) #define GPIO_W148 (GPIO_PORT_BASE + 0x1250) #define GPIO_W149 (GPIO_PORT_BASE + 0x1254) #define GPIO_W150 (GPIO_PORT_BASE + 0x1258) #define GPIO_W151 (GPIO_PORT_BASE + 0x125C) #define GPIO_W152 (GPIO_PORT_BASE + 0x1260) #define GPIO_W153 (GPIO_PORT_BASE + 0x1264) #define GPIO_W154 (GPIO_PORT_BASE + 0x1268) #define GPIO_W155 (GPIO_PORT_BASE + 0x126C) #define GPIO_W156 (GPIO_PORT_BASE + 0x1270) #define GPIO_W157 (GPIO_PORT_BASE + 0x1274) #define GPIO_W158 (GPIO_PORT_BASE + 0x1278) #define GPIO_W159 (GPIO_PORT_BASE + 0x127C) /* Word pin registers port 5 (R/W) */ #define GPIO_W160 (GPIO_PORT_BASE + 0x1280) #define GPIO_W161 (GPIO_PORT_BASE + 0x1284) #define GPIO_W162 (GPIO_PORT_BASE + 0x1288) #define GPIO_W163 (GPIO_PORT_BASE + 0x128C) #define GPIO_W164 (GPIO_PORT_BASE + 0x1290) #define GPIO_W165 (GPIO_PORT_BASE + 0x1294) #define GPIO_W166 (GPIO_PORT_BASE + 0x1298) #define GPIO_W167 (GPIO_PORT_BASE + 0x129C) #define GPIO_W168 (GPIO_PORT_BASE + 0x12A0) #define GPIO_W169 (GPIO_PORT_BASE + 0x12A4) #define GPIO_W170 (GPIO_PORT_BASE + 0x12A8) #define GPIO_W171 (GPIO_PORT_BASE + 0x12AC) #define GPIO_W172 (GPIO_PORT_BASE + 0x12B0) #define GPIO_W173 (GPIO_PORT_BASE + 0x12B4) #define GPIO_W174 (GPIO_PORT_BASE + 0x12B8) #define GPIO_W175 (GPIO_PORT_BASE + 0x12BC) #define GPIO_W176 (GPIO_PORT_BASE + 0x12C0) #define GPIO_W177 (GPIO_PORT_BASE + 0x12C4) #define GPIO_W178 (GPIO_PORT_BASE + 0x12C8) #define GPIO_W179 (GPIO_PORT_BASE + 0x12CC) #define GPIO_W180 (GPIO_PORT_BASE + 0x12D0) #define GPIO_W181 (GPIO_PORT_BASE + 0x12D4) #define GPIO_W182 (GPIO_PORT_BASE + 0x12D8) #define GPIO_W183 (GPIO_PORT_BASE + 0x12DC) #define GPIO_W184 (GPIO_PORT_BASE + 0x12E0) #define GPIO_W185 (GPIO_PORT_BASE + 0x12E4) #define GPIO_W186 (GPIO_PORT_BASE + 0x12E8) #define GPIO_W187 (GPIO_PORT_BASE + 0x12EC) #define GPIO_W188 (GPIO_PORT_BASE + 0x12F0) #define GPIO_W189 (GPIO_PORT_BASE + 0x12F4) #define GPIO_W190 (GPIO_PORT_BASE + 0x12F8) #define GPIO_W191 (GPIO_PORT_BASE + 0x12FC) /* Word pin registers port 6 (R/W) */ #define GPIO_W192 (GPIO_PORT_BASE + 0x1300) #define GPIO_W193 (GPIO_PORT_BASE + 0x1304) #define GPIO_W194 (GPIO_PORT_BASE + 0x1308) #define GPIO_W195 (GPIO_PORT_BASE + 0x130C) #define GPIO_W196 (GPIO_PORT_BASE + 0x1310) #define GPIO_W197 (GPIO_PORT_BASE + 0x1314) #define GPIO_W198 (GPIO_PORT_BASE + 0x1318) #define GPIO_W199 (GPIO_PORT_BASE + 0x131C) #define GPIO_W200 (GPIO_PORT_BASE + 0x1320) #define GPIO_W201 (GPIO_PORT_BASE + 0x1324) #define GPIO_W202 (GPIO_PORT_BASE + 0x1328) #define GPIO_W203 (GPIO_PORT_BASE + 0x132C) #define GPIO_W204 (GPIO_PORT_BASE + 0x1330) #define GPIO_W205 (GPIO_PORT_BASE + 0x1334) #define GPIO_W206 (GPIO_PORT_BASE + 0x1338) #define GPIO_W207 (GPIO_PORT_BASE + 0x133C) #define GPIO_W208 (GPIO_PORT_BASE + 0x1340) #define GPIO_W209 (GPIO_PORT_BASE + 0x1344) #define GPIO_W210 (GPIO_PORT_BASE + 0x1348) #define GPIO_W211 (GPIO_PORT_BASE + 0x134C) #define GPIO_W212 (GPIO_PORT_BASE + 0x1350) #define GPIO_W213 (GPIO_PORT_BASE + 0x1354) #define GPIO_W214 (GPIO_PORT_BASE + 0x1358) #define GPIO_W215 (GPIO_PORT_BASE + 0x135C) #define GPIO_W216 (GPIO_PORT_BASE + 0x1360) #define GPIO_W217 (GPIO_PORT_BASE + 0x1364) #define GPIO_W218 (GPIO_PORT_BASE + 0x1368) #define GPIO_W219 (GPIO_PORT_BASE + 0x136C) #define GPIO_W220 (GPIO_PORT_BASE + 0x1370) #define GPIO_W221 (GPIO_PORT_BASE + 0x1374) #define GPIO_W222 (GPIO_PORT_BASE + 0x1378) #define GPIO_W223 (GPIO_PORT_BASE + 0x137C) /* Word pin registers port 7 (R/W) */ #define GPIO_W224 (GPIO_PORT_BASE + 0x1380) #define GPIO_W225 (GPIO_PORT_BASE + 0x1384) #define GPIO_W226 (GPIO_PORT_BASE + 0x1388) #define GPIO_W227 (GPIO_PORT_BASE + 0x138C) #define GPIO_W228 (GPIO_PORT_BASE + 0x1390) #define GPIO_W229 (GPIO_PORT_BASE + 0x1394) #define GPIO_W230 (GPIO_PORT_BASE + 0x1398) #define GPIO_W231 (GPIO_PORT_BASE + 0x139C) #define GPIO_W232 (GPIO_PORT_BASE + 0x13A0) #define GPIO_W233 (GPIO_PORT_BASE + 0x13A4) #define GPIO_W234 (GPIO_PORT_BASE + 0x13A8) #define GPIO_W235 (GPIO_PORT_BASE + 0x13AC) #define GPIO_W236 (GPIO_PORT_BASE + 0x13B0) #define GPIO_W237 (GPIO_PORT_BASE + 0x13B4) #define GPIO_W238 (GPIO_PORT_BASE + 0x13B8) #define GPIO_W239 (GPIO_PORT_BASE + 0x13BC) #define GPIO_W240 (GPIO_PORT_BASE + 0x13C0) #define GPIO_W241 (GPIO_PORT_BASE + 0x13C4) #define GPIO_W242 (GPIO_PORT_BASE + 0x13C8) #define GPIO_W243 (GPIO_PORT_BASE + 0x13CC) #define GPIO_W244 (GPIO_PORT_BASE + 0x13D0) #define GPIO_W245 (GPIO_PORT_BASE + 0x13D4) #define GPIO_W246 (GPIO_PORT_BASE + 0x13D8) #define GPIO_W247 (GPIO_PORT_BASE + 0x13DC) #define GPIO_W248 (GPIO_PORT_BASE + 0x13E0) #define GPIO_W249 (GPIO_PORT_BASE + 0x13E4) #define GPIO_W250 (GPIO_PORT_BASE + 0x13E8) #define GPIO_W251 (GPIO_PORT_BASE + 0x13EC) #define GPIO_W252 (GPIO_PORT_BASE + 0x13F0) #define GPIO_W253 (GPIO_PORT_BASE + 0x13F4) #define GPIO_W254 (GPIO_PORT_BASE + 0x13F8) #define GPIO_W255 (GPIO_PORT_BASE + 0x13FC) /* GPIO data direction register (GPIOn_DIR) */ #define GPIO_DIR(port) MMIO32((port) + 0x00) #define GPIO0_DIR GPIO_DIR(GPIO0) #define GPIO1_DIR GPIO_DIR(GPIO1) #define GPIO2_DIR GPIO_DIR(GPIO2) #define GPIO3_DIR GPIO_DIR(GPIO3) #define GPIO4_DIR GPIO_DIR(GPIO4) #define GPIO5_DIR GPIO_DIR(GPIO5) #define GPIO6_DIR GPIO_DIR(GPIO6) #define GPIO7_DIR GPIO_DIR(GPIO7) /* GPIO fast mask register (GPIOn_MASK) */ #define GPIO_MASK(port) MMIO32((port) + 0x80) #define GPIO0_MASK GPIO_MASK(GPIO0) #define GPIO1_MASK GPIO_MASK(GPIO1) #define GPIO2_MASK GPIO_MASK(GPIO2) #define GPIO3_MASK GPIO_MASK(GPIO3) #define GPIO4_MASK GPIO_MASK(GPIO4) #define GPIO5_MASK GPIO_MASK(GPIO5) #define GPIO6_MASK GPIO_MASK(GPIO6) #define GPIO7_MASK GPIO_MASK(GPIO7) /* GPIO port pin value register (GPIOn_PIN) */ #define GPIO_PIN(port) MMIO32((port) + 0x100) #define GPIO0_PIN GPIO_PIN(GPIO0) #define GPIO1_PIN GPIO_PIN(GPIO1) #define GPIO2_PIN GPIO_PIN(GPIO2) #define GPIO3_PIN GPIO_PIN(GPIO3) #define GPIO4_PIN GPIO_PIN(GPIO4) #define GPIO5_PIN GPIO_PIN(GPIO5) #define GPIO6_PIN GPIO_PIN(GPIO6) #define GPIO7_PIN GPIO_PIN(GPIO7) /* GPIO port masked pin value register (GPIOn_MPIN) */ #define GPIO_MPIN(port) MMIO32((port) + 0x180) #define GPIO0_MPIN GPIO_MPIN(GPIO0) #define GPIO1_MPIN GPIO_MPIN(GPIO1) #define GPIO2_MPIN GPIO_MPIN(GPIO2) #define GPIO3_MPIN GPIO_MPIN(GPIO3) #define GPIO4_MPIN GPIO_MPIN(GPIO4) #define GPIO5_MPIN GPIO_MPIN(GPIO5) #define GPIO6_MPIN GPIO_MPIN(GPIO6) #define GPIO7_MPIN GPIO_MPIN(GPIO7) /* GPIO port output set register (GPIOn_SET) */ #define GPIO_SET(port) MMIO32((port) + 0x200) #define GPIO0_SET GPIO_SET(GPIO0) #define GPIO1_SET GPIO_SET(GPIO1) #define GPIO2_SET GPIO_SET(GPIO2) #define GPIO3_SET GPIO_SET(GPIO3) #define GPIO4_SET GPIO_SET(GPIO4) #define GPIO5_SET GPIO_SET(GPIO5) #define GPIO6_SET GPIO_SET(GPIO6) #define GPIO7_SET GPIO_SET(GPIO7) /* GPIO port output clear register (GPIOn_CLR) */ #define GPIO_CLR(port) MMIO32((port) + 0x280) #define GPIO0_CLR GPIO_CLR(GPIO0) #define GPIO1_CLR GPIO_CLR(GPIO1) #define GPIO2_CLR GPIO_CLR(GPIO2) #define GPIO3_CLR GPIO_CLR(GPIO3) #define GPIO4_CLR GPIO_CLR(GPIO4) #define GPIO5_CLR GPIO_CLR(GPIO5) #define GPIO6_CLR GPIO_CLR(GPIO6) #define GPIO7_CLR GPIO_CLR(GPIO7) /* GPIO port toggle register (GPIOn_NOT) */ #define GPIO_NOT(port) MMIO32((port) + 0x300) #define GPIO0_NOT GPIO_NOT(GPIO0) #define GPIO1_NOT GPIO_NOT(GPIO1) #define GPIO2_NOT GPIO_NOT(GPIO2) #define GPIO3_NOT GPIO_NOT(GPIO3) #define GPIO4_NOT GPIO_NOT(GPIO4) #define GPIO5_NOT GPIO_NOT(GPIO5) #define GPIO6_NOT GPIO_NOT(GPIO6) #define GPIO7_NOT GPIO_NOT(GPIO7) /* TODO interrupts */ BEGIN_DECLS void gpio_set(uint32_t gpioport, uint32_t gpios); void gpio_clear(uint32_t gpioport, uint32_t gpios); void gpio_toggle(uint32_t gpioport, uint32_t gpios); END_DECLS /**@}*/ #endif