qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

board.h (59468B)


      1 /*
      2     ChibiOS Driver element - Copyright (C) 2019 /u/KeepItUnder
      3 
      4     Licensed under the Apache License, Version 2.0 (the "License");
      5     you may not use this file except in compliance with the License.
      6     You may obtain a copy of the License at
      7 
      8         http://www.apache.org/licenses/LICENSE-2.0
      9 
     10     Unless required by applicable law or agreed to in writing, software
     11     distributed under the License is distributed on an "AS IS" BASIS,
     12     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13     See the License for the specific language governing permissions and
     14     limitations under the License.
     15 */
     16 
     17 #ifndef BOARD_H
     18 #define BOARD_H
     19 
     20 /*
     21  * Setup for Generic NUC123 board.
     22  */
     23 
     24 /*
     25  * Board identifier.
     26  */
     27 #define BOARD_NUC123SD4AN0
     28 #define BOARD_NAME                  "Nuvoton NUC123SD4AN0 MCU"
     29 
     30 /*
     31  * Board oscillators-related settings.
     32  * NOTE: LSE not fitted.
     33  * NOTE: HSE is fitted.
     34  */
     35 #if !defined(NUC123_LSECLK)
     36 #define NUC123_LSECLK                0U
     37 #endif
     38 
     39 #define NUC123_LSEDRV                (3U << 3U)
     40 
     41 #if !defined(NUC123_HSECLK)
     42 #define NUC123_HSECLK                12000000U
     43 #endif
     44 
     45 //#define NUC123_HSE_BYPASS
     46 
     47 /*
     48  * MCU type as defined in the NUC123 header.
     49  */
     50 #define NUC123SD4AN0
     51 
     52 /*
     53  * GPIO Multi Function Pin USB Setup
     54  * Requires Some GPIO pins to be disabled/set to USB
     55  */
     56 
     57 /*
     58  * IO pins assignments.
     59  */
     60 #define GPIOA_PIN0                  0U
     61 #define GPIOA_PIN1                  1U
     62 #define GPIOA_PIN2                  2U
     63 #define GPIOA_PIN3                  3U
     64 #define GPIOA_PIN4                  4U
     65 #define GPIOA_PIN5                  5U
     66 #define GPIOA_PIN6                  6U
     67 #define GPIOA_PIN7                  7U
     68 #define GPIOA_PIN8                  8U
     69 #define GPIOA_PIN9                  9U
     70 #define GPIOA_SPI1_MISO0            10U
     71 #define GPIOA_SPI1_CLK              11U
     72 #define GPIOA_PWM0                  12U
     73 #define GPIOA_PWM1                  13U
     74 #define GPIOA_PWM2                  14U
     75 #define GPIOA_PWM3                  15U
     76 
     77 #define GPIOB_UART0_RXD             0U
     78 #define GPIOB_UART0_TXD             1U
     79 #define GPIOB_UART0_RTS             2U
     80 #define GPIOB_UART0_CTS             3U
     81 #define GPIOB_UART1_RXD             4U
     82 #define GPIOB_UART1_TXD             5U
     83 #define GPIOB_UART1_RTS             6U
     84 #define GPIOB_UART1_CTS             7U
     85 #define GPIOB_TM0                   8U
     86 #define GPIOB_TM1                   9U
     87 #define GPIOB_TM2                   10U
     88 #define GPIOB_PIN11                 11U
     89 #define GPIOB_CLK0                  12U
     90 #define GPIOB_PIN13                 13U
     91 #define GPIOB_INT0                  14U
     92 #define GPIOB_INT1                  15U
     93 
     94 #define GPIOC_PIN0                  0U
     95 #define GPIOC_PIN1                  1U
     96 #define GPIOC_PIN2                  2U
     97 #define GPIOC_PIN3                  3U
     98 #define GPIOC_PIN4                  4U
     99 #define GPIOC_PIN5                  5U
    100 #define GPIOC_PIN6                  6U
    101 #define GPIOC_PIN7                  7U
    102 #define GPIOC_PIN8                  8U
    103 #define GPIOC_PIN9                  9U
    104 #define GPIOC_PIN10                 10U
    105 #define GPIOC_PIN11                 11U
    106 #define GPIOC_PIN12                 12U
    107 #define GPIOC_PIN13                 13U
    108 #define GPIOC_PIN14                 14U
    109 #define GPIOC_PIN15                 15U
    110 
    111 #define GPIOD_ADC0                  0U
    112 #define GPIOD_ADC1                  1U
    113 #define GPIOD_ADC2                  2U
    114 #define GPIOD_ADC3                  3U
    115 #define GPIOD_ADC4                  4U
    116 #define GPIOD_ADC5                  5U
    117 #define GPIOD_PIN6                  6U
    118 #define GPIOD_PIN7                  7U
    119 #define GPIOD_PIN8                  8U
    120 #define GPIOD_PIN9                  9U
    121 #define GPIOD_PIN10                 10U
    122 #define GPIOD_PIN11                 11U
    123 #define GPIOD_PIN12                 12U
    124 #define GPIOD_PIN13                 13U
    125 #define GPIOD_PIN14                 14U
    126 #define GPIOD_PIN15                 15U
    127 
    128 #define GPIOE_PIN0                  0U
    129 #define GPIOE_PIN1                  1U
    130 #define GPIOE_PIN2                  2U
    131 #define GPIOE_PIN3                  3U
    132 #define GPIOE_PIN4                  4U
    133 #define GPIOE_PIN5                  5U
    134 #define GPIOE_PIN6                  6U
    135 #define GPIOE_PIN7                  7U
    136 #define GPIOE_PIN8                  8U
    137 #define GPIOE_PIN9                  9U
    138 #define GPIOE_PIN10                 10U
    139 #define GPIOE_PIN11                 11U
    140 #define GPIOE_PIN12                 12U
    141 #define GPIOE_PIN13                 13U
    142 #define GPIOE_PIN14                 14U
    143 #define GPIOE_PIN15                 15U
    144 
    145 #define GPIOF_OSC_OUT               0U
    146 #define GPIOF_OSC_IN                1U
    147 #define GPIOF_I2C0_SDA              2U
    148 #define GPIOF_I2C0_SCL              3U
    149 #define GPIOF_PIN4                  4U
    150 #define GPIOF_PIN5                  5U
    151 #define GPIOF_PIN6                  6U
    152 #define GPIOF_PIN7                  7U
    153 #define GPIOF_PIN8                  8U
    154 #define GPIOF_PIN9                  9U
    155 #define GPIOF_PIN10                 10U
    156 #define GPIOF_PIN11                 11U
    157 #define GPIOF_PIN12                 12U
    158 #define GPIOF_PIN13                 13U
    159 #define GPIOF_PIN14                 14U
    160 #define GPIOF_PIN15                 15U
    161 
    162 /*
    163  * IO lines assignments.
    164  */
    165 #define LINE_USB_DM                 PAL_LINE(GPIOA, 11U)
    166 #define LINE_USB_DP                 PAL_LINE(GPIOA, 12U)
    167 #define LINE_SWDIO                  PAL_LINE(GPIOA, 13U)
    168 #define LINE_SWCLK                  PAL_LINE(GPIOA, 14U)
    169 
    170 // #define LINE_SPI2_SCK               PAL_LINE(GPIOB, 13U)
    171 // #define LINE_SPI2_MISO              PAL_LINE(GPIOB, 14U)
    172 // #define LINE_SPI2_MOSI              PAL_LINE(GPIOB, 15U)
    173 
    174 #define LINE_OSC_IN                 PAL_LINE(GPIOF, 0U)
    175 #define LINE_OSC_OUT                PAL_LINE(GPIOF, 1U)
    176 
    177 /*
    178  * I/O ports initial setup, this configuration is established soon after reset
    179  * in the initialization code.
    180  * Please refer to the NUC123 Reference Manual for details.
    181  */
    182 #define PIN_MODE_INPUT(n)             (0U << ((n) * 2U))
    183 #define PIN_MODE_OUTPUT(n)            (1U << ((n) * 2U))
    184 #define PIN_MODE_OPENDRAIN(n)         (2U << ((n) * 2U))
    185 #define PIN_MODE_QUASI(n)             (3U << ((n) * 2U))
    186 #define PIN_DIGITAL_EN(n)             (0U << (n))
    187 #define PIN_DIGITAL_DIS(n)            (1U << (n))
    188 #define PIN_DMASK_DIS(n)              (0U << (n))
    189 #define PIN_DMASK_EN(n)               (1U << (n))
    190 #define PIN_DBNCE_DIS(n)              (0U << (n))
    191 #define PIN_DBNCE_EN(n)               (1U << (n))
    192 #define PIN_IMD_EDGE(n)               (0U << (n))
    193 #define PIN_IMD_LVL(n)                (1U << (n))
    194 #define PIN_IEN_FELL_DIS(n)           (0U << (n))
    195 #define PIN_IEN_FELL_EN(n)            (1U << (n))
    196 #define PIN_IEN_REHL_DIS(n)           ((0U << (n)) << 16)
    197 #define PIN_IEN_REHL_EN(n)            ((1U << (n)) << 16)
    198 #define PIN_ISRC_EN(n)                (1U << (n))
    199 #define PIN_ISRC_DIS(n)               (0U << (n))
    200 #define PIN_ISRC_CLR(n)               (1U << (n))
    201 #define PIN_DATA_LOW(n)               (0U << (n))
    202 #define PIN_DATA_HIGH(n)              (1U << (n))
    203 
    204 /*
    205  * GPIOA setup:
    206  *
    207  * PA0  - PIN0                      (input pullup).
    208  * PA1  - PIN1                      (input pullup).
    209  * PA2  - PIN2                      (input pullup).
    210  * PA3  - PIN3                      (input pullup).
    211  * PA4  - PIN4                      (input pullup).
    212  * PA5  - PIN5                      (input pullup).
    213  * PA6  - PIN6                      (input pullup).
    214  * PA7  - PIN7                      (input pullup).
    215  * PA8  - PIN8                      (input pullup).
    216  * PA9  - PIN9                      (input pullup).
    217  * PA10 - SPI1_MISO0                (input pullup).
    218  * PA11 - SPI1_CLK                  (input floating).
    219  * PA12 - PWM0                      (input floating).
    220  * PA13 - PWM1                      (input pullup).
    221  * PA14 - PWM2                      (input pullup).
    222  * PA15 - PWM3                      (input pullup).
    223  */
    224 
    225 #define VAL_GPIOA_PMD               (PIN_MODE_INPUT(GPIOA_PIN0) |         \
    226                                      PIN_MODE_INPUT(GPIOA_PIN1) |           \
    227                                      PIN_MODE_INPUT(GPIOA_PIN2) |           \
    228                                      PIN_MODE_INPUT(GPIOA_PIN3) |           \
    229                                      PIN_MODE_INPUT(GPIOA_PIN4) |           \
    230                                      PIN_MODE_INPUT(GPIOA_PIN5) |           \
    231                                      PIN_MODE_INPUT(GPIOA_PIN6) |           \
    232                                      PIN_MODE_INPUT(GPIOA_PIN7) |           \
    233                                      PIN_MODE_INPUT(GPIOA_PIN8) |           \
    234                                      PIN_MODE_INPUT(GPIOA_PIN9) |           \
    235                                      PIN_MODE_INPUT(GPIOA_SPI1_MISO0) |          \
    236                                      PIN_MODE_INPUT(GPIOA_SPI1_CLK) |         \
    237                                      PIN_MODE_INPUT(GPIOA_PWM0) |         \
    238                                      PIN_MODE_INPUT(GPIOA_PWM1) |      \
    239                                      PIN_MODE_INPUT(GPIOA_PWM2) |      \
    240                                      PIN_MODE_INPUT(GPIOA_PWM3))
    241 #define VAL_GPIOA_OFFD              (PIN_DIGITAL_EN(GPIOA_PIN0) |     \
    242                                      PIN_DIGITAL_EN(GPIOA_PIN1) |       \
    243                                      PIN_DIGITAL_EN(GPIOA_PIN2) |       \
    244                                      PIN_DIGITAL_EN(GPIOA_PIN3) |       \
    245                                      PIN_DIGITAL_EN(GPIOA_PIN4) |       \
    246                                      PIN_DIGITAL_EN(GPIOA_PIN5) |       \
    247                                      PIN_DIGITAL_EN(GPIOA_PIN6) |       \
    248                                      PIN_DIGITAL_EN(GPIOA_PIN7) |       \
    249                                      PIN_DIGITAL_EN(GPIOA_PIN8) |       \
    250                                      PIN_DIGITAL_EN(GPIOA_PIN9) |       \
    251                                      PIN_DIGITAL_EN(GPIOA_SPI1_MISO0) |      \
    252                                      PIN_DIGITAL_EN(GPIOA_SPI1_CLK) |     \
    253                                      PIN_DIGITAL_EN(GPIOA_PWM0) |     \
    254                                      PIN_DIGITAL_EN(GPIOA_PWM1) |      \
    255                                      PIN_DIGITAL_EN(GPIOA_PWM2) |      \
    256                                      PIN_DIGITAL_EN(GPIOA_PWM3))
    257 #define VAL_GPIOA_DMASK             (PIN_DMASK_EN(GPIOA_PIN0) |     \
    258                                      PIN_DMASK_EN(GPIOA_PIN1) |       \
    259                                      PIN_DMASK_EN(GPIOA_PIN2) |       \
    260                                      PIN_DMASK_EN(GPIOA_PIN3) |       \
    261                                      PIN_DMASK_EN(GPIOA_PIN4) |       \
    262                                      PIN_DMASK_EN(GPIOA_PIN5) |       \
    263                                      PIN_DMASK_EN(GPIOA_PIN6) |       \
    264                                      PIN_DMASK_EN(GPIOA_PIN7) |       \
    265                                      PIN_DMASK_EN(GPIOA_PIN8) |       \
    266                                      PIN_DMASK_EN(GPIOA_PIN9) |       \
    267                                      PIN_DMASK_EN(GPIOA_SPI1_MISO0) |      \
    268                                      PIN_DMASK_EN(GPIOA_SPI1_CLK) |     \
    269                                      PIN_DMASK_EN(GPIOA_PWM0) |     \
    270                                      PIN_DMASK_EN(GPIOA_PWM1) |         \
    271                                      PIN_DMASK_EN(GPIOA_PWM2) |         \
    272                                      PIN_DMASK_EN(GPIOA_PWM3))
    273 #define VAL_GPIOA_DBEN              (PIN_DBNCE_EN(GPIOA_PIN0) |     \
    274                                      PIN_DBNCE_EN(GPIOA_PIN1) |         \
    275                                      PIN_DBNCE_EN(GPIOA_PIN2) |         \
    276                                      PIN_DBNCE_EN(GPIOA_PIN3) |         \
    277                                      PIN_DBNCE_EN(GPIOA_PIN4) |         \
    278                                      PIN_DBNCE_EN(GPIOA_PIN5) |         \
    279                                      PIN_DBNCE_EN(GPIOA_PIN6) |         \
    280                                      PIN_DBNCE_EN(GPIOA_PIN7) |         \
    281                                      PIN_DBNCE_EN(GPIOA_PIN8) |         \
    282                                      PIN_DBNCE_EN(GPIOA_PIN9) |         \
    283                                      PIN_DBNCE_EN(GPIOA_SPI1_MISO0) |        \
    284                                      PIN_DBNCE_EN(GPIOA_SPI1_CLK) |     \
    285                                      PIN_DBNCE_EN(GPIOA_PWM0) |     \
    286                                      PIN_DBNCE_EN(GPIOA_PWM1) |        \
    287                                      PIN_DBNCE_EN(GPIOA_PWM2) |      \
    288                                      PIN_DBNCE_EN(GPIOA_PWM3))
    289 #define VAL_GPIOA_IMD               (PIN_IMD_EDGE(GPIOA_PIN0) |           \
    290                                      PIN_IMD_EDGE(GPIOA_PIN1) |             \
    291                                      PIN_IMD_EDGE(GPIOA_PIN2) |             \
    292                                      PIN_IMD_EDGE(GPIOA_PIN3) |             \
    293                                      PIN_IMD_EDGE(GPIOA_PIN4) |             \
    294                                      PIN_IMD_EDGE(GPIOA_PIN5) |             \
    295                                      PIN_IMD_EDGE(GPIOA_PIN6) |             \
    296                                      PIN_IMD_EDGE(GPIOA_PIN7) |             \
    297                                      PIN_IMD_EDGE(GPIOA_PIN8) |             \
    298                                      PIN_IMD_EDGE(GPIOA_PIN9) |             \
    299                                      PIN_IMD_EDGE(GPIOA_SPI1_MISO0) |            \
    300                                      PIN_IMD_EDGE(GPIOA_SPI1_CLK) |           \
    301                                      PIN_IMD_EDGE(GPIOA_PWM0) |           \
    302                                      PIN_IMD_EDGE(GPIOA_PWM1) |            \
    303                                      PIN_IMD_EDGE(GPIOA_PWM2) |            \
    304                                      PIN_IMD_EDGE(GPIOA_PWM3))
    305 #define VAL_GPIOA_IEN               (PIN_IEN_FELL_DIS(GPIOA_PIN0) |        \
    306                                      PIN_IEN_FELL_DIS(GPIOA_PIN1) |          \
    307                                      PIN_IEN_FELL_DIS(GPIOA_PIN2) |          \
    308                                      PIN_IEN_FELL_DIS(GPIOA_PIN3) |          \
    309                                      PIN_IEN_FELL_DIS(GPIOA_PIN4) |          \
    310                                      PIN_IEN_FELL_DIS(GPIOA_PIN5) |          \
    311                                      PIN_IEN_FELL_DIS(GPIOA_PIN6) |          \
    312                                      PIN_IEN_FELL_DIS(GPIOA_PIN7) |          \
    313                                      PIN_IEN_FELL_DIS(GPIOA_PIN8) |          \
    314                                      PIN_IEN_FELL_DIS(GPIOA_PIN9) |          \
    315                                      PIN_IEN_FELL_DIS(GPIOA_SPI1_MISO0) |         \
    316                                      PIN_IEN_FELL_DIS(GPIOA_SPI1_CLK) |        \
    317                                      PIN_IEN_FELL_DIS(GPIOA_PWM0) |        \
    318                                      PIN_IEN_FELL_DIS(GPIOA_PWM1) |         \
    319                                      PIN_IEN_FELL_DIS(GPIOA_PWM2) |         \
    320                                      PIN_IEN_FELL_DIS(GPIOA_PWM3))
    321 #define VAL_GPIOA_ISRC              (PIN_ISRC_DIS(GPIOA_PIN0) |        \
    322                                      PIN_ISRC_DIS(GPIOA_PIN1) |          \
    323                                      PIN_ISRC_DIS(GPIOA_PIN2) |          \
    324                                      PIN_ISRC_DIS(GPIOA_PIN3) |          \
    325                                      PIN_ISRC_DIS(GPIOA_PIN4) |          \
    326                                      PIN_ISRC_DIS(GPIOA_PIN5) |          \
    327                                      PIN_ISRC_DIS(GPIOA_PIN6) |          \
    328                                      PIN_ISRC_DIS(GPIOA_PIN7) |          \
    329                                      PIN_ISRC_DIS(GPIOA_PIN8) |          \
    330                                      PIN_ISRC_DIS(GPIOA_PIN9) |          \
    331                                      PIN_ISRC_DIS(GPIOA_SPI1_MISO0) |         \
    332                                      PIN_ISRC_DIS(GPIOA_SPI1_CLK) |        \
    333                                      PIN_ISRC_DIS(GPIOA_PWM0) |        \
    334                                      PIN_ISRC_DIS(GPIOA_PWM1) |         \
    335                                      PIN_ISRC_DIS(GPIOA_PWM2) |         \
    336                                      PIN_ISRC_DIS(GPIOA_PWM3))
    337 #define VAL_GPIOA_DOUT              (PIN_DATA_LOW(GPIOA_PIN0) |        \
    338                                      PIN_DATA_LOW(GPIOA_PIN1) |          \
    339                                      PIN_DATA_LOW(GPIOA_PIN2) |          \
    340                                      PIN_DATA_LOW(GPIOA_PIN3) |          \
    341                                      PIN_DATA_LOW(GPIOA_PIN4) |          \
    342                                      PIN_DATA_LOW(GPIOA_PIN5) |          \
    343                                      PIN_DATA_LOW(GPIOA_PIN6) |          \
    344                                      PIN_DATA_LOW(GPIOA_PIN7) |          \
    345                                      PIN_DATA_LOW(GPIOA_PIN8) |          \
    346                                      PIN_DATA_LOW(GPIOA_PIN9) |          \
    347                                      PIN_DATA_LOW(GPIOA_SPI1_MISO0) |         \
    348                                      PIN_DATA_LOW(GPIOA_SPI1_CLK) |        \
    349                                      PIN_DATA_LOW(GPIOA_PWM0) |        \
    350                                      PIN_DATA_LOW(GPIOA_PWM1) |         \
    351                                      PIN_DATA_LOW(GPIOA_PWM2) |         \
    352                                      PIN_DATA_LOW(GPIOA_PWM3))
    353 
    354 /*
    355  * GPIOB setup:
    356  *
    357  * PB0  - UART0_RXD                 (input pullup).
    358  * PB1  - UART0_TXD                 (output).
    359  * PB2  - UART0_RTS                 (output).
    360  * PB3  - UART0_CTS                 (output).
    361  * PB4  - UART1_RXD                 (output).
    362  * PB5  - UART1_TXD                 (output).
    363  * PB6  - UART1_RTS                 (output).
    364  * PB7  - UART1_CTS                 (output).
    365  * PB8  - TM0                       (input pullup).
    366  * PB9  - TM1                       (input pullup).
    367  * PB10 - TM2                       (input pullup).
    368  * PB11 - PIN11                     (input pullup).
    369  * PB12 - CLK0                      (output).
    370  * PB13 - PIN13                     (output).
    371  * PB14 - INT0                      (debug output).
    372  * PB15 - INT1                      (input pullup).
    373  */
    374 #define VAL_GPIOB_PMD               (PIN_MODE_INPUT(GPIOB_UART0_RXD) |           \
    375                                      PIN_MODE_OUTPUT(GPIOB_UART0_TXD) |           \
    376                                      PIN_MODE_OUTPUT(GPIOB_UART0_RTS) |           \
    377                                      PIN_MODE_OUTPUT(GPIOB_UART0_CTS) |           \
    378                                      PIN_MODE_OUTPUT(GPIOB_UART1_RXD) |           \
    379                                      PIN_MODE_OUTPUT(GPIOB_UART1_TXD) |           \
    380                                      PIN_MODE_OUTPUT(GPIOB_UART1_RTS) |           \
    381                                      PIN_MODE_OUTPUT(GPIOB_UART1_CTS) |           \
    382                                      PIN_MODE_INPUT(GPIOB_TM0) |           \
    383                                      PIN_MODE_INPUT(GPIOB_TM1) |           \
    384                                      PIN_MODE_INPUT(GPIOB_TM2) |          \
    385                                      PIN_MODE_INPUT(GPIOB_PIN11) |          \
    386                                      PIN_MODE_OUTPUT(GPIOB_CLK0) |          \
    387                                      PIN_MODE_OUTPUT(GPIOB_PIN13) |   \
    388                                      PIN_MODE_OUTPUT(GPIOB_INT0) |  \
    389                                      PIN_MODE_INPUT(GPIOB_INT1))
    390 #define VAL_GPIOB_OFFD              (PIN_DIGITAL_EN(GPIOB_UART0_RXD) |       \
    391                                      PIN_DIGITAL_DIS(GPIOB_UART0_TXD) |       \
    392                                      PIN_DIGITAL_DIS(GPIOB_UART0_RTS) |       \
    393                                      PIN_DIGITAL_DIS(GPIOB_UART0_CTS) |       \
    394                                      PIN_DIGITAL_DIS(GPIOB_UART1_RXD) |       \
    395                                      PIN_DIGITAL_DIS(GPIOB_UART1_TXD) |       \
    396                                      PIN_DIGITAL_DIS(GPIOB_UART1_RTS) |       \
    397                                      PIN_DIGITAL_DIS(GPIOB_UART1_CTS) |       \
    398                                      PIN_DIGITAL_DIS(GPIOB_TM0) |       \
    399                                      PIN_DIGITAL_EN(GPIOB_TM1) |       \
    400                                      PIN_DIGITAL_EN(GPIOB_TM2) |      \
    401                                      PIN_DIGITAL_EN(GPIOB_PIN11) |      \
    402                                      PIN_DIGITAL_DIS(GPIOB_CLK0) |      \
    403                                      PIN_DIGITAL_DIS(GPIOB_PIN13) |   \
    404                                      PIN_DIGITAL_DIS(GPIOB_INT0) |  \
    405                                      PIN_DIGITAL_EN(GPIOB_INT1))
    406 #define VAL_GPIOB_DMASK             (PIN_DMASK_EN(GPIOB_UART0_RXD) |       \
    407                                      PIN_DMASK_DIS(GPIOB_UART0_TXD) |       \
    408                                      PIN_DMASK_DIS(GPIOB_UART0_RTS) |          \
    409                                      PIN_DMASK_DIS(GPIOB_UART0_CTS) |          \
    410                                      PIN_DMASK_DIS(GPIOB_UART1_RXD) |          \
    411                                      PIN_DMASK_DIS(GPIOB_UART1_TXD) |       \
    412                                      PIN_DMASK_DIS(GPIOB_UART1_RTS) |       \
    413                                      PIN_DMASK_DIS(GPIOB_UART1_CTS) |       \
    414                                      PIN_DMASK_EN(GPIOB_TM0) |       \
    415                                      PIN_DMASK_EN(GPIOB_TM1) |       \
    416                                      PIN_DMASK_EN(GPIOB_TM2) |      \
    417                                      PIN_DMASK_EN(GPIOB_PIN11) |      \
    418                                      PIN_DMASK_DIS(GPIOB_CLK0) |      \
    419                                      PIN_DMASK_DIS(GPIOB_PIN13) |   \
    420                                      PIN_DMASK_DIS(GPIOB_INT0) |  \
    421                                      PIN_DMASK_EN(GPIOB_INT1))
    422 #define VAL_GPIOB_DBEN              (PIN_DBNCE_EN(GPIOB_UART0_RXD) |         \
    423                                      PIN_DBNCE_DIS(GPIOB_UART0_TXD) |         \
    424                                      PIN_DBNCE_DIS(GPIOB_UART0_RTS) |         \
    425                                      PIN_DBNCE_DIS(GPIOB_UART0_CTS) |         \
    426                                      PIN_DBNCE_DIS(GPIOB_UART1_RXD) |         \
    427                                      PIN_DBNCE_DIS(GPIOB_UART1_TXD) |         \
    428                                      PIN_DBNCE_DIS(GPIOB_UART1_RTS) |         \
    429                                      PIN_DBNCE_DIS(GPIOB_UART1_CTS) |         \
    430                                      PIN_DBNCE_EN(GPIOB_TM0) |         \
    431                                      PIN_DBNCE_EN(GPIOB_TM1) |         \
    432                                      PIN_DBNCE_EN(GPIOB_TM2) |        \
    433                                      PIN_DBNCE_EN(GPIOB_PIN11) |        \
    434                                      PIN_DBNCE_DIS(GPIOB_CLK0) |        \
    435                                      PIN_DBNCE_DIS(GPIOB_PIN13) |   \
    436                                      PIN_DBNCE_DIS(GPIOB_INT0) |  \
    437                                      PIN_DBNCE_EN(GPIOB_INT1))
    438 #define VAL_GPIOB_IMD               (PIN_IMD_EDGE(GPIOB_UART0_RXD) |             \
    439                                      PIN_IMD_EDGE(GPIOB_UART0_TXD) |             \
    440                                      PIN_IMD_EDGE(GPIOB_UART0_RTS) |             \
    441                                      PIN_IMD_EDGE(GPIOB_UART0_CTS) |             \
    442                                      PIN_IMD_EDGE(GPIOB_UART1_RXD) |             \
    443                                      PIN_IMD_EDGE(GPIOB_UART1_TXD) |             \
    444                                      PIN_IMD_EDGE(GPIOB_UART1_RTS) |             \
    445                                      PIN_IMD_EDGE(GPIOB_UART1_CTS) |             \
    446                                      PIN_IMD_EDGE(GPIOB_TM0) |             \
    447                                      PIN_IMD_EDGE(GPIOB_TM1) |             \
    448                                      PIN_IMD_EDGE(GPIOB_TM2) |            \
    449                                      PIN_IMD_EDGE(GPIOB_PIN11) |            \
    450                                      PIN_IMD_EDGE(GPIOB_CLK0) |            \
    451                                      PIN_IMD_EDGE(GPIOB_PIN13) |         \
    452                                      PIN_IMD_EDGE(GPIOB_INT0) |        \
    453                                      PIN_IMD_EDGE(GPIOB_INT1))
    454 #define VAL_GPIOB_IEN               (PIN_IEN_FELL_DIS(GPIOB_UART0_RXD) |          \
    455                                      PIN_IEN_FELL_DIS(GPIOB_UART0_TXD) |          \
    456                                      PIN_IEN_FELL_DIS(GPIOB_UART0_RTS) |          \
    457                                      PIN_IEN_FELL_DIS(GPIOB_UART0_CTS) |          \
    458                                      PIN_IEN_FELL_DIS(GPIOB_UART1_RXD) |          \
    459                                      PIN_IEN_FELL_DIS(GPIOB_UART1_TXD) |          \
    460                                      PIN_IEN_FELL_DIS(GPIOB_UART1_RTS) |          \
    461                                      PIN_IEN_FELL_DIS(GPIOB_UART1_CTS) |          \
    462                                      PIN_IEN_FELL_DIS(GPIOB_TM0) |          \
    463                                      PIN_IEN_FELL_DIS(GPIOB_TM1) |          \
    464                                      PIN_IEN_FELL_DIS(GPIOB_TM2) |         \
    465                                      PIN_IEN_FELL_DIS(GPIOB_PIN11) |         \
    466                                      PIN_IEN_FELL_DIS(GPIOB_CLK0) |         \
    467                                      PIN_IEN_FELL_DIS(GPIOB_PIN13) |      \
    468                                      PIN_IEN_FELL_DIS(GPIOB_INT0) |     \
    469                                      PIN_IEN_FELL_DIS(GPIOB_INT1))
    470 #define VAL_GPIOB_ISRC              (PIN_ISRC_DIS(GPIOB_UART0_RXD) |          \
    471                                      PIN_ISRC_DIS(GPIOB_UART0_TXD) |          \
    472                                      PIN_ISRC_DIS(GPIOB_UART0_RTS) |          \
    473                                      PIN_ISRC_DIS(GPIOB_UART0_CTS) |          \
    474                                      PIN_ISRC_DIS(GPIOB_UART1_RXD) |          \
    475                                      PIN_ISRC_DIS(GPIOB_UART1_TXD) |          \
    476                                      PIN_ISRC_DIS(GPIOB_UART1_RTS) |          \
    477                                      PIN_ISRC_DIS(GPIOB_UART1_CTS) |          \
    478                                      PIN_ISRC_DIS(GPIOB_TM0) |          \
    479                                      PIN_ISRC_DIS(GPIOB_TM1) |          \
    480                                      PIN_ISRC_DIS(GPIOB_TM2) |         \
    481                                      PIN_ISRC_DIS(GPIOB_PIN11) |         \
    482                                      PIN_ISRC_DIS(GPIOB_CLK0) |         \
    483                                      PIN_ISRC_DIS(GPIOB_PIN13) |      \
    484                                      PIN_ISRC_DIS(GPIOB_INT0) |     \
    485                                      PIN_ISRC_DIS(GPIOB_INT1))
    486 #define VAL_GPIOB_DOUT              (PIN_DATA_LOW(GPIOB_UART0_RXD) |          \
    487                                      PIN_DATA_LOW(GPIOB_UART0_TXD) |          \
    488                                      PIN_DATA_LOW(GPIOB_UART0_RTS) |          \
    489                                      PIN_DATA_LOW(GPIOB_UART0_CTS) |          \
    490                                      PIN_DATA_LOW(GPIOB_UART1_RXD) |          \
    491                                      PIN_DATA_LOW(GPIOB_UART1_TXD) |          \
    492                                      PIN_DATA_LOW(GPIOB_UART1_RTS) |          \
    493                                      PIN_DATA_LOW(GPIOB_UART1_CTS) |          \
    494                                      PIN_DATA_LOW(GPIOB_TM0) |          \
    495                                      PIN_DATA_LOW(GPIOB_TM1) |          \
    496                                      PIN_DATA_LOW(GPIOB_TM2) |         \
    497                                      PIN_DATA_LOW(GPIOB_PIN11) |         \
    498                                      PIN_DATA_LOW(GPIOB_CLK0) |         \
    499                                      PIN_DATA_LOW(GPIOB_PIN13) |      \
    500                                      PIN_DATA_LOW(GPIOB_INT0) |     \
    501                                      PIN_DATA_LOW(GPIOB_INT1))
    502 
    503 /*
    504  * GPIOC setup:
    505  *
    506  * PC0  - PIN0                      (input pullup).
    507  * PC1  - PIN1                      (input pullup).
    508  * PC2  - PIN2                      (input pullup).
    509  * PC3  - PIN3                      (input pullup).
    510  * PC4  - PIN4                      (output).
    511  * PC5  - PIN5                      (output).
    512  * PC6  - PIN6                      (input pullup).
    513  * PC7  - PIN7                      (input pullup).
    514  * PC8  - PIN8                      (input pullup).
    515  * PC9  - PIN9                      (input pullup).
    516  * PC10 - PIN10                     (input pullup).
    517  * PC11 - PIN11                     (input pullup).
    518  * PC12 - PIN12                     (input pullup).
    519  * PC13 - PIN13                     (input pullup).
    520  * PC14 - PIN14                     (input pullup).
    521  * PC15 - PIN15                     (input pullup).
    522  */
    523 #define VAL_GPIOC_PMD               (PIN_MODE_INPUT(GPIOC_PIN0) |       \
    524                                      PIN_MODE_INPUT(GPIOC_PIN1) |           \
    525                                      PIN_MODE_INPUT(GPIOC_PIN2) |           \
    526                                      PIN_MODE_INPUT(GPIOC_PIN3) |           \
    527                                      PIN_MODE_OUTPUT(GPIOC_PIN4) |           \
    528                                      PIN_MODE_OUTPUT(GPIOC_PIN5) |           \
    529                                      PIN_MODE_INPUT(GPIOC_PIN6) |       \
    530                                      PIN_MODE_INPUT(GPIOC_PIN7) |      \
    531                                      PIN_MODE_INPUT(GPIOC_PIN8) |    \
    532                                      PIN_MODE_INPUT(GPIOC_PIN9) |     \
    533                                      PIN_MODE_INPUT(GPIOC_PIN10) |          \
    534                                      PIN_MODE_INPUT(GPIOC_PIN11) |          \
    535                                      PIN_MODE_INPUT(GPIOC_PIN12) |          \
    536                                      PIN_MODE_INPUT(GPIOC_PIN13) |          \
    537                                      PIN_MODE_INPUT(GPIOC_PIN14) |       \
    538                                      PIN_MODE_INPUT(GPIOC_PIN15))
    539 #define VAL_GPIOC_OFFD              (PIN_DIGITAL_EN(GPIOC_PIN0) |    \
    540                                      PIN_DIGITAL_EN(GPIOC_PIN1) |       \
    541                                      PIN_DIGITAL_EN(GPIOC_PIN2) |       \
    542                                      PIN_DIGITAL_EN(GPIOC_PIN3) |       \
    543                                      PIN_DIGITAL_DIS(GPIOC_PIN4) |       \
    544                                      PIN_DIGITAL_DIS(GPIOC_PIN5) |       \
    545                                      PIN_DIGITAL_EN(GPIOC_PIN6) |    \
    546                                      PIN_DIGITAL_EN(GPIOC_PIN7) |   \
    547                                      PIN_DIGITAL_EN(GPIOC_PIN8) | \
    548                                      PIN_DIGITAL_EN(GPIOC_PIN9) |  \
    549                                      PIN_DIGITAL_EN(GPIOC_PIN10) |      \
    550                                      PIN_DIGITAL_EN(GPIOC_PIN11) |      \
    551                                      PIN_DIGITAL_EN(GPIOC_PIN12) |      \
    552                                      PIN_DIGITAL_EN(GPIOC_PIN13) |      \
    553                                      PIN_DIGITAL_EN(GPIOC_PIN14) |   \
    554                                      PIN_DIGITAL_EN(GPIOC_PIN15))
    555 #define VAL_GPIOC_DMASK             (PIN_DMASK_EN(GPIOC_PIN0) |       \
    556                                      PIN_DMASK_EN(GPIOC_PIN1) |       \
    557                                      PIN_DMASK_EN(GPIOC_PIN2) |       \
    558                                      PIN_DMASK_EN(GPIOC_PIN3) |       \
    559                                      PIN_DMASK_DIS(GPIOC_PIN4) |       \
    560                                      PIN_DMASK_DIS(GPIOC_PIN5) |       \
    561                                      PIN_DMASK_EN(GPIOC_PIN6) |       \
    562                                      PIN_DMASK_EN(GPIOC_PIN7) |      \
    563                                      PIN_DMASK_EN(GPIOC_PIN8) |    \
    564                                      PIN_DMASK_EN(GPIOC_PIN9) |     \
    565                                      PIN_DMASK_EN(GPIOC_PIN10) |      \
    566                                      PIN_DMASK_EN(GPIOC_PIN11) |      \
    567                                      PIN_DMASK_EN(GPIOC_PIN12) |      \
    568                                      PIN_DMASK_EN(GPIOC_PIN13) |      \
    569                                      PIN_DMASK_EN(GPIOC_PIN14) |      \
    570                                      PIN_DMASK_EN(GPIOC_PIN15))
    571 #define VAL_GPIOC_DBEN              (PIN_DBNCE_EN(GPIOC_PIN0) |    \
    572                                      PIN_DBNCE_EN(GPIOC_PIN1) |         \
    573                                      PIN_DBNCE_EN(GPIOC_PIN2) |         \
    574                                      PIN_DBNCE_EN(GPIOC_PIN3) |         \
    575                                      PIN_DBNCE_DIS(GPIOC_PIN4) |         \
    576                                      PIN_DBNCE_DIS(GPIOC_PIN5) |         \
    577                                      PIN_DBNCE_EN(GPIOC_PIN6) |    \
    578                                      PIN_DBNCE_EN(GPIOC_PIN7) |   \
    579                                      PIN_DBNCE_EN(GPIOC_PIN8) | \
    580                                      PIN_DBNCE_EN(GPIOC_PIN9) |  \
    581                                      PIN_DBNCE_EN(GPIOC_PIN10) |        \
    582                                      PIN_DBNCE_EN(GPIOC_PIN11) |        \
    583                                      PIN_DBNCE_EN(GPIOC_PIN12) |        \
    584                                      PIN_DBNCE_EN(GPIOC_PIN13) |        \
    585                                      PIN_DBNCE_EN(GPIOC_PIN14) |   \
    586                                      PIN_DBNCE_EN(GPIOC_PIN15))
    587 #define VAL_GPIOC_IMD               (PIN_IMD_EDGE(GPIOC_PIN0) |          \
    588                                      PIN_IMD_EDGE(GPIOC_PIN1) |             \
    589                                      PIN_IMD_EDGE(GPIOC_PIN2) |             \
    590                                      PIN_IMD_EDGE(GPIOC_PIN3) |             \
    591                                      PIN_IMD_EDGE(GPIOC_PIN4) |             \
    592                                      PIN_IMD_EDGE(GPIOC_PIN5) |             \
    593                                      PIN_IMD_EDGE(GPIOC_PIN6) |           \
    594                                      PIN_IMD_EDGE(GPIOC_PIN7) |          \
    595                                      PIN_IMD_EDGE(GPIOC_PIN8) |        \
    596                                      PIN_IMD_EDGE(GPIOC_PIN9) |         \
    597                                      PIN_IMD_EDGE(GPIOC_PIN10) |            \
    598                                      PIN_IMD_EDGE(GPIOC_PIN11) |            \
    599                                      PIN_IMD_EDGE(GPIOC_PIN12) |            \
    600                                      PIN_IMD_EDGE(GPIOC_PIN13) |            \
    601                                      PIN_IMD_EDGE(GPIOC_PIN14) |         \
    602                                      PIN_IMD_EDGE(GPIOC_PIN15))
    603 #define VAL_GPIOC_IEN               (PIN_IEN_FELL_DIS(GPIOC_PIN0) |       \
    604                                      PIN_IEN_FELL_DIS(GPIOC_PIN1) |          \
    605                                      PIN_IEN_FELL_DIS(GPIOC_PIN2) |          \
    606                                      PIN_IEN_FELL_DIS(GPIOC_PIN3) |          \
    607                                      PIN_IEN_FELL_DIS(GPIOC_PIN4) |          \
    608                                      PIN_IEN_FELL_DIS(GPIOC_PIN5) |          \
    609                                      PIN_IEN_FELL_DIS(GPIOC_PIN6) |       \
    610                                      PIN_IEN_FELL_DIS(GPIOC_PIN7) |       \
    611                                      PIN_IEN_FELL_DIS(GPIOC_PIN8) |    \
    612                                      PIN_IEN_FELL_DIS(GPIOC_PIN9) |     \
    613                                      PIN_IEN_FELL_DIS(GPIOC_PIN10) |         \
    614                                      PIN_IEN_FELL_DIS(GPIOC_PIN11) |         \
    615                                      PIN_IEN_FELL_DIS(GPIOC_PIN12) |         \
    616                                      PIN_IEN_FELL_DIS(GPIOC_PIN13) |         \
    617                                      PIN_IEN_FELL_DIS(GPIOC_PIN14) |      \
    618                                      PIN_IEN_FELL_DIS(GPIOC_PIN15))
    619 #define VAL_GPIOC_ISRC              (PIN_ISRC_DIS(GPIOC_PIN0) |       \
    620                                      PIN_ISRC_DIS(GPIOC_PIN1) |          \
    621                                      PIN_ISRC_DIS(GPIOC_PIN2) |          \
    622                                      PIN_ISRC_DIS(GPIOC_PIN3) |          \
    623                                      PIN_ISRC_DIS(GPIOC_PIN4) |          \
    624                                      PIN_ISRC_DIS(GPIOC_PIN5) |          \
    625                                      PIN_ISRC_DIS(GPIOC_PIN6) |       \
    626                                      PIN_ISRC_DIS(GPIOC_PIN7) |       \
    627                                      PIN_ISRC_DIS(GPIOC_PIN8) |    \
    628                                      PIN_ISRC_DIS(GPIOC_PIN9) |     \
    629                                      PIN_ISRC_DIS(GPIOC_PIN10) |         \
    630                                      PIN_ISRC_DIS(GPIOC_PIN11) |         \
    631                                      PIN_ISRC_DIS(GPIOC_PIN12) |         \
    632                                      PIN_ISRC_DIS(GPIOC_PIN13) |         \
    633                                      PIN_ISRC_DIS(GPIOC_PIN14) |      \
    634                                      PIN_ISRC_DIS(GPIOC_PIN15))
    635 #define VAL_GPIOC_DOUT              (PIN_DATA_LOW(GPIOC_PIN0) |       \
    636                                      PIN_DATA_LOW(GPIOC_PIN1) |          \
    637                                      PIN_DATA_LOW(GPIOC_PIN2) |          \
    638                                      PIN_DATA_LOW(GPIOC_PIN3) |          \
    639                                      PIN_DATA_LOW(GPIOC_PIN4) |          \
    640                                      PIN_DATA_LOW(GPIOC_PIN5) |          \
    641                                      PIN_DATA_LOW(GPIOC_PIN6) |       \
    642                                      PIN_DATA_LOW(GPIOC_PIN7) |       \
    643                                      PIN_DATA_LOW(GPIOC_PIN8) |    \
    644                                      PIN_DATA_LOW(GPIOC_PIN9) |     \
    645                                      PIN_DATA_LOW(GPIOC_PIN10) |         \
    646                                      PIN_DATA_LOW(GPIOC_PIN11) |         \
    647                                      PIN_DATA_LOW(GPIOC_PIN12) |         \
    648                                      PIN_DATA_LOW(GPIOC_PIN13) |         \
    649                                      PIN_DATA_LOW(GPIOC_PIN14) |      \
    650                                      PIN_DATA_LOW(GPIOC_PIN15))
    651 
    652 /*
    653  * GPIOD setup:
    654  *
    655  * PD0  - ADC0                      (input pullup).
    656  * PD1  - ADC1                      (input pullup).
    657  * PD2  - ADC2                      (input pullup).
    658  * PD3  - ADC3                      (output).
    659  * PD4  - ADC4                      (output).
    660  * PD5  - ADC5                      (output).
    661  * PD6  - PIN6                      (input pullup).
    662  * PD7  - PIN7                      (input pullup).
    663  * PD8  - PIN8                      (input pullup).
    664  * PD9  - PIN9                      (output).
    665  * PD10 - PIN10                     (debug output).
    666  * PD11 - PIN11                     (output).
    667  * PD12 - PIN12                     (input pullup).
    668  * PD13 - PIN13                     (input pullup).
    669  * PD14 - PIN14                     (input pullup).
    670  * PD15 - PIN15                     (input pullup).
    671  */
    672 #define VAL_GPIOD_PMD               (PIN_MODE_INPUT(GPIOD_ADC0) |           \
    673                                      PIN_MODE_INPUT(GPIOD_ADC1) |           \
    674                                      PIN_MODE_INPUT(GPIOD_ADC2) |           \
    675                                      PIN_MODE_OUTPUT(GPIOD_ADC3) |           \
    676                                      PIN_MODE_OUTPUT(GPIOD_ADC4) |           \
    677                                      PIN_MODE_OUTPUT(GPIOD_ADC5) |           \
    678                                      PIN_MODE_INPUT(GPIOD_PIN6) |           \
    679                                      PIN_MODE_INPUT(GPIOD_PIN7) |           \
    680                                      PIN_MODE_INPUT(GPIOD_PIN8) |           \
    681                                      PIN_MODE_OUTPUT(GPIOD_PIN9) |           \
    682                                      PIN_MODE_OUTPUT(GPIOD_PIN10) |          \
    683                                      PIN_MODE_OUTPUT(GPIOD_PIN11) |          \
    684                                      PIN_MODE_INPUT(GPIOD_PIN12) |          \
    685                                      PIN_MODE_INPUT(GPIOD_PIN13) |          \
    686                                      PIN_MODE_INPUT(GPIOD_PIN14) |          \
    687                                      PIN_MODE_INPUT(GPIOD_PIN15))
    688 #define VAL_GPIOD_OFFD              (PIN_DIGITAL_EN(GPIOD_ADC0) |       \
    689                                      PIN_DIGITAL_EN(GPIOD_ADC1) |       \
    690                                      PIN_DIGITAL_EN(GPIOD_ADC2) |       \
    691                                      PIN_DIGITAL_DIS(GPIOD_ADC3) |       \
    692                                      PIN_DIGITAL_DIS(GPIOD_ADC4) |       \
    693                                      PIN_DIGITAL_DIS(GPIOD_ADC5) |       \
    694                                      PIN_DIGITAL_EN(GPIOD_PIN6) |       \
    695                                      PIN_DIGITAL_EN(GPIOD_PIN7) |       \
    696                                      PIN_DIGITAL_EN(GPIOD_PIN8) |       \
    697                                      PIN_DIGITAL_DIS(GPIOD_PIN9) |       \
    698                                      PIN_DIGITAL_DIS(GPIOD_PIN10) |      \
    699                                      PIN_DIGITAL_DIS(GPIOD_PIN11) |      \
    700                                      PIN_DIGITAL_EN(GPIOD_PIN12) |      \
    701                                      PIN_DIGITAL_EN(GPIOD_PIN13) |      \
    702                                      PIN_DIGITAL_EN(GPIOD_PIN14) |      \
    703                                      PIN_DIGITAL_EN(GPIOD_PIN15))
    704 #define VAL_GPIOD_DMASK             (PIN_DMASK_EN(GPIOD_ADC0) |       \
    705                                      PIN_DMASK_EN(GPIOD_ADC1) |       \
    706                                      PIN_DMASK_EN(GPIOD_ADC2) |       \
    707                                      PIN_DMASK_DIS(GPIOD_ADC3) |       \
    708                                      PIN_DMASK_DIS(GPIOD_ADC4) |       \
    709                                      PIN_DMASK_DIS(GPIOD_ADC5) |       \
    710                                      PIN_DMASK_EN(GPIOD_PIN6) |       \
    711                                      PIN_DMASK_EN(GPIOD_PIN7) |       \
    712                                      PIN_DMASK_EN(GPIOD_PIN8) |       \
    713                                      PIN_DMASK_DIS(GPIOD_PIN9) |       \
    714                                      PIN_DMASK_DIS(GPIOD_PIN10) |      \
    715                                      PIN_DMASK_DIS(GPIOD_PIN11) |      \
    716                                      PIN_DMASK_EN(GPIOD_PIN12) |      \
    717                                      PIN_DMASK_EN(GPIOD_PIN13) |      \
    718                                      PIN_DMASK_EN(GPIOD_PIN14) |      \
    719                                      PIN_DMASK_EN(GPIOD_PIN15))
    720 #define VAL_GPIOD_DBEN              (PIN_DBNCE_EN(GPIOD_ADC0) |         \
    721                                      PIN_DBNCE_EN(GPIOD_ADC1) |         \
    722                                      PIN_DBNCE_EN(GPIOD_ADC2) |         \
    723                                      PIN_DBNCE_DIS(GPIOD_ADC3) |         \
    724                                      PIN_DBNCE_DIS(GPIOD_ADC4) |         \
    725                                      PIN_DBNCE_DIS(GPIOD_ADC5) |         \
    726                                      PIN_DBNCE_EN(GPIOD_PIN6) |         \
    727                                      PIN_DBNCE_EN(GPIOD_PIN7) |         \
    728                                      PIN_DBNCE_EN(GPIOD_PIN8) |         \
    729                                      PIN_DBNCE_DIS(GPIOD_PIN9) |         \
    730                                      PIN_DBNCE_DIS(GPIOD_PIN10) |        \
    731                                      PIN_DBNCE_DIS(GPIOD_PIN11) |        \
    732                                      PIN_DBNCE_EN(GPIOD_PIN12) |        \
    733                                      PIN_DBNCE_EN(GPIOD_PIN13) |        \
    734                                      PIN_DBNCE_EN(GPIOD_PIN14) |        \
    735                                      PIN_DBNCE_EN(GPIOD_PIN15))
    736 #define VAL_GPIOD_IMD               (PIN_IMD_EDGE(GPIOD_ADC0) |             \
    737                                      PIN_IMD_EDGE(GPIOD_ADC1) |             \
    738                                      PIN_IMD_EDGE(GPIOD_ADC2) |             \
    739                                      PIN_IMD_EDGE(GPIOD_ADC3) |             \
    740                                      PIN_IMD_EDGE(GPIOD_ADC4) |             \
    741                                      PIN_IMD_EDGE(GPIOD_ADC5) |             \
    742                                      PIN_IMD_EDGE(GPIOD_PIN6) |             \
    743                                      PIN_IMD_EDGE(GPIOD_PIN7) |             \
    744                                      PIN_IMD_EDGE(GPIOD_PIN8) |             \
    745                                      PIN_IMD_EDGE(GPIOD_PIN9) |             \
    746                                      PIN_IMD_EDGE(GPIOD_PIN10) |            \
    747                                      PIN_IMD_EDGE(GPIOD_PIN11) |            \
    748                                      PIN_IMD_EDGE(GPIOD_PIN12) |            \
    749                                      PIN_IMD_EDGE(GPIOD_PIN13) |            \
    750                                      PIN_IMD_EDGE(GPIOD_PIN14) |            \
    751                                      PIN_IMD_EDGE(GPIOD_PIN15))
    752 #define VAL_GPIOD_IEN               (PIN_IEN_FELL_DIS(GPIOD_ADC0) |          \
    753                                      PIN_IEN_FELL_DIS(GPIOD_ADC1) |          \
    754                                      PIN_IEN_FELL_DIS(GPIOD_ADC2) |          \
    755                                      PIN_IEN_FELL_DIS(GPIOD_ADC3) |          \
    756                                      PIN_IEN_FELL_DIS(GPIOD_ADC4) |          \
    757                                      PIN_IEN_FELL_DIS(GPIOD_ADC5) |          \
    758                                      PIN_IEN_FELL_DIS(GPIOD_PIN6) |          \
    759                                      PIN_IEN_FELL_DIS(GPIOD_PIN7) |          \
    760                                      PIN_IEN_FELL_DIS(GPIOD_PIN8) |          \
    761                                      PIN_IEN_FELL_DIS(GPIOD_PIN9) |          \
    762                                      PIN_IEN_FELL_DIS(GPIOD_PIN10) |         \
    763                                      PIN_IEN_FELL_DIS(GPIOD_PIN11) |         \
    764                                      PIN_IEN_FELL_DIS(GPIOD_PIN12) |         \
    765                                      PIN_IEN_FELL_DIS(GPIOD_PIN13) |         \
    766                                      PIN_IEN_FELL_DIS(GPIOD_PIN14) |         \
    767                                      PIN_IEN_FELL_DIS(GPIOD_PIN15))
    768 #define VAL_GPIOD_ISRC              (PIN_ISRC_DIS(GPIOD_ADC0) |          \
    769                                      PIN_ISRC_DIS(GPIOD_ADC1) |          \
    770                                      PIN_ISRC_DIS(GPIOD_ADC2) |          \
    771                                      PIN_ISRC_DIS(GPIOD_ADC3) |          \
    772                                      PIN_ISRC_DIS(GPIOD_ADC4) |          \
    773                                      PIN_ISRC_DIS(GPIOD_ADC5) |          \
    774                                      PIN_ISRC_DIS(GPIOD_PIN6) |          \
    775                                      PIN_ISRC_DIS(GPIOD_PIN7) |          \
    776                                      PIN_ISRC_DIS(GPIOD_PIN8) |          \
    777                                      PIN_ISRC_DIS(GPIOD_PIN9) |          \
    778                                      PIN_ISRC_DIS(GPIOD_PIN10) |         \
    779                                      PIN_ISRC_DIS(GPIOD_PIN11) |         \
    780                                      PIN_ISRC_DIS(GPIOD_PIN12) |         \
    781                                      PIN_ISRC_DIS(GPIOD_PIN13) |         \
    782                                      PIN_ISRC_DIS(GPIOD_PIN14) |         \
    783                                      PIN_ISRC_DIS(GPIOD_PIN15))
    784 #define VAL_GPIOD_DOUT              (PIN_DATA_LOW(GPIOD_ADC0) |          \
    785                                      PIN_DATA_LOW(GPIOD_ADC1) |          \
    786                                      PIN_DATA_LOW(GPIOD_ADC2) |          \
    787                                      PIN_DATA_LOW(GPIOD_ADC3) |          \
    788                                      PIN_DATA_LOW(GPIOD_ADC4) |          \
    789                                      PIN_DATA_LOW(GPIOD_ADC5) |          \
    790                                      PIN_DATA_LOW(GPIOD_PIN6) |          \
    791                                      PIN_DATA_LOW(GPIOD_PIN7) |          \
    792                                      PIN_DATA_LOW(GPIOD_PIN8) |          \
    793                                      PIN_DATA_LOW(GPIOD_PIN9) |          \
    794                                      PIN_DATA_LOW(GPIOD_PIN10) |         \
    795                                      PIN_DATA_LOW(GPIOD_PIN11) |         \
    796                                      PIN_DATA_LOW(GPIOD_PIN12) |         \
    797                                      PIN_DATA_LOW(GPIOD_PIN13) |         \
    798                                      PIN_DATA_LOW(GPIOD_PIN14) |         \
    799                                      PIN_DATA_LOW(GPIOD_PIN15))
    800 
    801 /*
    802  * GPIOF setup:
    803  *
    804  * PF0  - OSC_IN                    (input floating).
    805  * PF1  - OSC_OUT                   (input floating).
    806  * PF2  - I2C0_SDA                  (input pullup).
    807  * PF3  - I2C0_SCL                  (input pullup).
    808  * PF4  - PIN4                      (input pullup).
    809  * PF5  - PIN5                      (input pullup).
    810  * PF6  - PIN6                      (input pullup).
    811  * PF7  - PIN7                      (input pullup).
    812  * PF8  - PIN8                      (input pullup).
    813  * PF9  - PIN9                      (input pullup).
    814  * PF10 - PIN10                     (input pullup).
    815  * PF11 - PIN11                     (input pullup).
    816  * PF12 - PIN12                     (input pullup).
    817  * PF13 - PIN13                     (input pullup).
    818  * PF14 - PIN14                     (input pullup).
    819  * PF15 - PIN15                     (input pullup).
    820  */
    821 #define VAL_GPIOF_PMD               (PIN_MODE_QUASI(GPIOF_OSC_IN) |        \
    822                                      PIN_MODE_QUASI(GPIOF_OSC_OUT) |         \
    823                                      PIN_MODE_INPUT(GPIOF_I2C0_SDA) |           \
    824                                      PIN_MODE_INPUT(GPIOF_I2C0_SCL) |           \
    825                                      PIN_MODE_INPUT(GPIOF_PIN4) |           \
    826                                      PIN_MODE_INPUT(GPIOF_PIN5) |           \
    827                                      PIN_MODE_INPUT(GPIOF_PIN6) |           \
    828                                      PIN_MODE_INPUT(GPIOF_PIN7) |           \
    829                                      PIN_MODE_INPUT(GPIOF_PIN8) |           \
    830                                      PIN_MODE_INPUT(GPIOF_PIN9) |           \
    831                                      PIN_MODE_INPUT(GPIOF_PIN10) |          \
    832                                      PIN_MODE_INPUT(GPIOF_PIN11) |          \
    833                                      PIN_MODE_INPUT(GPIOF_PIN12) |          \
    834                                      PIN_MODE_INPUT(GPIOF_PIN13) |          \
    835                                      PIN_MODE_INPUT(GPIOF_PIN14) |          \
    836                                      PIN_MODE_INPUT(GPIOF_PIN15))
    837 #define VAL_GPIOF_OFFD              (PIN_DIGITAL_DIS(GPIOF_OSC_IN) |    \
    838                                      PIN_DIGITAL_DIS(GPIOF_OSC_OUT) |     \
    839                                      PIN_DIGITAL_EN(GPIOF_I2C0_SDA) |       \
    840                                      PIN_DIGITAL_EN(GPIOF_I2C0_SCL) |       \
    841                                      PIN_DIGITAL_EN(GPIOF_PIN4) |       \
    842                                      PIN_DIGITAL_EN(GPIOF_PIN5) |       \
    843                                      PIN_DIGITAL_EN(GPIOF_PIN6) |       \
    844                                      PIN_DIGITAL_EN(GPIOF_PIN7) |       \
    845                                      PIN_DIGITAL_EN(GPIOF_PIN8) |       \
    846                                      PIN_DIGITAL_EN(GPIOF_PIN9) |       \
    847                                      PIN_DIGITAL_EN(GPIOF_PIN10) |      \
    848                                      PIN_DIGITAL_EN(GPIOF_PIN11) |      \
    849                                      PIN_DIGITAL_EN(GPIOF_PIN12) |      \
    850                                      PIN_DIGITAL_EN(GPIOF_PIN13) |      \
    851                                      PIN_DIGITAL_EN(GPIOF_PIN14) |      \
    852                                      PIN_DIGITAL_EN(GPIOF_PIN15))
    853 #define VAL_GPIOF_DMASK             (PIN_DMASK_DIS(GPIOF_OSC_IN) |    \
    854                                      PIN_DMASK_DIS(GPIOF_OSC_OUT) |     \
    855                                      PIN_DMASK_EN(GPIOF_I2C0_SDA) |       \
    856                                      PIN_DMASK_EN(GPIOF_I2C0_SCL) |       \
    857                                      PIN_DMASK_EN(GPIOF_PIN4) |       \
    858                                      PIN_DMASK_EN(GPIOF_PIN5) |       \
    859                                      PIN_DMASK_EN(GPIOF_PIN6) |       \
    860                                      PIN_DMASK_EN(GPIOF_PIN7) |       \
    861                                      PIN_DMASK_EN(GPIOF_PIN8) |       \
    862                                      PIN_DMASK_EN(GPIOF_PIN9) |       \
    863                                      PIN_DMASK_EN(GPIOF_PIN10) |      \
    864                                      PIN_DMASK_EN(GPIOF_PIN11) |      \
    865                                      PIN_DMASK_EN(GPIOF_PIN12) |      \
    866                                      PIN_DMASK_EN(GPIOF_PIN13) |      \
    867                                      PIN_DMASK_EN(GPIOF_PIN14) |      \
    868                                      PIN_DMASK_EN(GPIOF_PIN15))
    869 #define VAL_GPIOF_DBEN              (PIN_DBNCE_DIS(GPIOF_OSC_IN) |    \
    870                                      PIN_DBNCE_DIS(GPIOF_OSC_OUT) |     \
    871                                      PIN_DBNCE_EN(GPIOF_I2C0_SDA) |         \
    872                                      PIN_DBNCE_EN(GPIOF_I2C0_SCL) |         \
    873                                      PIN_DBNCE_EN(GPIOF_PIN4) |         \
    874                                      PIN_DBNCE_EN(GPIOF_PIN5) |         \
    875                                      PIN_DBNCE_EN(GPIOF_PIN6) |         \
    876                                      PIN_DBNCE_EN(GPIOF_PIN7) |         \
    877                                      PIN_DBNCE_EN(GPIOF_PIN8) |         \
    878                                      PIN_DBNCE_EN(GPIOF_PIN9) |         \
    879                                      PIN_DBNCE_EN(GPIOF_PIN10) |        \
    880                                      PIN_DBNCE_EN(GPIOF_PIN11) |        \
    881                                      PIN_DBNCE_EN(GPIOF_PIN12) |        \
    882                                      PIN_DBNCE_EN(GPIOF_PIN13) |        \
    883                                      PIN_DBNCE_EN(GPIOF_PIN14) |        \
    884                                      PIN_DBNCE_EN(GPIOF_PIN15))
    885 #define VAL_GPIOF_IMD               (PIN_IMD_LVL(GPIOF_OSC_IN) |          \
    886                                      PIN_IMD_LVL(GPIOF_OSC_OUT) |           \
    887                                      PIN_IMD_EDGE(GPIOF_I2C0_SDA) |             \
    888                                      PIN_IMD_EDGE(GPIOF_I2C0_SCL) |             \
    889                                      PIN_IMD_EDGE(GPIOF_PIN4) |             \
    890                                      PIN_IMD_EDGE(GPIOF_PIN5) |             \
    891                                      PIN_IMD_EDGE(GPIOF_PIN6) |             \
    892                                      PIN_IMD_EDGE(GPIOF_PIN7) |             \
    893                                      PIN_IMD_EDGE(GPIOF_PIN8) |             \
    894                                      PIN_IMD_EDGE(GPIOF_PIN9) |             \
    895                                      PIN_IMD_EDGE(GPIOF_PIN10) |            \
    896                                      PIN_IMD_EDGE(GPIOF_PIN11) |            \
    897                                      PIN_IMD_EDGE(GPIOF_PIN12) |            \
    898                                      PIN_IMD_EDGE(GPIOF_PIN13) |            \
    899                                      PIN_IMD_EDGE(GPIOF_PIN14) |            \
    900                                      PIN_IMD_EDGE(GPIOF_PIN15))
    901 #define VAL_GPIOF_IEN               (PIN_IEN_FELL_DIS(GPIOF_OSC_IN) |       \
    902                                      PIN_IEN_FELL_DIS(GPIOF_OSC_OUT) |        \
    903                                      PIN_IEN_FELL_DIS(GPIOF_I2C0_SDA) |          \
    904                                      PIN_IEN_FELL_DIS(GPIOF_I2C0_SCL) |          \
    905                                      PIN_IEN_FELL_DIS(GPIOF_PIN4) |          \
    906                                      PIN_IEN_FELL_DIS(GPIOF_PIN5) |          \
    907                                      PIN_IEN_FELL_DIS(GPIOF_PIN6) |          \
    908                                      PIN_IEN_FELL_DIS(GPIOF_PIN7) |          \
    909                                      PIN_IEN_FELL_DIS(GPIOF_PIN8) |          \
    910                                      PIN_IEN_FELL_DIS(GPIOF_PIN9) |          \
    911                                      PIN_IEN_FELL_DIS(GPIOF_PIN10) |         \
    912                                      PIN_IEN_FELL_DIS(GPIOF_PIN11) |         \
    913                                      PIN_IEN_FELL_DIS(GPIOF_PIN12) |         \
    914                                      PIN_IEN_FELL_DIS(GPIOF_PIN13) |         \
    915                                      PIN_IEN_FELL_DIS(GPIOF_PIN14) |         \
    916                                      PIN_IEN_FELL_DIS(GPIOF_PIN15))
    917 #define VAL_GPIOF_ISRC              (PIN_ISRC_DIS(GPIOF_OSC_IN) |       \
    918                                      PIN_ISRC_DIS(GPIOF_OSC_OUT) |        \
    919                                      PIN_ISRC_DIS(GPIOF_I2C0_SDA) |          \
    920                                      PIN_ISRC_DIS(GPIOF_I2C0_SCL) |          \
    921                                      PIN_ISRC_DIS(GPIOF_PIN4) |          \
    922                                      PIN_ISRC_DIS(GPIOF_PIN5) |          \
    923                                      PIN_ISRC_DIS(GPIOF_PIN6) |          \
    924                                      PIN_ISRC_DIS(GPIOF_PIN7) |          \
    925                                      PIN_ISRC_DIS(GPIOF_PIN8) |          \
    926                                      PIN_ISRC_DIS(GPIOF_PIN9) |          \
    927                                      PIN_ISRC_DIS(GPIOF_PIN10) |         \
    928                                      PIN_ISRC_DIS(GPIOF_PIN11) |         \
    929                                      PIN_ISRC_DIS(GPIOF_PIN12) |         \
    930                                      PIN_ISRC_DIS(GPIOF_PIN13) |         \
    931                                      PIN_ISRC_DIS(GPIOF_PIN14) |         \
    932                                      PIN_ISRC_DIS(GPIOF_PIN15))
    933 #define VAL_GPIOF_DOUT              (PIN_DATA_LOW(GPIOF_OSC_IN) |       \
    934                                      PIN_DATA_LOW(GPIOF_OSC_OUT) |        \
    935                                      PIN_DATA_LOW(GPIOF_I2C0_SDA) |          \
    936                                      PIN_DATA_LOW(GPIOF_I2C0_SCL) |          \
    937                                      PIN_DATA_LOW(GPIOF_PIN4) |          \
    938                                      PIN_DATA_LOW(GPIOF_PIN5) |          \
    939                                      PIN_DATA_LOW(GPIOF_PIN6) |          \
    940                                      PIN_DATA_LOW(GPIOF_PIN7) |          \
    941                                      PIN_DATA_LOW(GPIOF_PIN8) |          \
    942                                      PIN_DATA_LOW(GPIOF_PIN9) |          \
    943                                      PIN_DATA_LOW(GPIOF_PIN10) |         \
    944                                      PIN_DATA_LOW(GPIOF_PIN11) |         \
    945                                      PIN_DATA_LOW(GPIOF_PIN12) |         \
    946                                      PIN_DATA_LOW(GPIOF_PIN13) |         \
    947                                      PIN_DATA_LOW(GPIOF_PIN14) |         \
    948                                      PIN_DATA_LOW(GPIOF_PIN15))
    949 
    950 
    951 #if !defined(_FROM_ASM_)
    952 #ifdef __cplusplus
    953 extern "C" {
    954 #endif
    955   void boardInit(void);
    956 #ifdef __cplusplus
    957 }
    958 #endif
    959 #endif /* _FROM_ASM_ */
    960 
    961 #endif /* BOARD_H */