Add beginning of Kinetis pin interrupt/dma logic

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3880 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2011-08-14 22:47:44 +00:00
parent f1219b0836
commit 1109cc7e26
20 changed files with 1638 additions and 1263 deletions

View File

@ -57,18 +57,22 @@ endif
# Required Kinetis files
CHIP_ASRCS =
CHIP_CSRCS = kinetis_clockconfig.c kinetis_clrpend.c kinetis_gpio.c \
kinetis_idle.c kinetis_irq.c kinetis_lowputc.c kinetis_serial.c \
kinetis_start.c kinetis_timerisr.c kinetis_wdog.c
CHIP_CSRCS = kinetis_clockconfig.c kinetis_clrpend.c kinetis_idle.c \
kinetis_irq.c kinetis_lowputc.c kinetis_pin.c kinetis_pingpio.c \
kinetis_serial.c kinetis_start.c kinetis_timerisr.c kinetis_wdog.c
# Configuration-dependent Kinetis files
ifeq ($(CONFIG_GPIO_IRQ),y)
CHIP_CSRCS += kinetis_gpioint.c
CHIP_CSRCS += kinetis_pinirq.c
endif
ifeq ($(CONFIG_KINETIS_DMA),y)
CHIP_CSRCS += kinetis_pindma.c
endif
ifeq ($(CONFIG_DEBUG_GPIO),y)
CHIP_CSRCS += kinetis_gpiodbg.c
CHIP_CSRCS += kinetis_pindbg.c
endif
ifeq ($(CONFIG_USBDEV),y)

0
arch/arm/src/kinetis/kinetis_clrpend.c Executable file → Normal file
View File

0
arch/arm/src/kinetis/kinetis_config.h Executable file → Normal file
View File

0
arch/arm/src/kinetis/kinetis_idle.c Executable file → Normal file
View File

View File

@ -47,6 +47,8 @@
#include <stdint.h>
#include <stdbool.h>
#include <nuttx/irq.h>
#include "up_internal.h"
#include "kinetis_config.h"
#include "chip.h"
@ -58,10 +60,10 @@
/* Configuration ********************************************************************/
/* Bit-encoded input to kinetis_configgpio() ****************************************/
/* Bit-encoded input to kinetis_pinconfig() *****************************************/
/* General form (32-bits, only 22 bits are unused in the encoding):
*
* oooo mmmv iiii fd-- ---- -ppp ---b bbbb
* oooo mmmv iiii ifd- ---- -ppp ---b bbbb
*/
/* Bits 25-31: 7 bits are used to encode the basic pin configuration:
@ -72,188 +74,125 @@
* `------- oooo: options (may be combined)
*/
#define _GPIO_MODE_SHIFT (25) /* Bits 25-27: Pin mode */
#define _GPIO_MODE_MASK (7 << _GPIO_MODE_SHIFT)
#define _GPIO_OPTIONS_SHIFT (28) /* Bits 28-31: Pin mode options */
#define _GPIO_OPTIONS_MASK (15 << _GPIO_OPTIONS_SHIFT)
#define _PIN_MODE_SHIFT (25) /* Bits 25-27: Pin mode */
#define _PIN_MODE_MASK (7 << _PIN_MODE_SHIFT)
#define _PIN_OPTIONS_SHIFT (28) /* Bits 28-31: Pin mode options */
#define _PIN_OPTIONS_MASK (15 << _PIN_OPTIONS_SHIFT)
/* Port Modes */
#define _GPIO_MODE_ANALOG (0) /* 000 Pin Disabled (Analog) */
#define _GPIO_MODE_GPIO (1) /* 001 Alternative 1 (GPIO) */
#define _GPIO_MODE_ALT2 (2) /* 010 Alternative 2 */
#define _GPIO_MODE_ALT3 (3) /* 011 Alternative 3 */
#define _GPIO_MODE_ALT4 (4) /* 100 Alternative 4 */
#define _GPIO_MODE_ALT5 (5) /* 101 Alternative 5 */
#define _GPIO_MODE_ALT6 (6) /* 110 Alternative 6 */
#define _GPIO_MODE_ALT7 (7) /* 111 Alternative 7 */
#define _PIN_MODE_ANALOG (0 << _PIN_MODE_SHIFT) /* 000 Pin Disabled (Analog) */
#define _PIN_MODE_GPIO (1 << _PIN_MODE_SHIFT) /* 001 Alternative 1 (GPIO) */
#define _PIN_MODE_ALT2 (2 << _PIN_MODE_SHIFT) /* 010 Alternative 2 */
#define _PIN_MODE_ALT3 (3 << _PIN_MODE_SHIFT) /* 011 Alternative 3 */
#define _PIN_MODE_ALT4 (4 << _PIN_MODE_SHIFT) /* 100 Alternative 4 */
#define _PIN_MODE_ALT5 (5 << _PIN_MODE_SHIFT) /* 101 Alternative 5 */
#define _PIN_MODE_ALT6 (6 << _PIN_MODE_SHIFT) /* 110 Alternative 6 */
#define _PIN_MODE_ALT7 (7 << _PIN_MODE_SHIFT) /* 111 Alternative 7 */
/* Options for all digital modes (Alternatives 1-7). None of the digital
* options apply if the analog mode is selected.
*/
#define _GPIO_IO_MASK (1) /* xxx1 Digital input/output mask */
#define _GPIO_INPUT (0) /* xxx0 Digital input */
#define _GPIO_OUTPUT (1) /* xxx1 Digital output */
#define _PIN_IO_MASK (1 << _PIN_OPTIONS_SHIFT) /* xxx1 Digital input/output mask */
#define _PIN_INPUT (0 << _PIN_OPTIONS_SHIFT) /* xxx0 Digital input */
#define _PIN_OUTPUT (1 << _PIN_OPTIONS_SHIFT) /* xxx1 Digital output */
#define _GPIO_INPUT_PULLMASK (7) /* x111 Mask for pull-up or -down bits */
#define _GPIO_INPUT_PULLDOWN (2) /* x010 Input with internal pull-down resistor */
#define _GPIO_INPUT_PULLUP (6) /* x110 Input with internal pull-up resistor */
#define _PIN_INPUT_PULLMASK (7 << _PIN_OPTIONS_SHIFT) /* x111 Mask for pull-up or -down bits */
#define _PIN_INPUT_PULLDOWN (2 << _PIN_OPTIONS_SHIFT) /* x010 Input with internal pull-down resistor */
#define _PIN_INPUT_PULLUP (6 << _PIN_OPTIONS_SHIFT) /* x110 Input with internal pull-up resistor */
#define _GPIO_OUTPUT_SLEW_MASK (3) /* xx11 Mask to test for slow slew rate */
#define _GPIO_OUTPUT_FAST (1) /* xx01 Output with fast slew rate */
#define _GPIO_OUTPUT_SLOW (3) /* xx11 Output with slow slew rate */
#define _GPIO_OUTPUT_OD_MASK (5) /* x1x1 Mask to test for open drain */
#define _GPIO_OUTPUT_OPENDRAIN (5) /* x1x1 Output with open drain enabled */
#define _GPIO_OUTPUT_DRIVE_MASK (9) /* 1xx1 Mask to test for high drive strengh */
#define _GPIO_OUTPUT_LOWDRIVE (1) /* 0xx1 Output with low drive strength */
#define _GPIO_OUTPUT_HIGHDRIVE (9) /* 1xx1 Output with high drive strength */
#define _PIN_OUTPUT_SLEW_MASK (3 << _PIN_OPTIONS_SHIFT) /* xx11 Mask to test for slow slew rate */
#define _PIN_OUTPUT_FAST (1 << _PIN_OPTIONS_SHIFT) /* xx01 Output with fast slew rate */
#define _PIN_OUTPUT_SLOW (3 << _PIN_OPTIONS_SHIFT) /* xx11 Output with slow slew rate */
#define _PIN_OUTPUT_OD_MASK (5 << _PIN_OPTIONS_SHIFT) /* x1x1 Mask to test for open drain */
#define _PIN_OUTPUT_OPENDRAIN (5 << _PIN_OPTIONS_SHIFT) /* x1x1 Output with open drain enabled */
#define _PIN_OUTPUT_DRIVE_MASK (9 << _PIN_OPTIONS_SHIFT) /* 1xx1 Mask to test for high drive strengh */
#define _PIN_OUTPUT_LOWDRIVE (1 << _PIN_OPTIONS_SHIFT) /* 0xx1 Output with low drive strength */
#define _PIN_OUTPUT_HIGHDRIVE (9 << _PIN_OPTIONS_SHIFT) /* 1xx1 Output with high drive strength */
/* End-user pin modes and configurations. Notes: (1) None of the digital options
* are available for the analog mode, (2) digital settings may be combined (OR'ed)
* provided that input-only and output-only options are not intermixed.
*/
#define GPIO_ANALOG (_GPIO_MODE_ANALOG << _GPIO_MODE_SHIFT)
#define PIN_ANALOG _PIN_MODE_ANALOG
#define GPIO_INPUT ((_GPIO_MODE_GPIO << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT << _GPIO_OPTIONS_SHIFT))
#define GPIO_PULLDOWN ((_GPIO_MODE_GPIO << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT_PULLDOWN << _GPIO_OPTIONS_SHIFT))
#define GPIO_PULLUP ((_GPIO_MODE_GPIO << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT_PULLUP << _GPIO_OPTIONS_SHIFT))
#define GPIO_OUTPUT ((_GPIO_MODE_GPIO << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT << _GPIO_OPTIONS_SHIFT))
#define GPIO_FAST ((_GPIO_MODE_GPIO << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_FAST << _GPIO_OPTIONS_SHIFT))
#define GPIO_SLOW ((_GPIO_MODE_GPIO << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_SLOW << _GPIO_OPTIONS_SHIFT))
#define GPIO_OPENDRAIN ((_GPIO_MODE_GPIO << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_LOWDRIVE << _GPIO_OPTIONS_SHIFT))
#define GPIO_LOWDRIVE ((_GPIO_MODE_GPIO << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_OPENDRAIN << _GPIO_OPTIONS_SHIFT))
#define GPIO_HIGHDRIVE ((_GPIO_MODE_GPIO << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_HIGHDRIVE << _GPIO_OPTIONS_SHIFT))
#define GPIO_INPUT (_PIN_MODE_GPIO | _PIN_INPUT)
#define GPIO_PULLDOWN (_PIN_MODE_GPIO | _PIN_INPUT_PULLDOWN)
#define GPIO_PULLUP (_PIN_MODE_GPIO | _PIN_INPUT_PULLUP)
#define GPIO_OUTPUT (_PIN_MODE_GPIO | _PIN_OUTPUT)
#define GPIO_FAST (_PIN_MODE_GPIO | _PIN_OUTPUT_FAST)
#define GPIO_SLOW (_PIN_MODE_GPIO | _PIN_OUTPUT_SLOW)
#define GPIO_OPENDRAIN (_PIN_MODE_GPIO | _PIN_OUTPUT_LOWDRIVE)
#define GPIO_LOWDRIVE (_PIN_MODE_GPIO | _PIN_OUTPUT_OPENDRAIN)
#define GPIO_HIGHDRIVE (_PIN_MODE_GPIO | _PIN_OUTPUT_HIGHDRIVE)
#define GPIO_ALT2 (_GPIO_MODE_ALT2 << _GPIO_MODE_SHIFT)
#define GPIO_ALT2_INPUT ((_GPIO_MODE_ALT2 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT2_PULLDOWN ((_GPIO_MODE_ALT2 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT_PULLDOWN << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT2_PULLUP ((_GPIO_MODE_ALT2 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT_PULLUP << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT2_OUTPUT ((_GPIO_MODE_ALT2 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT2_FAST ((_GPIO_MODE_ALT2 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_FAST << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT2_SLOW ((_GPIO_MODE_ALT2 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_SLOW << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT2_OPENDRAIN ((_GPIO_MODE_ALT2 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_LOWDRIVE << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT2_LOWDRIVE ((_GPIO_MODE_ALT2 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_OPENDRAIN << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT2_HIGHDRIVE ((_GPIO_MODE_ALT2 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_HIGHDRIVE << _GPIO_OPTIONS_SHIFT))
#define PIN_ALT2 _PIN_MODE_ALT2
#define PIN_ALT2_INPUT (_PIN_MODE_ALT2 | _PIN_INPUT)
#define PIN_ALT2_PULLDOWN (_PIN_MODE_ALT2 | _PIN_INPUT_PULLDOWN)
#define PIN_ALT2_PULLUP (_PIN_MODE_ALT2 | _PIN_INPUT_PULLUP)
#define PIN_ALT2_OUTPUT (_PIN_MODE_ALT2 | _PIN_OUTPUT)
#define PIN_ALT2_FAST (_PIN_MODE_ALT2 | _PIN_OUTPUT_FAST)
#define PIN_ALT2_SLOW (_PIN_MODE_ALT2 | _PIN_OUTPUT_SLOW)
#define PIN_ALT2_OPENDRAIN (_PIN_MODE_ALT2 | _PIN_OUTPUT_LOWDRIVE)
#define PIN_ALT2_LOWDRIVE (_PIN_MODE_ALT2 | _PIN_OUTPUT_OPENDRAIN)
#define PIN_ALT2_HIGHDRIVE (_PIN_MODE_ALT2 | _PIN_OUTPUT_HIGHDRIVE)
#define GPIO_ALT3 (_GPIO_MODE_ALT3 << _GPIO_MODE_SHIFT)
#define GPIO_ALT3_INPUT ((_GPIO_MODE_ALT3 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT3_PULLDOWN ((_GPIO_MODE_ALT3 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT_PULLDOWN << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT3_PULLUP ((_GPIO_MODE_ALT3 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT_PULLUP << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT3_OUTPUT ((_GPIO_MODE_ALT3 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT3_FAST ((_GPIO_MODE_ALT3 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_FAST << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT3_SLOW ((_GPIO_MODE_ALT3 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_SLOW << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT3_OPENDRAIN ((_GPIO_MODE_ALT3 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_LOWDRIVE << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT3_LOWDRIVE ((_GPIO_MODE_ALT3 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_OPENDRAIN << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT3_HIGHDRIVE ((_GPIO_MODE_ALT3 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_HIGHDRIVE << _GPIO_OPTIONS_SHIFT))
#define PIN_ALT3 _PIN_MODE_ALT3
#define PIN_ALT3_INPUT (_PIN_MODE_ALT3 | _PIN_INPUT)
#define PIN_ALT3_PULLDOWN (_PIN_MODE_ALT3 | _PIN_INPUT_PULLDOWN)
#define PIN_ALT3_PULLUP (_PIN_MODE_ALT3 | _PIN_INPUT_PULLUP)
#define PIN_ALT3_OUTPUT (_PIN_MODE_ALT3 | _PIN_OUTPUT)
#define PIN_ALT3_FAST (_PIN_MODE_ALT3 | _PIN_OUTPUT_FAST)
#define PIN_ALT3_SLOW (_PIN_MODE_ALT3 | _PIN_OUTPUT_SLOW)
#define PIN_ALT3_OPENDRAIN (_PIN_MODE_ALT3 | _PIN_OUTPUT_LOWDRIVE)
#define PIN_ALT3_LOWDRIVE (_PIN_MODE_ALT3 | _PIN_OUTPUT_OPENDRAIN)
#define PIN_ALT3_HIGHDRIVE (_PIN_MODE_ALT3 | _PIN_OUTPUT_HIGHDRIVE)
#define GPIO_ALT4 (_GPIO_MODE_ALT4 << _GPIO_MODE_SHIFT)
#define GPIO_ALT4_INPUT ((_GPIO_MODE_ALT4 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT4_PULLDOWN ((_GPIO_MODE_ALT4 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT_PULLDOWN << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT4_PULLUP ((_GPIO_MODE_ALT4 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT_PULLUP << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT4_OUTPUT ((_GPIO_MODE_ALT4 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT4_FAST ((_GPIO_MODE_ALT4 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_FAST << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT4_SLOW ((_GPIO_MODE_ALT4 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_SLOW << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT4_OPENDRAIN ((_GPIO_MODE_ALT4 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_LOWDRIVE << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT4_LOWDRIVE ((_GPIO_MODE_ALT4 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_OPENDRAIN << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT4_HIGHDRIVE ((_GPIO_MODE_ALT4 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_HIGHDRIVE << _GPIO_OPTIONS_SHIFT))
#define PIN_ALT4 _PIN_MODE_ALT4
#define PIN_ALT4_INPUT (_PIN_MODE_ALT4 | _PIN_INPUT)
#define PIN_ALT4_PULLDOWN (_PIN_MODE_ALT4 | _PIN_INPUT_PULLDOWN)
#define PIN_ALT4_PULLUP (_PIN_MODE_ALT4 | _PIN_INPUT_PULLUP)
#define PIN_ALT4_OUTPUT (_PIN_MODE_ALT4 | _PIN_OUTPUT)
#define PIN_ALT4_FAST (_PIN_MODE_ALT4 | _PIN_OUTPUT_FAST)
#define PIN_ALT4_SLOW (_PIN_MODE_ALT4 | _PIN_OUTPUT_SLOW)
#define PIN_ALT4_OPENDRAIN (_PIN_MODE_ALT4 | _PIN_OUTPUT_LOWDRIVE)
#define PIN_ALT4_LOWDRIVE (_PIN_MODE_ALT4 | _PIN_OUTPUT_OPENDRAIN)
#define PIN_ALT4_HIGHDRIVE (_PIN_MODE_ALT4 | _PIN_OUTPUT_HIGHDRIVE)
#define GPIO_ALT5 (_GPIO_MODE_ALT5 << _GPIO_MODE_SHIFT)
#define GPIO_ALT5_INPUT ((_GPIO_MODE_ALT5 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT5_PULLDOWN ((_GPIO_MODE_ALT5 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT_PULLDOWN << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT5_PULLUP ((_GPIO_MODE_ALT5 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT_PULLUP << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT5_OUTPUT ((_GPIO_MODE_ALT5 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT5_FAST ((_GPIO_MODE_ALT5 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_FAST << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT5_SLOW ((_GPIO_MODE_ALT5 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_SLOW << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT5_OPENDRAIN ((_GPIO_MODE_ALT5 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_LOWDRIVE << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT5_LOWDRIVE ((_GPIO_MODE_ALT5 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_OPENDRAIN << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT5_HIGHDRIVE ((_GPIO_MODE_ALT5 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_HIGHDRIVE << _GPIO_OPTIONS_SHIFT))
#define PIN_ALT5 _PIN_MODE_ALT5
#define PIN_ALT5_INPUT (_PIN_MODE_ALT5 | _PIN_INPUT)
#define PIN_ALT5_PULLDOWN (_PIN_MODE_ALT5 | _PIN_INPUT_PULLDOWN)
#define PIN_ALT5_PULLUP (_PIN_MODE_ALT5 | _PIN_INPUT_PULLUP)
#define PIN_ALT5_OUTPUT (_PIN_MODE_ALT5 | _PIN_OUTPUT)
#define PIN_ALT5_FAST (_PIN_MODE_ALT5 | _PIN_OUTPUT_FAST)
#define PIN_ALT5_SLOW (_PIN_MODE_ALT5 | _PIN_OUTPUT_SLOW)
#define PIN_ALT5_OPENDRAIN (_PIN_MODE_ALT5 | _PIN_OUTPUT_LOWDRIVE)
#define PIN_ALT5_LOWDRIVE (_PIN_MODE_ALT5 | _PIN_OUTPUT_OPENDRAIN)
#define PIN_ALT5_HIGHDRIVE (_PIN_MODE_ALT5 | _PIN_OUTPUT_HIGHDRIVE)
#define GPIO_ALT6 (_GPIO_MODE_ALT6 << _GPIO_MODE_SHIFT)
#define GPIO_ALT6_INPUT ((_GPIO_MODE_ALT6 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT6_PULLDOWN ((_GPIO_MODE_ALT6 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT_PULLDOWN << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT6_PULLUP ((_GPIO_MODE_ALT6 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT_PULLUP << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT6_OUTPUT ((_GPIO_MODE_ALT6 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT6_FAST ((_GPIO_MODE_ALT6 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_FAST << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT6_SLOW ((_GPIO_MODE_ALT6 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_SLOW << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT6_OPENDRAIN ((_GPIO_MODE_ALT6 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_LOWDRIVE << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT6_LOWDRIVE ((_GPIO_MODE_ALT6 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_OPENDRAIN << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT6_HIGHDRIVE ((_GPIO_MODE_ALT6 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_HIGHDRIVE << _GPIO_OPTIONS_SHIFT))
#define PIN_ALT6 _PIN_MODE_ALT6
#define PIN_ALT6_INPUT (_PIN_MODE_ALT6 | _PIN_INPUT)
#define PIN_ALT6_PULLDOWN (_PIN_MODE_ALT6 | _PIN_INPUT_PULLDOWN)
#define PIN_ALT6_PULLUP (_PIN_MODE_ALT6 | _PIN_INPUT_PULLUP)
#define PIN_ALT6_OUTPUT (_PIN_MODE_ALT6 | _PIN_OUTPUT)
#define PIN_ALT6_FAST (_PIN_MODE_ALT6 | _PIN_OUTPUT_FAST)
#define PIN_ALT6_SLOW (_PIN_MODE_ALT6 | _PIN_OUTPUT_SLOW)
#define PIN_ALT6_OPENDRAIN (_PIN_MODE_ALT6 | _PIN_OUTPUT_LOWDRIVE)
#define PIN_ALT6_LOWDRIVE (_PIN_MODE_ALT6 | _PIN_OUTPUT_OPENDRAIN)
#define PIN_ALT6_HIGHDRIVE (_PIN_MODE_ALT6 | _PIN_OUTPUT_HIGHDRIVE)
#define GPIO_ALT7 (_GPIO_MODE_ALT7 << _GPIO_MODE_SHIFT)
#define GPIO_ALT7_INPUT ((_GPIO_MODE_ALT7 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT7_PULLDOWN ((_GPIO_MODE_ALT7 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT_PULLDOWN << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT7_PULLUP ((_GPIO_MODE_ALT7 << _GPIO_MODE_SHIFT) | \
(_GPIO_INPUT_PULLUP << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT7_OUTPUT ((_GPIO_MODE_ALT7 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT7_FAST ((_GPIO_MODE_ALT7 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_FAST << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT7_SLOW ((_GPIO_MODE_ALT7 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_SLOW << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT7_OPENDRAIN ((_GPIO_MODE_ALT7 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_LOWDRIVE << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT7_LOWDRIVE ((_GPIO_MODE_ALT7 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_OPENDRAIN << _GPIO_OPTIONS_SHIFT))
#define GPIO_ALT7_HIGHDRIVE ((_GPIO_MODE_ALT7 << _GPIO_MODE_SHIFT) | \
(_GPIO_OUTPUT_HIGHDRIVE << _GPIO_OPTIONS_SHIFT))
#define PIN_ALT7 _PIN_MODE_ALT7
#define PIN_ALT7_INPUT (_PIN_MODE_ALT7 | _PIN_INPUT)
#define PIN_ALT7_PULLDOWN (_PIN_MODE_ALT7 | _PIN_INPUT_PULLDOWN)
#define PIN_ALT7_PULLUP (_PIN_MODE_ALT7 | _PIN_INPUT_PULLUP)
#define PIN_ALT7_OUTPUT (_PIN_MODE_ALT7 | _PIN_OUTPUT)
#define PIN_ALT7_FAST (_PIN_MODE_ALT7 | _PIN_OUTPUT_FAST)
#define PIN_ALT7_SLOW (_PIN_MODE_ALT7 | _PIN_OUTPUT_SLOW)
#define PIN_ALT7_OPENDRAIN (_PIN_MODE_ALT7 | _PIN_OUTPUT_LOWDRIVE)
#define PIN_ALT7_LOWDRIVE (_PIN_MODE_ALT7 | _PIN_OUTPUT_OPENDRAIN)
#define PIN_ALT7_HIGHDRIVE (_PIN_MODE_ALT7 | _PIN_OUTPUT_HIGHDRIVE)
/* The initial value for GPIO (Alternative 1 outputs):
*
@ -263,110 +202,95 @@
* muxing modes.
*/
#define GPIO_OUTPUT_ONE (1 << 24) /* Bit 24: 1:Initial output value=1 */
#define GPIO_OUTPUT_ZER0 (0) /* Bit 24: 0:Initial output value=0 */
#define GPIO_OUTPUT_ONE (1 << 24) /* Bit 24: 1:Initial output value=1 */
#define GPIO_OUTPUT_ZER0 (0) /* Bit 24: 0:Initial output value=0 */
/* One bit is used to enable the passive filter:
/* Five bits are used to incode DMA/interrupt options:
*
* ---- ---- ---- fd-- ---- ---- ---- ----
*
* Passive Filter and digital filter enable are valid in all digital pin
* muxing modes.
*/
#define GPIO_PASV_FILTER (1 << 19) /* Bit 19: Enable passive filter */
#define GPIO_DIG_FILTER (1 << 18) /* Bit 18: Enable digital filter */
/* Four bits are used to incode DMA/interupt options:
*
* ---- ---- iiii ---- ---- ---- ---- ----
* ---- ---- iiii i--- ---- ---- ---- ----
*
* The pin interrupt configuration is valid in all digital pin muxing modes
* (restricted to inputs).
*/
#define _GPIO_INT_SHIFT (20)
#define _GPIO_INT_MASK (15 << _GPIO_MODE_SHIFT)
#define _PIN_INT_SHIFT (20)
#define _PIN_INT_MASK (31 << _PIN_INT_SHIFT)
#define _GPIO_INTDMA_MASK (1) /* xxx1 DMA/interrupt mask */
#define _GPIO_DMA (0) /* xxx0 DMA (vs interrupt) */
#define _GPIO_DMA_EDGE_MASK (6) /* x11x Mask to test edge */
#define _GPIO_DMA_RISING (2) /* x010 DMA Request on rising edge */
#define _GPIO_DMA_FALLING (4) /* x100 DMA Request on falling edge */
#define _GPIO_DMA_BOTH (6) /* x110 DMA Request on either edge */
#define PIN_DMA_RISING (5 << _PIN_INT_SHIFT) /* 00101 DMA Request on rising edge */
#define PIN_DMA_FALLING (9 << _PIN_INT_SHIFT) /* 01001 DMA Request on falling edge */
#define PIN_DMA_BOTH (13 << _PIN_INT_SHIFT) /* 01101 DMA Request on either edge */
#define PIN_INT_ZERO (2 << _PIN_INT_SHIFT) /* 00010 Interrupt when logic zero */
#define PIN_INT_RISING (6 << _PIN_INT_SHIFT) /* 00110 Interrupt on rising edge */
#define PIN_INT_FALLING (10 << _PIN_INT_SHIFT) /* 01010 Interrupt on falling edge */
#define PIN_INT_BOTH (14 << _PIN_INT_SHIFT) /* 01110 Interrupt on either edge */
#define PIN_INT_ONE (18 << _PIN_INT_SHIFT) /* 10010 Interrupt when logic one */
#define _GPIO_INTERRUPT (1) /* xxx1 Interrupt (vs DMA) */
#define _GPIO_INT_ZERO (1) /* 0001 Interrupt when logic zero */
#define _GPIO_INT_RISING (3) /* 0011 Interrupt on rising edge */
#define _GPIO_INT_FALLING (5) /* 0101 Interrupt on falling edge */
#define _GPIO_INT_BOTH (7) /* 0111 Interrupt on either edge */
#define _GPIO_INT_ONE (9) /* 1001 Interrupt when logic one */
#define GPIO_DMA_RISING (_GPIO_DMA_RISING << _GPIO_MODE_SHIFT)
#define GPIO_DMA_FALLING (_GPIO_DMA_FALLING << _GPIO_MODE_SHIFT)
#define GPIO_DMA_BOTH (_GPIO_DMA_BOTH << _GPIO_MODE_SHIFT)
#define GPIO_INT_ZERO (_GPIO_INT_ZERO << _GPIO_MODE_SHIFT)
#define GPIO_INT_RISING (_GPIO_INT_RISING << _GPIO_MODE_SHIFT)
#define GPIO_INT_FALLING (_GPIO_INT_FALLING << _GPIO_MODE_SHIFT)
#define GPIO_INT_BOTH (_GPIO_INT_BOTH << _GPIO_MODE_SHIFT)
#define GPIO_INT_ONE (_GPIO_INT_ONE << _GPIO_MODE_SHIFT)
/* Three bits are used to define the port number:
/* Two bits is used to enable the filter options:
*
* oooo mmmf iiii ---- ---- -ppp ---b bbbb
* ---- ---- ---- -fd- ---- ---- ---- ----
*
* Passive Filter and digital filter enable are valid in all digital pin
* muxing modes.
*/
#define _GPIO_PORT_SHIFT (8) /* Bits 8-10: port number */
#define _GPIO_PORT_MASK (7 << _GPIO_PORT_SHIFT)
#define PIN_PASV_FILTER (1 << 18) /* Bit 18: Enable passive filter */
#define PIN_DIG_FILTER (1 << 17) /* Bit 17: Enable digital filter */
/* Three bits are used to define the port number:
*
* ---- ---- ---- ---- ---- -ppp ---- ----
*/
#define GPIO_PORTA (KINETIS_PORTA << _GPIO_PORT_SHIFT)
#define GPIO_PORTB (KINETIS_PORTB << _GPIO_PORT_SHIFT)
#define GPIO_PORTC (KINETIS_PORTC << _GPIO_PORT_SHIFT)
#define GPIO_PORTD (KINETIS_PORTD << _GPIO_PORT_SHIFT)
#define GPIO_PORTE (KINETIS_PORTE << _GPIO_PORT_SHIFT)
#define _PIN_PORT_SHIFT (8) /* Bits 8-10: port number */
#define _PIN_PORT_MASK (7 << _PIN_PORT_SHIFT)
#define PIN_PORTA (KINETIS_PORTA << _PIN_PORT_SHIFT)
#define PIN_PORTB (KINETIS_PORTB << _PIN_PORT_SHIFT)
#define PIN_PORTC (KINETIS_PORTC << _PIN_PORT_SHIFT)
#define PIN_PORTD (KINETIS_PORTD << _PIN_PORT_SHIFT)
#define PIN_PORTE (KINETIS_PORTE << _PIN_PORT_SHIFT)
/* Five bits are used to define the pin number:
*
* oooo mmmf iiii ---- ---- -ppp ---b bbbb
* ---- ---- ---- ---- ---- ---- ---b bbbb
*/
#define _GPIO_PIN_SHIFT (0) /* Bits 0-4: port number */
#define _GPIO_PIN_MASK (31 << _GPIO_PIN_SHIFT)
#define _PIN_SHIFT (0) /* Bits 0-4: port number */
#define _PIN_MASK (31 << _PIN_SHIFT)
#define GPIO_PIN(n) ((n) << _GPIO_PIN_SHIFT)
#define GPIO_PIN0 (0 << _GPIO_PIN_SHIFT)
#define GPIO_PIN1 (1 << _GPIO_PIN_SHIFT)
#define GPIO_PIN2 (2 << _GPIO_PIN_SHIFT)
#define GPIO_PIN3 (3 << _GPIO_PIN_SHIFT)
#define GPIO_PIN4 (4 << _GPIO_PIN_SHIFT)
#define GPIO_PIN5 (5 << _GPIO_PIN_SHIFT)
#define GPIO_PIN6 (6 << _GPIO_PIN_SHIFT)
#define GPIO_PIN7 (7 << _GPIO_PIN_SHIFT)
#define GPIO_PIN8 (8 << _GPIO_PIN_SHIFT)
#define GPIO_PIN9 (9 << _GPIO_PIN_SHIFT)
#define GPIO_PIN10 (10 << _GPIO_PIN_SHIFT)
#define GPIO_PIN11 (11 << _GPIO_PIN_SHIFT)
#define GPIO_PIN12 (12 << _GPIO_PIN_SHIFT)
#define GPIO_PIN13 (13 << _GPIO_PIN_SHIFT)
#define GPIO_PIN14 (14 << _GPIO_PIN_SHIFT)
#define GPIO_PIN15 (15 << _GPIO_PIN_SHIFT)
#define GPIO_PIN16 (16 << _GPIO_PIN_SHIFT)
#define GPIO_PIN17 (17 << _GPIO_PIN_SHIFT)
#define GPIO_PIN18 (18 << _GPIO_PIN_SHIFT)
#define GPIO_PIN19 (19 << _GPIO_PIN_SHIFT)
#define GPIO_PIN20 (20 << _GPIO_PIN_SHIFT)
#define GPIO_PIN21 (21 << _GPIO_PIN_SHIFT)
#define GPIO_PIN22 (22 << _GPIO_PIN_SHIFT)
#define GPIO_PIN23 (23 << _GPIO_PIN_SHIFT)
#define GPIO_PIN24 (24 << _GPIO_PIN_SHIFT)
#define GPIO_PIN25 (25 << _GPIO_PIN_SHIFT)
#define GPIO_PIN26 (26 << _GPIO_PIN_SHIFT)
#define GPIO_PIN27 (27 << _GPIO_PIN_SHIFT)
#define GPIO_PIN28 (28 << _GPIO_PIN_SHIFT)
#define GPIO_PIN29 (29 << _GPIO_PIN_SHIFT)
#define GPIO_PIN30 (30 << _GPIO_PIN_SHIFT)
#define GPIO_PIN31 (31 << _GPIO_PIN_SHIFT)
#define PIN(n) ((n) << _PIN_SHIFT)
#define PIN0 (0 << _PIN_SHIFT)
#define PIN1 (1 << _PIN_SHIFT)
#define PIN2 (2 << _PIN_SHIFT)
#define PIN3 (3 << _PIN_SHIFT)
#define PIN4 (4 << _PIN_SHIFT)
#define PIN5 (5 << _PIN_SHIFT)
#define PIN6 (6 << _PIN_SHIFT)
#define PIN7 (7 << _PIN_SHIFT)
#define PIN8 (8 << _PIN_SHIFT)
#define PIN9 (9 << _PIN_SHIFT)
#define PIN10 (10 << _PIN_SHIFT)
#define PIN11 (11 << _PIN_SHIFT)
#define PIN12 (12 << _PIN_SHIFT)
#define PIN13 (13 << _PIN_SHIFT)
#define PIN14 (14 << _PIN_SHIFT)
#define PIN15 (15 << _PIN_SHIFT)
#define PIN16 (16 << _PIN_SHIFT)
#define PIN17 (17 << _PIN_SHIFT)
#define PIN18 (18 << _PIN_SHIFT)
#define PIN19 (19 << _PIN_SHIFT)
#define PIN20 (20 << _PIN_SHIFT)
#define PIN21 (21 << _PIN_SHIFT)
#define PIN22 (22 << _PIN_SHIFT)
#define PIN23 (23 << _PIN_SHIFT)
#define PIN24 (24 << _PIN_SHIFT)
#define PIN25 (25 << _PIN_SHIFT)
#define PIN26 (26 << _PIN_SHIFT)
#define PIN27 (27 << _PIN_SHIFT)
#define PIN28 (28 << _PIN_SHIFT)
#define PIN29 (29 << _PIN_SHIFT)
#define PIN30 (30 << _PIN_SHIFT)
#define PIN31 (31 << _PIN_SHIFT)
/************************************************************************************
* Public Types
@ -485,31 +409,17 @@ EXTERN void kinetis_uartconfigure(uintptr_t uart_base, uint32_t baud,
EXTERN void kinetis_wddisable(void);
/************************************************************************************
* Name: kinetis_gpioirqinitialize
* Name: kinetis_pinconfig
*
* Description:
* Initialize logic to support a second level of interrupt decoding for GPIO pins.
* Configure a pin based on bit-encoded description of the pin.
*
************************************************************************************/
#ifdef CONFIG_GPIO_IRQ
EXTERN void kinetis_gpioirqinitialize(void);
#else
# define kinetis_gpioirqinitialize()
#endif
EXTERN int kinetis_pinconfig(uint32_t cfgset);
/************************************************************************************
* Name: kinetis_configgpio
*
* Description:
* Configure a GPIO pin based on bit-encoded description of the pin.
*
************************************************************************************/
EXTERN int kinetis_configgpio(uint32_t cfgset);
/************************************************************************************
* Name: kinetis_configfilter
* Name: kinetis_pinfilter
*
* Description:
* Configure the digital filter associated with a port. The digital filter
@ -523,7 +433,7 @@ EXTERN int kinetis_configgpio(uint32_t cfgset);
*
************************************************************************************/
EXTERN int kinetis_configfilter(unsigned int port, bool lpo, unsigned int width);
EXTERN int kinetis_pinfilter(unsigned int port, bool lpo, unsigned int width);
/************************************************************************************
* Name: kinetis_gpiowrite
@ -546,35 +456,93 @@ EXTERN void kinetis_gpiowrite(uint32_t pinset, bool value);
EXTERN bool kinetis_gpioread(uint32_t pinset);
/************************************************************************************
* Name: kinetis_gpioirqenable
* Name: kinetis_pinirqinitialize
*
* Description:
* Enable the interrupt for specified GPIO IRQ
* Initialize logic to support a second level of interrupt decoding for GPIO pins.
*
************************************************************************************/
#ifdef CONFIG_GPIO_IRQ
EXTERN void kinetis_gpioirqenable(int irq);
EXTERN void kinetis_pinirqinitialize(void);
#else
# define kinetis_gpioirqenable(irq)
# define kinetis_pinirqinitialize()
#endif
/************************************************************************************
* Name: kinetis_gpioirqdisable
* Name: kinetis_pinirqconfig
*
* Description:
* Disable the interrupt for specified GPIO IRQ
* Sets/clears PIN and interrupt triggers. On return PIN interrupts are always
* disabled.
*
* Parameters:
* - pinset: Pin configuration
* - pinisr: Pin interrupt service routine
*
* Returns:
* The previous value of the interrupt handler function pointer. This value may,
* for example, be used to restore the previous handler when multiple handlers are
* used.
*
************************************************************************************/
EXTERN xcpt_t kinetis_pinirqconfig(uint32_t pinset, xcpt_t pinisr);
/************************************************************************************
* Name: kinetis_pinirqenable
*
* Description:
* Enable the interrupt for specified pin IRQ
*
************************************************************************************/
#ifdef CONFIG_GPIO_IRQ
EXTERN void kinetis_gpioirqdisable(int irq);
EXTERN void kinetis_pinirqenable(uint32_t pinset);
#else
# define kinetis_gpioirqdisable(irq)
# define kinetis_pinirqenable(pinset)
#endif
/************************************************************************************
* Function: kinetis_dumpgpio
* Name: kinetis_pinirqdisable
*
* Description:
* Disable the interrupt for specified pin
*
************************************************************************************/
#ifdef CONFIG_GPIO_IRQ
EXTERN void kinetis_pinirqdisable(uint32_t pinset);
#else
# define kinetis_pinirqdisable(pinset)
#endif
/************************************************************************************
* Name: kinetis_pindmaenable
*
* Description:
* Enable DMA for specified pin
*
************************************************************************************/
#ifdef CONFIG_KINETIS_DMA
EXTERN void kinetis_pindmaenable(uint32_t pinset);
#endif
/************************************************************************************
* Name: kinetis_pindmadisable
*
* Description:
* Disable DMA for specified pin
*
************************************************************************************/
#ifdef CONFIG_KINETIS_DMA
EXTERN void kinetis_pindmadisable(uint32_t pinset);
#endif
/************************************************************************************
* Function: kinetis_pindump
*
* Description:
* Dump all GPIO registers associated with the base address of the provided pinset.
@ -582,9 +550,9 @@ EXTERN void kinetis_gpioirqdisable(int irq);
************************************************************************************/
#ifdef CONFIG_DEBUG_GPIO
EXTERN int kinetis_dumpgpio(uint32_t pinset, const char *msg);
EXTERN int kinetis_pindump(uint32_t pinset, const char *msg);
#else
# define kinetis_dumpgpio(p,m)
# define kinetis_pindump(p,m)
#endif
/************************************************************************************

20
arch/arm/src/kinetis/kinetis_irq.c Executable file → Normal file
View File

@ -392,11 +392,11 @@ void up_irqinitialize(void)
#endif
/* Initialize logic to support a second level of interrupt decoding for
* GPIO pins.
* configured pin interrupts.
*/
#ifdef CONFIG_GPIO_IRQ
kinetis_gpioirqinitialize();
kinetis_pinirqinitialize();
#endif
/* And finally, enable interrupts */
@ -429,14 +429,6 @@ void up_disable_irq(int irq)
regval &= ~bit;
putreg32(regval, regaddr);
}
#ifdef CONFIG_GPIO_IRQ
else
{
/* Maybe it is a (derived) GPIO IRQ */
kinetis_gpioirqdisable(irq);
}
#endif
kinetis_dumpnvic("disable", irq);
}
@ -462,14 +454,6 @@ void up_enable_irq(int irq)
regval |= bit;
putreg32(regval, regaddr);
}
#ifdef CONFIG_GPIO_IRQ
else
{
/* Maybe it is a (derived) GPIO IRQ */
kinetis_gpioirqenable(irq);
}
#endif
kinetis_dumpnvic("enable", irq);
}

View File

@ -59,443 +59,443 @@
defined(CONFIG_ARCH_CHIP_MK40X256VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X256VMD100) || \
defined(CONFIG_ARCH_CHIP_MK40N512VLQ100) || defined(CONFIG_ARCH_CHIP_MK40N512VMD100)
#define GPIO_TSI0_CH1 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN0)
#define GPIO_UART0_CTS_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN0)
#define GPIO_FTM0_CH5_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN0)
#define GPIO_JTAG_TCLK (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN0)
#define GPIO_GPIO_SWD_CLK (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN0)
#define GPIO_TSI0_CH2 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN1)
#define GPIO_UART0_RX_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN1)
#define GPIO_FTM0_CH6_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN1)
#define GPIO_JTAG_TDI (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN1)
#define GPIO_TSI0_CH3 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN2)
#define GPIO_UART0_TX_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN2)
#define GPIO_FTM0_CH7_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN2)
#define GPIO_JTAG_TDO (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN2)
#define GPIO_TRACE_SWO (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN2)
#define GPIO_TSI0_CH4 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN3)
#define GPIO_UART0_RTS_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN3)
#define GPIO_FTM0_CH0_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN3)
#define GPIO_JTAG_TMS (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN3)
#define GPIO_SWD_DIO (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN3)
#define GPIO_TSI0_CH5 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN4)
#define GPIO_FTM0_CH1_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN4)
#define GPIO_NMI (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN4)
#define GPIO_FTM0_CH2_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN5)
#define GPIO_CMP2_OUT_1 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN5)
#define GPIO_I2S0_RX_BCLK_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN5)
#define GPIO_JTAG_TRST (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN5)
#define GPIO_FTM0_CH3_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN6)
#define GPIO_FB_CLKOUT (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN6)
#define GPIO_TRACE_CLKOUT (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN6)
#define GPIO_ADC0_SE10 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN7)
#define GPIO_FTM0_CH4_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN7)
#define GPIO_FB_AD18 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN7)
#define GPIO_TRACE_D3 (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN7)
#define GPIO_ADC0_SE11 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN8)
#define GPIO_FTM1_CH0_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN8)
#define GPIO_FB_AD17 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN8)
#define GPIO_FTM1_QD_PHA_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN8)
#define GPIO_TRACE_D2 (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN8)
#define GPIO_FTM1_CH1_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN9)
#define GPIO_FB_AD16 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN9)
#define GPIO_FTM1_QD_PHB_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN9)
#define GPIO_TRACE_D1 (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN9)
#define GPIO_FTM2_CH0_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN10)
#define GPIO_FB_AD15 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN10)
#define GPIO_FTM2_QD_PHA_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN10)
#define GPIO_TRACE_D0 (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN10)
#define GPIO_FTM2_CH1_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN11)
#define GPIO_FB_OE (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN11)
#define GPIO_FTM2_QD_PHB_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN11)
#define GPIO_CMP2_IN0 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN12)
#define GPIO_CAN0_TX_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN12)
#define GPIO_FTM1_CH0_2 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN12)
#define GPIO_FB_CS5 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN12)
#define GPIO_FB_TSIZ1 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN12)
#define GPIO_FB_BE23_16_BLS15_8 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN12)
#define GPIO_I2S0_TXD_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN12)
#define GPIO_FTM1_QD_PHA_2 (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN12)
#define GPIO_CMP2_IN1 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN13)
#define GPIO_CAN0_RX_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN13)
#define GPIO_FTM1_CH1_2 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN13)
#define GPIO_FB_CS4 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN13)
#define GPIO_FB_TSIZ0 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN13)
#define GPIO_FB_BE31_24_BLS7_0 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN13)
#define GPIO_I2S0_TX_FS_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN13)
#define GPIO_FTM1_QD_PHB_2 (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN13)
#define GPIO_SPI0_PCS0_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN14)
#define GPIO_UART0_TX_2 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN14)
#define GPIO_FB_AD31 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN14)
#define GPIO_I2S0_TX_BCLK_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN14)
#define GPIO_SPI0_SCK_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN15)
#define GPIO_UART0_RX_2 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN15)
#define GPIO_FB_AD30 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN15)
#define GPIO_I2S0_RXD_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN15)
#define GPIO_SPI0_SOUT_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN16)
#define GPIO_UART0_CTS_2 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN16)
#define GPIO_FB_AD29 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN16)
#define GPIO_I2S0_RX_FS_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN16)
#define GPIO_ADC1_SE17 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN17)
#define GPIO_SPI0_SIN_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN17)
#define GPIO_UART0_RTS_2 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN17)
#define GPIO_FB_AD28 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN17)
#define GPIO_I2S0_MCLK_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN17)
#define GPIO_I2S0_CLKIN_1 (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN17)
#define GPIO_EXTAL (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN18)
#define GPIO_FTM0_FLT2_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN18)
#define GPIO_FTM_CLKIN0 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN18)
#define GPIO_XTAL (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN19)
#define GPIO_FTM1_FLT0_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN19)
#define GPIO_FTM_CLKIN1 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN19)
#define GPIO_LPT0_ALT1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN19)
#define GPIO_FB_AD14 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN24)
#define GPIO_FB_AD13 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN25)
#define GPIO_FB_AD12 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN26)
#define GPIO_FB_AD11 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN27)
#define GPIO_FB_AD10 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN28)
#define GPIO_FB_AD19 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN29)
#define PIN_TSI0_CH1 (PIN_ANALOG | PIN_PORTA | PIN0)
#define PIN_UART0_CTS_1 (PIN_ALT2 | PIN_PORTA | PIN0)
#define PIN_FTM0_CH5_1 (PIN_ALT3 | PIN_PORTA | PIN0)
#define PIN_JTAG_TCLK (PIN_ALT7 | PIN_PORTA | PIN0)
#define PIN_SWD_CLK (PIN_ALT7 | PIN_PORTA | PIN0)
#define PIN_TSI0_CH2 (PIN_ANALOG | PIN_PORTA | PIN1)
#define PIN_UART0_RX_1 (PIN_ALT2 | PIN_PORTA | PIN1)
#define PIN_FTM0_CH6_1 (PIN_ALT3 | PIN_PORTA | PIN1)
#define PIN_JTAG_TDI (PIN_ALT7 | PIN_PORTA | PIN1)
#define PIN_TSI0_CH3 (PIN_ANALOG | PIN_PORTA | PIN2)
#define PIN_UART0_TX_1 (PIN_ALT2 | PIN_PORTA | PIN2)
#define PIN_FTM0_CH7_1 (PIN_ALT3 | PIN_PORTA | PIN2)
#define PIN_JTAG_TDO (PIN_ALT7 | PIN_PORTA | PIN2)
#define PIN_TRACE_SWO (PIN_ALT7 | PIN_PORTA | PIN2)
#define PIN_TSI0_CH4 (PIN_ANALOG | PIN_PORTA | PIN3)
#define PIN_UART0_RTS_1 (PIN_ALT2 | PIN_PORTA | PIN3)
#define PIN_FTM0_CH0_1 (PIN_ALT3 | PIN_PORTA | PIN3)
#define PIN_JTAG_TMS (PIN_ALT7 | PIN_PORTA | PIN3)
#define PIN_SWD_DIO (PIN_ALT7 | PIN_PORTA | PIN3)
#define PIN_TSI0_CH5 (PIN_ANALOG | PIN_PORTA | PIN4)
#define PIN_FTM0_CH1_1 (PIN_ALT3 | PIN_PORTA | PIN4)
#define PIN_NMI (PIN_ALT7 | PIN_PORTA | PIN4)
#define PIN_FTM0_CH2_1 (PIN_ALT3 | PIN_PORTA | PIN5)
#define PIN_CMP2_OUT_1 (PIN_ALT5 | PIN_PORTA | PIN5)
#define PIN_I2S0_RX_BCLK_1 (PIN_ALT6 | PIN_PORTA | PIN5)
#define PIN_JTAG_TRST (PIN_ALT7 | PIN_PORTA | PIN5)
#define PIN_FTM0_CH3_1 (PIN_ALT3 | PIN_PORTA | PIN6)
#define PIN_FB_CLKOUT (PIN_ALT5 | PIN_PORTA | PIN6)
#define PIN_TRACE_CLKOUT (PIN_ALT7 | PIN_PORTA | PIN6)
#define PIN_ADC0_SE10 (PIN_ANALOG | PIN_PORTA | PIN7)
#define PIN_FTM0_CH4_1 (PIN_ALT3 | PIN_PORTA | PIN7)
#define PIN_FB_AD18 (PIN_ALT5 | PIN_PORTA | PIN7)
#define PIN_TRACE_D3 (PIN_ALT7 | PIN_PORTA | PIN7)
#define PIN_ADC0_SE11 (PIN_ANALOG | PIN_PORTA | PIN8)
#define PIN_FTM1_CH0_1 (PIN_ALT3 | PIN_PORTA | PIN8)
#define PIN_FB_AD17 (PIN_ALT5 | PIN_PORTA | PIN8)
#define PIN_FTM1_QD_PHA_1 (PIN_ALT6 | PIN_PORTA | PIN8)
#define PIN_TRACE_D2 (PIN_ALT7 | PIN_PORTA | PIN8)
#define PIN_FTM1_CH1_1 (PIN_ALT3 | PIN_PORTA | PIN9)
#define PIN_FB_AD16 (PIN_ALT5 | PIN_PORTA | PIN9)
#define PIN_FTM1_QD_PHB_1 (PIN_ALT6 | PIN_PORTA | PIN9)
#define PIN_TRACE_D1 (PIN_ALT7 | PIN_PORTA | PIN9)
#define PIN_FTM2_CH0_1 (PIN_ALT3 | PIN_PORTA | PIN10)
#define PIN_FB_AD15 (PIN_ALT5 | PIN_PORTA | PIN10)
#define PIN_FTM2_QD_PHA_1 (PIN_ALT6 | PIN_PORTA | PIN10)
#define PIN_TRACE_D0 (PIN_ALT7 | PIN_PORTA | PIN10)
#define PIN_FTM2_CH1_1 (PIN_ALT3 | PIN_PORTA | PIN11)
#define PIN_FB_OE (PIN_ALT5 | PIN_PORTA | PIN11)
#define PIN_FTM2_QD_PHB_1 (PIN_ALT6 | PIN_PORTA | PIN11)
#define PIN_CMP2_IN0 (PIN_ANALOG | PIN_PORTA | PIN12)
#define PIN_CAN0_TX_1 (PIN_ALT2 | PIN_PORTA | PIN12)
#define PIN_FTM1_CH0_2 (PIN_ALT3 | PIN_PORTA | PIN12)
#define PIN_FB_CS5 (PIN_ALT5 | PIN_PORTA | PIN12)
#define PIN_FB_TSIZ1 (PIN_ALT5 | PIN_PORTA | PIN12)
#define PIN_FB_BE23_16_BLS15_8 (PIN_ALT5 | PIN_PORTA | PIN12)
#define PIN_I2S0_TXD_1 (PIN_ALT6 | PIN_PORTA | PIN12)
#define PIN_FTM1_QD_PHA_2 (PIN_ALT7 | PIN_PORTA | PIN12)
#define PIN_CMP2_IN1 (PIN_ANALOG | PIN_PORTA | PIN13)
#define PIN_CAN0_RX_1 (PIN_ALT2 | PIN_PORTA | PIN13)
#define PIN_FTM1_CH1_2 (PIN_ALT3 | PIN_PORTA | PIN13)
#define PIN_FB_CS4 (PIN_ALT5 | PIN_PORTA | PIN13)
#define PIN_FB_TSIZ0 (PIN_ALT5 | PIN_PORTA | PIN13)
#define PIN_FB_BE31_24_BLS7_0 (PIN_ALT5 | PIN_PORTA | PIN13)
#define PIN_I2S0_TX_FS_1 (PIN_ALT6 | PIN_PORTA | PIN13)
#define PIN_FTM1_QD_PHB_2 (PIN_ALT7 | PIN_PORTA | PIN13)
#define PIN_SPI0_PCS0_1 (PIN_ALT2 | PIN_PORTA | PIN14)
#define PIN_UART0_TX_2 (PIN_ALT3 | PIN_PORTA | PIN14)
#define PIN_FB_AD31 (PIN_ALT5 | PIN_PORTA | PIN14)
#define PIN_I2S0_TX_BCLK_1 (PIN_ALT6 | PIN_PORTA | PIN14)
#define PIN_SPI0_SCK_1 (PIN_ALT2 | PIN_PORTA | PIN15)
#define PIN_UART0_RX_2 (PIN_ALT3 | PIN_PORTA | PIN15)
#define PIN_FB_AD30 (PIN_ALT5 | PIN_PORTA | PIN15)
#define PIN_I2S0_RXD_1 (PIN_ALT6 | PIN_PORTA | PIN15)
#define PIN_SPI0_SOUT_1 (PIN_ALT2 | PIN_PORTA | PIN16)
#define PIN_UART0_CTS_2 (PIN_ALT3 | PIN_PORTA | PIN16)
#define PIN_FB_AD29 (PIN_ALT5 | PIN_PORTA | PIN16)
#define PIN_I2S0_RX_FS_1 (PIN_ALT6 | PIN_PORTA | PIN16)
#define PIN_ADC1_SE17 (PIN_ANALOG | PIN_PORTA | PIN17)
#define PIN_SPI0_SIN_1 (PIN_ALT2 | PIN_PORTA | PIN17)
#define PIN_UART0_RTS_2 (PIN_ALT3 | PIN_PORTA | PIN17)
#define PIN_FB_AD28 (PIN_ALT5 | PIN_PORTA | PIN17)
#define PIN_I2S0_MCLK_1 (PIN_ALT6 | PIN_PORTA | PIN17)
#define PIN_I2S0_CLKIN_1 (PIN_ALT7 | PIN_PORTA | PIN17)
#define PIN_EXTAL (PIN_ANALOG | PIN_PORTA | PIN18)
#define PIN_FTM0_FLT2_1 (PIN_ALT3 | PIN_PORTA | PIN18)
#define PIN_FTM_CLKIN0 (PIN_ALT4 | PIN_PORTA | PIN18)
#define PIN_XTAL (PIN_ANALOG | PIN_PORTA | PIN19)
#define PIN_FTM1_FLT0_1 (PIN_ALT3 | PIN_PORTA | PIN19)
#define PIN_FTM_CLKIN1 (PIN_ALT4 | PIN_PORTA | PIN19)
#define PIN_LPT0_ALT1 (PIN_ALT6 | PIN_PORTA | PIN19)
#define PIN_FB_AD14 (PIN_ALT5 | PIN_PORTA | PIN24)
#define PIN_FB_AD13 (PIN_ALT5 | PIN_PORTA | PIN25)
#define PIN_FB_AD12 (PIN_ALT5 | PIN_PORTA | PIN26)
#define PIN_FB_AD11 (PIN_ALT5 | PIN_PORTA | PIN27)
#define PIN_FB_AD10 (PIN_ALT5 | PIN_PORTA | PIN28)
#define PIN_FB_AD19 (PIN_ALT5 | PIN_PORTA | PIN29)
#define GPIO_LCD_P0 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN0)
#define GPIO_ADC0_SE8 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN0)
#define GPIO_ADC1_SE8 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN0)
#define GPIO_TSI0_CH0 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN0)
#define GPIO_I2C0_SCL_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN0)
#define GPIO_FTM1_CH0_3 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN0)
#define GPIO_FTM1_QD_PHA_3 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN0)
#define GPIO_LCD_P0F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN0)
#define GPIO_LCD_P1 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN1)
#define GPIO_ADC0_SE9 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN1)
#define GPIO_ADC1_SE9 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN1)
#define GPIO_TSI0_CH6 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN1)
#define GPIO_I2C0_SDA_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN1)
#define GPIO_FTM1_CH1_3 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN1)
#define GPIO_FTM1_QD_PHB (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN1)
#define GPIO_LCD_P1F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN1)
#define GPIO_LCD_P2 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN2)
#define GPIO_ADC0_SE12 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN2)
#define GPIO_TSI0_CH7 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN2)
#define GPIO_I2C0_SCL_2 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN2)
#define GPIO_UART0_RTS_3 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN2)
#define GPIO_FTM0_FLT3 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN2)
#define GPIO_LCD_P2F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN2)
#define GPIO_LCD_P3 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN3)
#define GPIO_ADC0_SE13 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN3)
#define GPIO_TSI0_CH8 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN3)
#define GPIO_I2C0_SDA_2 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN3)
#define GPIO_UART0_CTS_3 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN3)
#define GPIO_FTM0_FLT0_1 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN3)
#define GPIO_LCD_P3F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN3)
#define GPIO_LCD_P4 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN4)
#define GPIO_ADC1_SE10 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN4)
#define GPIO_FTM1_FLT0_2 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN4)
#define GPIO_LCD_P4F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN4)
#define GPIO_LCD_P5 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN5)
#define GPIO_ADC1_SE11 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN5)
#define GPIO_FTM2_FLT0_1 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN5)
#define GPIO_LCD_P5F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN5)
#define GPIO_LCD_P6 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN6)
#define GPIO_ADC1_SE12 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN6)
#define GPIO_LCD_P6F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN6)
#define GPIO_LCD_P7 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN7)
#define GPIO_ADC1_SE13 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN7)
#define GPIO_LCD_P7F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN7)
#define GPIO_LCD_P8 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN8)
#define GPIO_UART3_RTS_1 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN8)
#define GPIO_LCD_P8F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN8)
#define GPIO_LCD_P9 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN9)
#define GPIO_SPI1_PCS1_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN9)
#define GPIO_UART3_CTS_1 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN9)
#define GPIO_LCD_P9F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN9)
#define GPIO_LCD_P10 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN10)
#define GPIO_ADC1_SE14 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN10)
#define GPIO_SPI1_PCS0_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN10)
#define GPIO_UART3_RX_1 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN10)
#define GPIO_FTM0_FLT1_1 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN10)
#define GPIO_LCD_P10F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN10)
#define GPIO_LCD_P11 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN11)
#define GPIO_ADC1_SE15 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN11)
#define GPIO_SPI1_SCK_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN11)
#define GPIO_UART3_TX_1 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN11)
#define GPIO_FTM0_FLT2_2 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN11)
#define GPIO_LCD_P11F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN11)
#define GPIO_LCD_P12 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN16)
#define GPIO_TSI0_CH9 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN16)
#define GPIO_SPI1_SOUT_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN16)
#define GPIO_UART0_RX_3 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN16)
#define GPIO_EWM_IN_1 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN16)
#define GPIO_LCD_P12F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN16)
#define GPIO_LCD_P13 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN17)
#define GPIO_TSI0_CH10 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN17)
#define GPIO_SPI1_SIN_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN17)
#define GPIO_UART0_TX_3 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN17)
#define GPIO_EWM_OUT_1 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN17)
#define GPIO_LCD_P13F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN17)
#define GPIO_LCD_P14 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN18)
#define GPIO_TSI0_CH11 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN18)
#define GPIO_CAN0_TX_2 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN18)
#define GPIO_FTM2_CH0_2 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN18)
#define GPIO_I2S0_TX_BCLK_2 (GPIO_ALT4 | GPIO_PORTB | GPIO_PIN18)
#define GPIO_FTM2_QD_PHA_2 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN18)
#define GPIO_LCD_P14F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN18)
#define GPIO_LCD_P15 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN19)
#define GPIO_TSI0_CH12 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN19)
#define GPIO_CAN0_RX_2 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN19)
#define GPIO_FTM2_CH1_2 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN19)
#define GPIO_I2S0_TX_FS_2 (GPIO_ALT4 | GPIO_PORTB | GPIO_PIN19)
#define GPIO_FTM2_QD_PHB_2 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN19)
#define GPIO_LCD_P15F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN19)
#define GPIO_LCD_P16 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN20)
#define GPIO_SPI2_PCS0_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN20)
#define GPIO_CMP0_OUT_1 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN20)
#define GPIO_LCD_P16F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN20)
#define GPIO_LCD_P17 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN21)
#define GPIO_SPI2_SCK_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN21)
#define GPIO_CMP1_OUT_1 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN21)
#define GPIO_LCD_P17F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN21)
#define GPIO_LCD_P18 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN22)
#define GPIO_SPI2_SOUT_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN22)
#define GPIO_CMP2_OUT_2 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN22)
#define GPIO_LCD_P18F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN22)
#define GPIO_LCD_P19 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN23)
#define GPIO_SPI2_SIN_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN23)
#define GPIO_SPI0_PCS5 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN23)
#define GPIO_LCD_P19F (GPIO_ALT7 | GPIO_PORTB | GPIO_PIN23)
#define PIN_LCD_P0 (PIN_ANALOG | PIN_PORTB | PIN0)
#define PIN_ADC0_SE8 (PIN_ANALOG | PIN_PORTB | PIN0)
#define PIN_ADC1_SE8 (PIN_ANALOG | PIN_PORTB | PIN0)
#define PIN_TSI0_CH0 (PIN_ANALOG | PIN_PORTB | PIN0)
#define PIN_I2C0_SCL_1 (PIN_ALT2 | PIN_PORTB | PIN0)
#define PIN_FTM1_CH0_3 (PIN_ALT3 | PIN_PORTB | PIN0)
#define PIN_FTM1_QD_PHA_3 (PIN_ALT6 | PIN_PORTB | PIN0)
#define PIN_LCD_P0F (PIN_ALT7 | PIN_PORTB | PIN0)
#define PIN_LCD_P1 (PIN_ANALOG | PIN_PORTB | PIN1)
#define PIN_ADC0_SE9 (PIN_ANALOG | PIN_PORTB | PIN1)
#define PIN_ADC1_SE9 (PIN_ANALOG | PIN_PORTB | PIN1)
#define PIN_TSI0_CH6 (PIN_ANALOG | PIN_PORTB | PIN1)
#define PIN_I2C0_SDA_1 (PIN_ALT2 | PIN_PORTB | PIN1)
#define PIN_FTM1_CH1_3 (PIN_ALT3 | PIN_PORTB | PIN1)
#define PIN_FTM1_QD_PHB (PIN_ALT6 | PIN_PORTB | PIN1)
#define PIN_LCD_P1F (PIN_ALT7 | PIN_PORTB | PIN1)
#define PIN_LCD_P2 (PIN_ANALOG | PIN_PORTB | PIN2)
#define PIN_ADC0_SE12 (PIN_ANALOG | PIN_PORTB | PIN2)
#define PIN_TSI0_CH7 (PIN_ANALOG | PIN_PORTB | PIN2)
#define PIN_I2C0_SCL_2 (PIN_ALT2 | PIN_PORTB | PIN2)
#define PIN_UART0_RTS_3 (PIN_ALT3 | PIN_PORTB | PIN2)
#define PIN_FTM0_FLT3 (PIN_ALT6 | PIN_PORTB | PIN2)
#define PIN_LCD_P2F (PIN_ALT7 | PIN_PORTB | PIN2)
#define PIN_LCD_P3 (PIN_ANALOG | PIN_PORTB | PIN3)
#define PIN_ADC0_SE13 (PIN_ANALOG | PIN_PORTB | PIN3)
#define PIN_TSI0_CH8 (PIN_ANALOG | PIN_PORTB | PIN3)
#define PIN_I2C0_SDA_2 (PIN_ALT2 | PIN_PORTB | PIN3)
#define PIN_UART0_CTS_3 (PIN_ALT3 | PIN_PORTB | PIN3)
#define PIN_FTM0_FLT0_1 (PIN_ALT6 | PIN_PORTB | PIN3)
#define PIN_LCD_P3F (PIN_ALT7 | PIN_PORTB | PIN3)
#define PIN_LCD_P4 (PIN_ANALOG | PIN_PORTB | PIN4)
#define PIN_ADC1_SE10 (PIN_ANALOG | PIN_PORTB | PIN4)
#define PIN_FTM1_FLT0_2 (PIN_ALT6 | PIN_PORTB | PIN4)
#define PIN_LCD_P4F (PIN_ALT7 | PIN_PORTB | PIN4)
#define PIN_LCD_P5 (PIN_ANALOG | PIN_PORTB | PIN5)
#define PIN_ADC1_SE11 (PIN_ANALOG | PIN_PORTB | PIN5)
#define PIN_FTM2_FLT0_1 (PIN_ALT6 | PIN_PORTB | PIN5)
#define PIN_LCD_P5F (PIN_ALT7 | PIN_PORTB | PIN5)
#define PIN_LCD_P6 (PIN_ANALOG | PIN_PORTB | PIN6)
#define PIN_ADC1_SE12 (PIN_ANALOG | PIN_PORTB | PIN6)
#define PIN_LCD_P6F (PIN_ALT7 | PIN_PORTB | PIN6)
#define PIN_LCD_P7 (PIN_ANALOG | PIN_PORTB | PIN7)
#define PIN_ADC1_SE13 (PIN_ANALOG | PIN_PORTB | PIN7)
#define PIN_LCD_P7F (PIN_ALT7 | PIN_PORTB | PIN7)
#define PIN_LCD_P8 (PIN_ANALOG | PIN_PORTB | PIN8)
#define PIN_UART3_RTS_1 (PIN_ALT3 | PIN_PORTB | PIN8)
#define PIN_LCD_P8F (PIN_ALT7 | PIN_PORTB | PIN8)
#define PIN_LCD_P9 (PIN_ANALOG | PIN_PORTB | PIN9)
#define PIN_SPI1_PCS1_1 (PIN_ALT2 | PIN_PORTB | PIN9)
#define PIN_UART3_CTS_1 (PIN_ALT3 | PIN_PORTB | PIN9)
#define PIN_LCD_P9F (PIN_ALT7 | PIN_PORTB | PIN9)
#define PIN_LCD_P10 (PIN_ANALOG | PIN_PORTB | PIN10)
#define PIN_ADC1_SE14 (PIN_ANALOG | PIN_PORTB | PIN10)
#define PIN_SPI1_PCS0_1 (PIN_ALT2 | PIN_PORTB | PIN10)
#define PIN_UART3_RX_1 (PIN_ALT3 | PIN_PORTB | PIN10)
#define PIN_FTM0_FLT1_1 (PIN_ALT6 | PIN_PORTB | PIN10)
#define PIN_LCD_P10F (PIN_ALT7 | PIN_PORTB | PIN10)
#define PIN_LCD_P11 (PIN_ANALOG | PIN_PORTB | PIN11)
#define PIN_ADC1_SE15 (PIN_ANALOG | PIN_PORTB | PIN11)
#define PIN_SPI1_SCK_1 (PIN_ALT2 | PIN_PORTB | PIN11)
#define PIN_UART3_TX_1 (PIN_ALT3 | PIN_PORTB | PIN11)
#define PIN_FTM0_FLT2_2 (PIN_ALT6 | PIN_PORTB | PIN11)
#define PIN_LCD_P11F (PIN_ALT7 | PIN_PORTB | PIN11)
#define PIN_LCD_P12 (PIN_ANALOG | PIN_PORTB | PIN16)
#define PIN_TSI0_CH9 (PIN_ANALOG | PIN_PORTB | PIN16)
#define PIN_SPI1_SOUT_1 (PIN_ALT2 | PIN_PORTB | PIN16)
#define PIN_UART0_RX_3 (PIN_ALT3 | PIN_PORTB | PIN16)
#define PIN_EWM_IN_1 (PIN_ALT6 | PIN_PORTB | PIN16)
#define PIN_LCD_P12F (PIN_ALT7 | PIN_PORTB | PIN16)
#define PIN_LCD_P13 (PIN_ANALOG | PIN_PORTB | PIN17)
#define PIN_TSI0_CH10 (PIN_ANALOG | PIN_PORTB | PIN17)
#define PIN_SPI1_SIN_1 (PIN_ALT2 | PIN_PORTB | PIN17)
#define PIN_UART0_TX_3 (PIN_ALT3 | PIN_PORTB | PIN17)
#define PIN_EWM_OUT_1 (PIN_ALT6 | PIN_PORTB | PIN17)
#define PIN_LCD_P13F (PIN_ALT7 | PIN_PORTB | PIN17)
#define PIN_LCD_P14 (PIN_ANALOG | PIN_PORTB | PIN18)
#define PIN_TSI0_CH11 (PIN_ANALOG | PIN_PORTB | PIN18)
#define PIN_CAN0_TX_2 (PIN_ALT2 | PIN_PORTB | PIN18)
#define PIN_FTM2_CH0_2 (PIN_ALT3 | PIN_PORTB | PIN18)
#define PIN_I2S0_TX_BCLK_2 (PIN_ALT4 | PIN_PORTB | PIN18)
#define PIN_FTM2_QD_PHA_2 (PIN_ALT6 | PIN_PORTB | PIN18)
#define PIN_LCD_P14F (PIN_ALT7 | PIN_PORTB | PIN18)
#define PIN_LCD_P15 (PIN_ANALOG | PIN_PORTB | PIN19)
#define PIN_TSI0_CH12 (PIN_ANALOG | PIN_PORTB | PIN19)
#define PIN_CAN0_RX_2 (PIN_ALT2 | PIN_PORTB | PIN19)
#define PIN_FTM2_CH1_2 (PIN_ALT3 | PIN_PORTB | PIN19)
#define PIN_I2S0_TX_FS_2 (PIN_ALT4 | PIN_PORTB | PIN19)
#define PIN_FTM2_QD_PHB_2 (PIN_ALT6 | PIN_PORTB | PIN19)
#define PIN_LCD_P15F (PIN_ALT7 | PIN_PORTB | PIN19)
#define PIN_LCD_P16 (PIN_ANALOG | PIN_PORTB | PIN20)
#define PIN_SPI2_PCS0_1 (PIN_ALT2 | PIN_PORTB | PIN20)
#define PIN_CMP0_OUT_1 (PIN_ALT6 | PIN_PORTB | PIN20)
#define PIN_LCD_P16F (PIN_ALT7 | PIN_PORTB | PIN20)
#define PIN_LCD_P17 (PIN_ANALOG | PIN_PORTB | PIN21)
#define PIN_SPI2_SCK_1 (PIN_ALT2 | PIN_PORTB | PIN21)
#define PIN_CMP1_OUT_1 (PIN_ALT6 | PIN_PORTB | PIN21)
#define PIN_LCD_P17F (PIN_ALT7 | PIN_PORTB | PIN21)
#define PIN_LCD_P18 (PIN_ANALOG | PIN_PORTB | PIN22)
#define PIN_SPI2_SOUT_1 (PIN_ALT2 | PIN_PORTB | PIN22)
#define PIN_CMP2_OUT_2 (PIN_ALT6 | PIN_PORTB | PIN22)
#define PIN_LCD_P18F (PIN_ALT7 | PIN_PORTB | PIN22)
#define PIN_LCD_P19 (PIN_ANALOG | PIN_PORTB | PIN23)
#define PIN_SPI2_SIN_1 (PIN_ALT2 | PIN_PORTB | PIN23)
#define PIN_SPI0_PCS5 (PIN_ALT3 | PIN_PORTB | PIN23)
#define PIN_LCD_P19F (PIN_ALT7 | PIN_PORTB | PIN23)
#define GPIO_LCD_P20 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN0)
#define GPIO_ADC0_SE14 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN0)
#define GPIO_TSI0_CH13 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN0)
#define GPIO_SPI0_PCS4 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN0)
#define GPIO_PDB0_EXTRG_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN0)
#define GPIO_I2S0_TXD_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN0)
#define GPIO_LCD_P20F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN0)
#define GPIO_LCD_P21 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN1)
#define GPIO_ADC0_SE15 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN1)
#define GPIO_TSI0_CH14 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN1)
#define GPIO_SPI0_PCS3_1 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN1)
#define GPIO_UART1_RTS_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN1)
#define GPIO_FTM0_CH0_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN1)
#define GPIO_LCD_P21F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN1)
#define GPIO_LCD_P22 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN2)
#define GPIO_ADC0_SE4B (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN2)
#define GPIO_CMP1_IN0 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN2)
#define GPIO_TSI0_CH15 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN2)
#define GPIO_SPI0_PCS2_1 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN2)
#define GPIO_UART1_CTS_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN2)
#define GPIO_FTM0_CH1_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN2)
#define GPIO_LCD_P22F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN2)
#define GPIO_LCD_P23 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN3)
#define GPIO_CMP1_IN1 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN3)
#define GPIO_SPI0_PCS1_1 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN3)
#define GPIO_UART1_RX_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN3)
#define GPIO_FTM0_CH2_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN3)
#define GPIO_LCD_P23F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN3)
#define GPIO_LCD_P24 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN4)
#define GPIO_SPI0_PCS0_2 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN4)
#define GPIO_UART1_TX_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN4)
#define GPIO_FTM0_CH3_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN4)
#define GPIO_CMP1_OUT_2 (GPIO_ALT6 | GPIO_PORTC | GPIO_PIN4)
#define GPIO_LCD_P24F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN4)
#define GPIO_LCD_P25 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN5)
#define GPIO_SPI0_SCK_2 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN5)
#define GPIO_LPT0_ALT2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN5)
#define GPIO_CMP0_OUT_2 (GPIO_ALT6 | GPIO_PORTC | GPIO_PIN5)
#define GPIO_LCD_P25F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN5)
#define GPIO_LCD_P26 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN6)
#define GPIO_CMP0_IN0 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN6)
#define GPIO_SPI0_SOUT_2 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN6)
#define GPIO_PDB0_EXTRG_2 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN6)
#define GPIO_LCD_P26F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN6)
#define GPIO_LCD_P27 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN7)
#define GPIO_CMP0_IN1 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN7)
#define GPIO_SPI0_SIN_2 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN7)
#define GPIO_LCD_P27F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN7)
#define GPIO_LCD_P28 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN8)
#define GPIO_ADC1_SE4B (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN8)
#define GPIO_CMP0_IN2 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN8)
#define GPIO_I2S0_MCLK_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN8)
#define GPIO_I2S0_CLKIN_2 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN8)
#define GPIO_LCD_P28F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN8)
#define GPIO_LCD_P29 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN9)
#define GPIO_ADC1_SE5B (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN9)
#define GPIO_CMP0_IN3 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN9)
#define GPIO_I2S0_RX_BCLK_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN9)
#define GPIO_FTM2_FLT0_2 (GPIO_ALT6 | GPIO_PORTC | GPIO_PIN9)
#define GPIO_LCD_P29F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN9)
#define GPIO_LCD_P30 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN10)
#define GPIO_ADC1_SE6B (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN10)
#define GPIO_CMP0_IN4 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN10)
#define GPIO_I2C1_SCL_1 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN10)
#define GPIO_I2S0_RX_FS_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN10)
#define GPIO_LCD_P30F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN10)
#define GPIO_LCD_P31 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN11)
#define GPIO_ADC1_SE7B (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN11)
#define GPIO_I2C1_SDA_1 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN11)
#define GPIO_I2S0_RXD_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN11)
#define GPIO_LCD_P31F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN11)
#define GPIO_LCD_P32 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN12)
#define GPIO_UART4_RTS_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN12)
#define GPIO_LCD_P32F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN12)
#define GPIO_LCD_P33 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN13)
#define GPIO_UART4_CTS_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN13)
#define GPIO_LCD_P33F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN13)
#define GPIO_LCD_P34 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN14)
#define GPIO_UART4_RX_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN14)
#define GPIO_LCD_P34F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN14)
#define GPIO_LCD_P35 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN15)
#define GPIO_UART4_TX_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN15)
#define GPIO_LCD_P35F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN15)
#define GPIO_LCD_P36 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN16)
#define GPIO_CAN1_RX_1 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN16)
#define GPIO_UART3_RX_2 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN16)
#define GPIO_LCD_P36F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN16)
#define GPIO_LCD_P37 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN17)
#define GPIO_CAN1_TX_1 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN17)
#define GPIO_UART3_TX_2 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN17)
#define GPIO_LCD_P37F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN17)
#define GPIO_LCD_P38 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN18)
#define GPIO_UART3_RTS_2 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN18)
#define GPIO_LCD_P38F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN18)
#define GPIO_LCD_P39 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN19)
#define GPIO_UART3_CTS_2 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN19)
#define GPIO_LCD_P39F (GPIO_ALT7 | GPIO_PORTC | GPIO_PIN19)
#define PIN_LCD_P20 (PIN_ANALOG | PIN_PORTC | PIN0)
#define PIN_ADC0_SE14 (PIN_ANALOG | PIN_PORTC | PIN0)
#define PIN_TSI0_CH13 (PIN_ANALOG | PIN_PORTC | PIN0)
#define PIN_SPI0_PCS4 (PIN_ALT2 | PIN_PORTC | PIN0)
#define PIN_PDB0_EXTRG_1 (PIN_ALT3 | PIN_PORTC | PIN0)
#define PIN_I2S0_TXD_2 (PIN_ALT4 | PIN_PORTC | PIN0)
#define PIN_LCD_P20F (PIN_ALT7 | PIN_PORTC | PIN0)
#define PIN_LCD_P21 (PIN_ANALOG | PIN_PORTC | PIN1)
#define PIN_ADC0_SE15 (PIN_ANALOG | PIN_PORTC | PIN1)
#define PIN_TSI0_CH14 (PIN_ANALOG | PIN_PORTC | PIN1)
#define PIN_SPI0_PCS3_1 (PIN_ALT2 | PIN_PORTC | PIN1)
#define PIN_UART1_RTS_1 (PIN_ALT3 | PIN_PORTC | PIN1)
#define PIN_FTM0_CH0_2 (PIN_ALT4 | PIN_PORTC | PIN1)
#define PIN_LCD_P21F (PIN_ALT7 | PIN_PORTC | PIN1)
#define PIN_LCD_P22 (PIN_ANALOG | PIN_PORTC | PIN2)
#define PIN_ADC0_SE4B (PIN_ANALOG | PIN_PORTC | PIN2)
#define PIN_CMP1_IN0 (PIN_ANALOG | PIN_PORTC | PIN2)
#define PIN_TSI0_CH15 (PIN_ANALOG | PIN_PORTC | PIN2)
#define PIN_SPI0_PCS2_1 (PIN_ALT2 | PIN_PORTC | PIN2)
#define PIN_UART1_CTS_1 (PIN_ALT3 | PIN_PORTC | PIN2)
#define PIN_FTM0_CH1_2 (PIN_ALT4 | PIN_PORTC | PIN2)
#define PIN_LCD_P22F (PIN_ALT7 | PIN_PORTC | PIN2)
#define PIN_LCD_P23 (PIN_ANALOG | PIN_PORTC | PIN3)
#define PIN_CMP1_IN1 (PIN_ANALOG | PIN_PORTC | PIN3)
#define PIN_SPI0_PCS1_1 (PIN_ALT2 | PIN_PORTC | PIN3)
#define PIN_UART1_RX_1 (PIN_ALT3 | PIN_PORTC | PIN3)
#define PIN_FTM0_CH2_2 (PIN_ALT4 | PIN_PORTC | PIN3)
#define PIN_LCD_P23F (PIN_ALT7 | PIN_PORTC | PIN3)
#define PIN_LCD_P24 (PIN_ANALOG | PIN_PORTC | PIN4)
#define PIN_SPI0_PCS0_2 (PIN_ALT2 | PIN_PORTC | PIN4)
#define PIN_UART1_TX_1 (PIN_ALT3 | PIN_PORTC | PIN4)
#define PIN_FTM0_CH3_2 (PIN_ALT4 | PIN_PORTC | PIN4)
#define PIN_CMP1_OUT_2 (PIN_ALT6 | PIN_PORTC | PIN4)
#define PIN_LCD_P24F (PIN_ALT7 | PIN_PORTC | PIN4)
#define PIN_LCD_P25 (PIN_ANALOG | PIN_PORTC | PIN5)
#define PIN_SPI0_SCK_2 (PIN_ALT2 | PIN_PORTC | PIN5)
#define PIN_LPT0_ALT2 (PIN_ALT4 | PIN_PORTC | PIN5)
#define PIN_CMP0_OUT_2 (PIN_ALT6 | PIN_PORTC | PIN5)
#define PIN_LCD_P25F (PIN_ALT7 | PIN_PORTC | PIN5)
#define PIN_LCD_P26 (PIN_ANALOG | PIN_PORTC | PIN6)
#define PIN_CMP0_IN0 (PIN_ANALOG | PIN_PORTC | PIN6)
#define PIN_SPI0_SOUT_2 (PIN_ALT2 | PIN_PORTC | PIN6)
#define PIN_PDB0_EXTRG_2 (PIN_ALT3 | PIN_PORTC | PIN6)
#define PIN_LCD_P26F (PIN_ALT7 | PIN_PORTC | PIN6)
#define PIN_LCD_P27 (PIN_ANALOG | PIN_PORTC | PIN7)
#define PIN_CMP0_IN1 (PIN_ANALOG | PIN_PORTC | PIN7)
#define PIN_SPI0_SIN_2 (PIN_ALT2 | PIN_PORTC | PIN7)
#define PIN_LCD_P27F (PIN_ALT7 | PIN_PORTC | PIN7)
#define PIN_LCD_P28 (PIN_ANALOG | PIN_PORTC | PIN8)
#define PIN_ADC1_SE4B (PIN_ANALOG | PIN_PORTC | PIN8)
#define PIN_CMP0_IN2 (PIN_ANALOG | PIN_PORTC | PIN8)
#define PIN_I2S0_MCLK_2 (PIN_ALT4 | PIN_PORTC | PIN8)
#define PIN_I2S0_CLKIN_2 (PIN_ALT5 | PIN_PORTC | PIN8)
#define PIN_LCD_P28F (PIN_ALT7 | PIN_PORTC | PIN8)
#define PIN_LCD_P29 (PIN_ANALOG | PIN_PORTC | PIN9)
#define PIN_ADC1_SE5B (PIN_ANALOG | PIN_PORTC | PIN9)
#define PIN_CMP0_IN3 (PIN_ANALOG | PIN_PORTC | PIN9)
#define PIN_I2S0_RX_BCLK_2 (PIN_ALT4 | PIN_PORTC | PIN9)
#define PIN_FTM2_FLT0_2 (PIN_ALT6 | PIN_PORTC | PIN9)
#define PIN_LCD_P29F (PIN_ALT7 | PIN_PORTC | PIN9)
#define PIN_LCD_P30 (PIN_ANALOG | PIN_PORTC | PIN10)
#define PIN_ADC1_SE6B (PIN_ANALOG | PIN_PORTC | PIN10)
#define PIN_CMP0_IN4 (PIN_ANALOG | PIN_PORTC | PIN10)
#define PIN_I2C1_SCL_1 (PIN_ALT2 | PIN_PORTC | PIN10)
#define PIN_I2S0_RX_FS_2 (PIN_ALT4 | PIN_PORTC | PIN10)
#define PIN_LCD_P30F (PIN_ALT7 | PIN_PORTC | PIN10)
#define PIN_LCD_P31 (PIN_ANALOG | PIN_PORTC | PIN11)
#define PIN_ADC1_SE7B (PIN_ANALOG | PIN_PORTC | PIN11)
#define PIN_I2C1_SDA_1 (PIN_ALT2 | PIN_PORTC | PIN11)
#define PIN_I2S0_RXD_2 (PIN_ALT4 | PIN_PORTC | PIN11)
#define PIN_LCD_P31F (PIN_ALT7 | PIN_PORTC | PIN11)
#define PIN_LCD_P32 (PIN_ANALOG | PIN_PORTC | PIN12)
#define PIN_UART4_RTS_1 (PIN_ALT3 | PIN_PORTC | PIN12)
#define PIN_LCD_P32F (PIN_ALT7 | PIN_PORTC | PIN12)
#define PIN_LCD_P33 (PIN_ANALOG | PIN_PORTC | PIN13)
#define PIN_UART4_CTS_1 (PIN_ALT3 | PIN_PORTC | PIN13)
#define PIN_LCD_P33F (PIN_ALT7 | PIN_PORTC | PIN13)
#define PIN_LCD_P34 (PIN_ANALOG | PIN_PORTC | PIN14)
#define PIN_UART4_RX_1 (PIN_ALT3 | PIN_PORTC | PIN14)
#define PIN_LCD_P34F (PIN_ALT7 | PIN_PORTC | PIN14)
#define PIN_LCD_P35 (PIN_ANALOG | PIN_PORTC | PIN15)
#define PIN_UART4_TX_1 (PIN_ALT3 | PIN_PORTC | PIN15)
#define PIN_LCD_P35F (PIN_ALT7 | PIN_PORTC | PIN15)
#define PIN_LCD_P36 (PIN_ANALOG | PIN_PORTC | PIN16)
#define PIN_CAN1_RX_1 (PIN_ALT2 | PIN_PORTC | PIN16)
#define PIN_UART3_RX_2 (PIN_ALT3 | PIN_PORTC | PIN16)
#define PIN_LCD_P36F (PIN_ALT7 | PIN_PORTC | PIN16)
#define PIN_LCD_P37 (PIN_ANALOG | PIN_PORTC | PIN17)
#define PIN_CAN1_TX_1 (PIN_ALT2 | PIN_PORTC | PIN17)
#define PIN_UART3_TX_2 (PIN_ALT3 | PIN_PORTC | PIN17)
#define PIN_LCD_P37F (PIN_ALT7 | PIN_PORTC | PIN17)
#define PIN_LCD_P38 (PIN_ANALOG | PIN_PORTC | PIN18)
#define PIN_UART3_RTS_2 (PIN_ALT3 | PIN_PORTC | PIN18)
#define PIN_LCD_P38F (PIN_ALT7 | PIN_PORTC | PIN18)
#define PIN_LCD_P39 (PIN_ANALOG | PIN_PORTC | PIN19)
#define PIN_UART3_CTS_2 (PIN_ALT3 | PIN_PORTC | PIN19)
#define PIN_LCD_P39F (PIN_ALT7 | PIN_PORTC | PIN19)
#define GPIO_LCD_P40 (GPIO_ANALOG | GPIO_PORTD | GPIO_PIN0)
#define GPIO_SPI0_PCS0_3 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN0)
#define GPIO_UART2_RTS (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN0)
#define GPIO_LCD_P40F (GPIO_ALT7 | GPIO_PORTD | GPIO_PIN0)
#define GPIO_LCD_P41 (GPIO_ANALOG | GPIO_PORTD | GPIO_PIN1)
#define GPIO_ADC0_SE5B (GPIO_ANALOG | GPIO_PORTD | GPIO_PIN1)
#define GPIO_SPI0_SCK_3 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN1)
#define GPIO_UART2_CTS (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN1)
#define GPIO_LCD_P41F (GPIO_ALT7 | GPIO_PORTD | GPIO_PIN1)
#define GPIO_LCD_P42 (GPIO_ANALOG | GPIO_PORTD | GPIO_PIN2)
#define GPIO_SPI0_SOUT_3 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN2)
#define GPIO_UART2_RX (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN2)
#define GPIO_LCD_P42F (GPIO_ALT7 | GPIO_PORTD | GPIO_PIN2)
#define GPIO_LCD_P43 (GPIO_ANALOG | GPIO_PORTD | GPIO_PIN3)
#define GPIO_SPI0_SIN_3 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN3)
#define GPIO_UART2_TX (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN3)
#define GPIO_LCD_P43F (GPIO_ALT7 | GPIO_PORTD | GPIO_PIN3)
#define GPIO_LCD_P44 (GPIO_ANALOG | GPIO_PORTD | GPIO_PIN4)
#define GPIO_SPI0_PCS1_2 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN4)
#define GPIO_UART0_RTS_4 (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN4)
#define GPIO_FTM0_CH4_2 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN4)
#define GPIO_EWM_IN_2 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN4)
#define GPIO_LCD_P44F (GPIO_ALT7 | GPIO_PORTD | GPIO_PIN4)
#define GPIO_LCD_P45 (GPIO_ANALOG | GPIO_PORTD | GPIO_PIN5)
#define GPIO_ADC0_SE6B (GPIO_ANALOG | GPIO_PORTD | GPIO_PIN5)
#define GPIO_SPI0_PCS2_2 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN5)
#define GPIO_UART0_CTS_4 (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN5)
#define GPIO_FTM0_CH5_2 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN5)
#define GPIO_EWM_OUT_2 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN5)
#define GPIO_LCD_P45F (GPIO_ALT7 | GPIO_PORTD | GPIO_PIN5)
#define GPIO_LCD_P46 (GPIO_ANALOG | GPIO_PORTD | GPIO_PIN6)
#define GPIO_ADC0_SE7B (GPIO_ANALOG | GPIO_PORTD | GPIO_PIN6)
#define GPIO_SPI0_PCS3_2 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN6)
#define GPIO_UART0_RX_4 (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN6)
#define GPIO_FTM0_CH6_2 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN6)
#define GPIO_FTM0_FLT0_2 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN6)
#define GPIO_LCD_P46F (GPIO_ALT7 | GPIO_PORTD | GPIO_PIN6)
#define GPIO_LCD_P47 (GPIO_ANALOG | GPIO_PORTD | GPIO_PIN7)
#define GPIO_CMT_IRO (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN7)
#define GPIO_UART0_TX_4 (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN7)
#define GPIO_FTM0_CH7_2 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN7)
#define GPIO_FTM0_FLT1_2 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN7)
#define GPIO_LCD_P47F (GPIO_ALT7 | GPIO_PORTD | GPIO_PIN7)
#define GPIO_UART5_RTS_1 (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN10)
#define GPIO_FB_AD9 (GPIO_ALT5 | GPIO_PORTD | GPIO_PIN10)
#define GPIO_SPI2_PCS0_2 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN11)
#define GPIO_UART5_CTS_1 (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN11)
#define GPIO_SDHC0_CLKIN (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN11)
#define GPIO_FB_AD8 (GPIO_ALT5 | GPIO_PORTD | GPIO_PIN11)
#define GPIO_SPI2_SCK_2 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN12)
#define GPIO_SDHC0_D4 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN12)
#define GPIO_FB_AD7 (GPIO_ALT5 | GPIO_PORTD | GPIO_PIN12)
#define GPIO_SPI2_SOUT_2 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN13)
#define GPIO_SDHC0_D5 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN13)
#define GPIO_FB_AD6 (GPIO_ALT5 | GPIO_PORTD | GPIO_PIN13)
#define GPIO_SPI2_SIN_2 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN14)
#define GPIO_SDHC0_D6 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN14)
#define GPIO_FB_AD5 (GPIO_ALT5 | GPIO_PORTD | GPIO_PIN14)
#define GPIO_SPI2_PCS1 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN15)
#define GPIO_SDHC0_D7 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN15)
#define GPIO_FB_RW (GPIO_ALT5 | GPIO_PORTD | GPIO_PIN15)
#define PIN_LCD_P40 (PIN_ANALOG | PIN_PORTD | PIN0)
#define PIN_SPI0_PCS0_3 (PIN_ALT2 | PIN_PORTD | PIN0)
#define PIN_UART2_RTS (PIN_ALT3 | PIN_PORTD | PIN0)
#define PIN_LCD_P40F (PIN_ALT7 | PIN_PORTD | PIN0)
#define PIN_LCD_P41 (PIN_ANALOG | PIN_PORTD | PIN1)
#define PIN_ADC0_SE5B (PIN_ANALOG | PIN_PORTD | PIN1)
#define PIN_SPI0_SCK_3 (PIN_ALT2 | PIN_PORTD | PIN1)
#define PIN_UART2_CTS (PIN_ALT3 | PIN_PORTD | PIN1)
#define PIN_LCD_P41F (PIN_ALT7 | PIN_PORTD | PIN1)
#define PIN_LCD_P42 (PIN_ANALOG | PIN_PORTD | PIN2)
#define PIN_SPI0_SOUT_3 (PIN_ALT2 | PIN_PORTD | PIN2)
#define PIN_UART2_RX (PIN_ALT3 | PIN_PORTD | PIN2)
#define PIN_LCD_P42F (PIN_ALT7 | PIN_PORTD | PIN2)
#define PIN_LCD_P43 (PIN_ANALOG | PIN_PORTD | PIN3)
#define PIN_SPI0_SIN_3 (PIN_ALT2 | PIN_PORTD | PIN3)
#define PIN_UART2_TX (PIN_ALT3 | PIN_PORTD | PIN3)
#define PIN_LCD_P43F (PIN_ALT7 | PIN_PORTD | PIN3)
#define PIN_LCD_P44 (PIN_ANALOG | PIN_PORTD | PIN4)
#define PIN_SPI0_PCS1_2 (PIN_ALT2 | PIN_PORTD | PIN4)
#define PIN_UART0_RTS_4 (PIN_ALT3 | PIN_PORTD | PIN4)
#define PIN_FTM0_CH4_2 (PIN_ALT4 | PIN_PORTD | PIN4)
#define PIN_EWM_IN_2 (PIN_ALT6 | PIN_PORTD | PIN4)
#define PIN_LCD_P44F (PIN_ALT7 | PIN_PORTD | PIN4)
#define PIN_LCD_P45 (PIN_ANALOG | PIN_PORTD | PIN5)
#define PIN_ADC0_SE6B (PIN_ANALOG | PIN_PORTD | PIN5)
#define PIN_SPI0_PCS2_2 (PIN_ALT2 | PIN_PORTD | PIN5)
#define PIN_UART0_CTS_4 (PIN_ALT3 | PIN_PORTD | PIN5)
#define PIN_FTM0_CH5_2 (PIN_ALT4 | PIN_PORTD | PIN5)
#define PIN_EWM_OUT_2 (PIN_ALT6 | PIN_PORTD | PIN5)
#define PIN_LCD_P45F (PIN_ALT7 | PIN_PORTD | PIN5)
#define PIN_LCD_P46 (PIN_ANALOG | PIN_PORTD | PIN6)
#define PIN_ADC0_SE7B (PIN_ANALOG | PIN_PORTD | PIN6)
#define PIN_SPI0_PCS3_2 (PIN_ALT2 | PIN_PORTD | PIN6)
#define PIN_UART0_RX_4 (PIN_ALT3 | PIN_PORTD | PIN6)
#define PIN_FTM0_CH6_2 (PIN_ALT4 | PIN_PORTD | PIN6)
#define PIN_FTM0_FLT0_2 (PIN_ALT6 | PIN_PORTD | PIN6)
#define PIN_LCD_P46F (PIN_ALT7 | PIN_PORTD | PIN6)
#define PIN_LCD_P47 (PIN_ANALOG | PIN_PORTD | PIN7)
#define PIN_CMT_IRO (PIN_ALT2 | PIN_PORTD | PIN7)
#define PIN_UART0_TX_4 (PIN_ALT3 | PIN_PORTD | PIN7)
#define PIN_FTM0_CH7_2 (PIN_ALT4 | PIN_PORTD | PIN7)
#define PIN_FTM0_FLT1_2 (PIN_ALT6 | PIN_PORTD | PIN7)
#define PIN_LCD_P47F (PIN_ALT7 | PIN_PORTD | PIN7)
#define PIN_UART5_RTS_1 (PIN_ALT3 | PIN_PORTD | PIN10)
#define PIN_FB_AD9 (PIN_ALT5 | PIN_PORTD | PIN10)
#define PIN_SPI2_PCS0_2 (PIN_ALT2 | PIN_PORTD | PIN11)
#define PIN_UART5_CTS_1 (PIN_ALT3 | PIN_PORTD | PIN11)
#define PIN_SDHC0_CLKIN (PIN_ALT4 | PIN_PORTD | PIN11)
#define PIN_FB_AD8 (PIN_ALT5 | PIN_PORTD | PIN11)
#define PIN_SPI2_SCK_2 (PIN_ALT2 | PIN_PORTD | PIN12)
#define PIN_SDHC0_D4 (PIN_ALT4 | PIN_PORTD | PIN12)
#define PIN_FB_AD7 (PIN_ALT5 | PIN_PORTD | PIN12)
#define PIN_SPI2_SOUT_2 (PIN_ALT2 | PIN_PORTD | PIN13)
#define PIN_SDHC0_D5 (PIN_ALT4 | PIN_PORTD | PIN13)
#define PIN_FB_AD6 (PIN_ALT5 | PIN_PORTD | PIN13)
#define PIN_SPI2_SIN_2 (PIN_ALT2 | PIN_PORTD | PIN14)
#define PIN_SDHC0_D6 (PIN_ALT4 | PIN_PORTD | PIN14)
#define PIN_FB_AD5 (PIN_ALT5 | PIN_PORTD | PIN14)
#define PIN_SPI2_PCS1 (PIN_ALT2 | PIN_PORTD | PIN15)
#define PIN_SDHC0_D7 (PIN_ALT4 | PIN_PORTD | PIN15)
#define PIN_FB_RW (PIN_ALT5 | PIN_PORTD | PIN15)
#define GPIO_ADC1_SE4A (GPIO_ANALOG | GPIO_PORTE | GPIO_PIN0)
#define GPIO_SPI1_PCS1_2 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN0)
#define GPIO_UART1_TX_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN0)
#define GPIO_SDHC0_D1 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN0)
#define GPIO_FB_AD27 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN0)
#define GPIO_I2C1_SDA_2 (GPIO_ALT6 | GPIO_PORTE | GPIO_PIN0)
#define GPIO_ADC1_SE5A (GPIO_ANALOG | GPIO_PORTE | GPIO_PIN1)
#define GPIO_SPI1_SOUT_2 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN1)
#define GPIO_UART1_RX_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN1)
#define GPIO_SDHC0_D0 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN1)
#define GPIO_FB_AD26 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN1)
#define GPIO_I2C1_SCL_2 (GPIO_ALT6 | GPIO_PORTE | GPIO_PIN1)
#define GPIO_ADC1_SE6A (GPIO_ANALOG | GPIO_PORTE | GPIO_PIN2)
#define GPIO_SPI1_SCK_2 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN2)
#define GPIO_UART1_CTS_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN2)
#define GPIO_SDHC0_DCLK (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN2)
#define GPIO_FB_AD25 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN2)
#define GPIO_ADC1_SE7A (GPIO_ANALOG | GPIO_PORTE | GPIO_PIN3)
#define GPIO_SPI1_SIN_2 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN3)
#define GPIO_UART1_RTS_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN3)
#define GPIO_SDHC0_CMD (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN3)
#define GPIO_FB_AD24 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN3)
#define GPIO_SPI1_PCS0_2 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN4)
#define GPIO_UART3_TX_3 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN4)
#define GPIO_SDHC0_D3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN4)
#define GPIO_FB_CS3 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN4)
#define GPIO_FB_BE7_0_BLS31_24 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN4)
#define GPIO_FB_TA (GPIO_ALT6 | GPIO_PORTE | GPIO_PIN4)
#define GPIO_SPI1_PCS2 (GPIO_ANALOG | GPIO_PORTE | GPIO_PIN5)
#define GPIO_UART3_RX_3 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN5)
#define GPIO_SDHC0_D2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN5)
#define GPIO_FB_TBST (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN5)
#define GPIO_FB_CS2 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN5)
#define GPIO_FB_BE15_8_BLS23_16 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN5)
#define GPIO_SPI1_PCS3 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN6)
#define GPIO_UART3_CTS_3 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN6)
#define GPIO_I2S0_MCLK_3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN6)
#define GPIO_FB_ALE (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN6)
#define GPIO_FB_CS1 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN6)
#define GPIO_FB_TS (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN6)
#define GPIO_I2S0_CLKIN_3 (GPIO_ALT6 | GPIO_PORTE | GPIO_PIN6)
#define GPIO_UART3_RTS_3 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN7)
#define GPIO_I2S0_RXD_3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN7)
#define GPIO_FB_CS0 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN7)
#define GPIO_UART5_TX (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN8)
#define GPIO_I2S0_RX_FS_3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN8)
#define GPIO_FB_AD4 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN8)
#define GPIO_UART5_RX (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN9)
#define GPIO_I2S0_RX_BCLK_3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN9)
#define GPIO_FB_AD3 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN9)
#define GPIO_UART5_CTS_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN10)
#define GPIO_I2S0_TXD_3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN10)
#define GPIO_FB_AD2 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN10)
#define GPIO_UART5_RTS_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN11)
#define GPIO_I2S0_TX_FS_3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN11)
#define GPIO_FB_AD1 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN11)
#define GPIO_I2S0_TX_BCLK_3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN12)
#define GPIO_FB_AD0 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN12)
#define GPIO_ADC0_SE17 (GPIO_ANALOG | GPIO_PORTE | GPIO_PIN24)
#define GPIO_CAN1_TX_2 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN24)
#define GPIO_UART4_TX_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN24)
#define GPIO_EWM_OUT_3 (GPIO_ALT6 | GPIO_PORTE | GPIO_PIN24)
#define GPIO_ADC0_SE18 (GPIO_ANALOG | GPIO_PORTE | GPIO_PIN25)
#define GPIO_CAN1_RX_2 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN25)
#define GPIO_UART4_RX_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN25)
#define GPIO_FB_AD23 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN25)
#define GPIO_EWM_IN_3 (GPIO_ALT6 | GPIO_PORTE | GPIO_PIN25)
#define GPIO_UART4_CTS_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN26)
#define GPIO_FB_AD22 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN26)
#define GPIO_RTC_CLKOUT (GPIO_ALT6 | GPIO_PORTE | GPIO_PIN26)
#define GPIO_USB_CLKIN (GPIO_ALT7 | GPIO_PORTE | GPIO_PIN26)
#define GPIO_UART4_RTS_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN27)
#define GPIO_FB_AD21 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN27)
#define GPIO_FB_AD20 (GPIO_ALT5 | GPIO_PORTE | GPIO_PIN28)
#define PIN_ADC1_SE4A (PIN_ANALOG | PIN_PORTE | PIN0)
#define PIN_SPI1_PCS1_2 (PIN_ALT2 | PIN_PORTE | PIN0)
#define PIN_UART1_TX_2 (PIN_ALT3 | PIN_PORTE | PIN0)
#define PIN_SDHC0_D1 (PIN_ALT4 | PIN_PORTE | PIN0)
#define PIN_FB_AD27 (PIN_ALT5 | PIN_PORTE | PIN0)
#define PIN_I2C1_SDA_2 (PIN_ALT6 | PIN_PORTE | PIN0)
#define PIN_ADC1_SE5A (PIN_ANALOG | PIN_PORTE | PIN1)
#define PIN_SPI1_SOUT_2 (PIN_ALT2 | PIN_PORTE | PIN1)
#define PIN_UART1_RX_2 (PIN_ALT3 | PIN_PORTE | PIN1)
#define PIN_SDHC0_D0 (PIN_ALT4 | PIN_PORTE | PIN1)
#define PIN_FB_AD26 (PIN_ALT5 | PIN_PORTE | PIN1)
#define PIN_I2C1_SCL_2 (PIN_ALT6 | PIN_PORTE | PIN1)
#define PIN_ADC1_SE6A (PIN_ANALOG | PIN_PORTE | PIN2)
#define PIN_SPI1_SCK_2 (PIN_ALT2 | PIN_PORTE | PIN2)
#define PIN_UART1_CTS_2 (PIN_ALT3 | PIN_PORTE | PIN2)
#define PIN_SDHC0_DCLK (PIN_ALT4 | PIN_PORTE | PIN2)
#define PIN_FB_AD25 (PIN_ALT5 | PIN_PORTE | PIN2)
#define PIN_ADC1_SE7A (PIN_ANALOG | PIN_PORTE | PIN3)
#define PIN_SPI1_SIN_2 (PIN_ALT2 | PIN_PORTE | PIN3)
#define PIN_UART1_RTS_2 (PIN_ALT3 | PIN_PORTE | PIN3)
#define PIN_SDHC0_CMD (PIN_ALT4 | PIN_PORTE | PIN3)
#define PIN_FB_AD24 (PIN_ALT5 | PIN_PORTE | PIN3)
#define PIN_SPI1_PCS0_2 (PIN_ALT2 | PIN_PORTE | PIN4)
#define PIN_UART3_TX_3 (PIN_ALT3 | PIN_PORTE | PIN4)
#define PIN_SDHC0_D3 (PIN_ALT4 | PIN_PORTE | PIN4)
#define PIN_FB_CS3 (PIN_ALT5 | PIN_PORTE | PIN4)
#define PIN_FB_BE7_0_BLS31_24 (PIN_ALT5 | PIN_PORTE | PIN4)
#define PIN_FB_TA (PIN_ALT6 | PIN_PORTE | PIN4)
#define PIN_SPI1_PCS2 (PIN_ANALOG | PIN_PORTE | PIN5)
#define PIN_UART3_RX_3 (PIN_ALT2 | PIN_PORTE | PIN5)
#define PIN_SDHC0_D2 (PIN_ALT3 | PIN_PORTE | PIN5)
#define PIN_FB_TBST (PIN_ALT4 | PIN_PORTE | PIN5)
#define PIN_FB_CS2 (PIN_ALT5 | PIN_PORTE | PIN5)
#define PIN_FB_BE15_8_BLS23_16 (PIN_ALT5 | PIN_PORTE | PIN5)
#define PIN_SPI1_PCS3 (PIN_ALT2 | PIN_PORTE | PIN6)
#define PIN_UART3_CTS_3 (PIN_ALT3 | PIN_PORTE | PIN6)
#define PIN_I2S0_MCLK_3 (PIN_ALT4 | PIN_PORTE | PIN6)
#define PIN_FB_ALE (PIN_ALT5 | PIN_PORTE | PIN6)
#define PIN_FB_CS1 (PIN_ALT5 | PIN_PORTE | PIN6)
#define PIN_FB_TS (PIN_ALT5 | PIN_PORTE | PIN6)
#define PIN_I2S0_CLKIN_3 (PIN_ALT6 | PIN_PORTE | PIN6)
#define PIN_UART3_RTS_3 (PIN_ALT3 | PIN_PORTE | PIN7)
#define PIN_I2S0_RXD_3 (PIN_ALT4 | PIN_PORTE | PIN7)
#define PIN_FB_CS0 (PIN_ALT5 | PIN_PORTE | PIN7)
#define PIN_UART5_TX (PIN_ALT3 | PIN_PORTE | PIN8)
#define PIN_I2S0_RX_FS_3 (PIN_ALT4 | PIN_PORTE | PIN8)
#define PIN_FB_AD4 (PIN_ALT5 | PIN_PORTE | PIN8)
#define PIN_UART5_RX (PIN_ALT3 | PIN_PORTE | PIN9)
#define PIN_I2S0_RX_BCLK_3 (PIN_ALT4 | PIN_PORTE | PIN9)
#define PIN_FB_AD3 (PIN_ALT5 | PIN_PORTE | PIN9)
#define PIN_UART5_CTS_2 (PIN_ALT3 | PIN_PORTE | PIN10)
#define PIN_I2S0_TXD_3 (PIN_ALT4 | PIN_PORTE | PIN10)
#define PIN_FB_AD2 (PIN_ALT5 | PIN_PORTE | PIN10)
#define PIN_UART5_RTS_2 (PIN_ALT3 | PIN_PORTE | PIN11)
#define PIN_I2S0_TX_FS_3 (PIN_ALT4 | PIN_PORTE | PIN11)
#define PIN_FB_AD1 (PIN_ALT5 | PIN_PORTE | PIN11)
#define PIN_I2S0_TX_BCLK_3 (PIN_ALT4 | PIN_PORTE | PIN12)
#define PIN_FB_AD0 (PIN_ALT5 | PIN_PORTE | PIN12)
#define PIN_ADC0_SE17 (PIN_ANALOG | PIN_PORTE | PIN24)
#define PIN_CAN1_TX_2 (PIN_ALT2 | PIN_PORTE | PIN24)
#define PIN_UART4_TX_2 (PIN_ALT3 | PIN_PORTE | PIN24)
#define PIN_EWM_OUT_3 (PIN_ALT6 | PIN_PORTE | PIN24)
#define PIN_ADC0_SE18 (PIN_ANALOG | PIN_PORTE | PIN25)
#define PIN_CAN1_RX_2 (PIN_ALT2 | PIN_PORTE | PIN25)
#define PIN_UART4_RX_2 (PIN_ALT3 | PIN_PORTE | PIN25)
#define PIN_FB_AD23 (PIN_ALT5 | PIN_PORTE | PIN25)
#define PIN_EWM_IN_3 (PIN_ALT6 | PIN_PORTE | PIN25)
#define PIN_UART4_CTS_2 (PIN_ALT3 | PIN_PORTE | PIN26)
#define PIN_FB_AD22 (PIN_ALT5 | PIN_PORTE | PIN26)
#define PIN_RTC_CLKOUT (PIN_ALT6 | PIN_PORTE | PIN26)
#define PIN_USB_CLKIN (PIN_ALT7 | PIN_PORTE | PIN26)
#define PIN_UART4_RTS_2 (PIN_ALT3 | PIN_PORTE | PIN27)
#define PIN_FB_AD21 (PIN_ALT5 | PIN_PORTE | PIN27)
#define PIN_FB_AD20 (PIN_ALT5 | PIN_PORTE | PIN28)
#else
/* The pin muxing for other K40 parts is defined in other documents */

View File

@ -59,401 +59,401 @@
defined(CONFIG_ARCH_CHIP_MK60N512VLQ100) || defined(CONFIG_ARCH_CHIP_MK60N256VMD100) || \
defined(CONFIG_ARCH_CHIP_MK60X256VMD100) || defined(CONFIG_ARCH_CHIP_MK60N512VMD100)
#define GPIO_TSI0_CH1 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN0)
#define GPIO_UART0_CTS_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN0)
#define GPIO_FTM0_CH5_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN0)
#define GPIO_JTAG_TCLK (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN0)
#define GPIO_SWD_CLK (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN0)
#define GPIO_TSI0_CH2 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN1)
#define GPIO_UART0_RX_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN1)
#define GPIO_FTM0_CH6_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN1)
#define GPIO_JTAG_TDI (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN1)
#define GPIO_TSI0_CH3 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN2)
#define GPIO_UART0_TX_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN2)
#define GPIO_FTM0_CH7_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN2)
#define GPIO_JTAG_TDO (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN2)
#define GPIO_TRACE_SWO (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN2)
#define GPIO_TSI0_CH4 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN3)
#define GPIO_UART0_RTS_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN3)
#define GPIO_FTM0_CH0_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN3)
#define GPIO_JTAG_TMS (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN3)
#define GPIO_SWD_DIO (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN3)
#define GPIO_TSI0_CH5 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN4)
#define GPIO_FTM0_CH1_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN4)
#define GPIO_NMI (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN4)
#define GPIO_FTM0_CH2_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN5)
#define GPIO_RMII0_RXER (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN5)
#define GPIO_MII0_RXER (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN5)
#define GPIO_CMP2_OUT_1 (GPIO_ALT5 | GPIO_PORTA | GPIO_PIN5)
#define GPIO_I2S0_RX_BCLK_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN5)
#define GPIO_JTAG_TRST (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN5)
#define GPIO_FTM0_CH3_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN6)
#define GPIO_TRACE_CLKOUT (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN6)
#define GPIO_ADC0_SE10 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN7)
#define GPIO_FTM0_CH4_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN7)
#define GPIO_TRACE_D3 (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN7)
#define GPIO_ADC0_SE11 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN8)
#define GPIO_FTM1_CH0_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN8)
#define GPIO_FTM1_QD_PHA_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN8)
#define GPIO_TRACE_D2 (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN8)
#define GPIO_FTM1_CH1_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN9)
#define GPIO_MII0_RXD3 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN9)
#define GPIO_FTM1_QD_PHB_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN9)
#define GPIO_TRACE_D1 (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN9)
#define GPIO_FTM2_CH0_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN10)
#define GPIO_MII0_RXD2 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN10)
#define GPIO_FTM2_QD_PHA_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN10)
#define GPIO_TRACE_D0 (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN10)
#define GPIO_FTM2_CH1_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN11)
#define GPIO_MII0_RXCLK (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN11)
#define GPIO_FTM2_QD_PHB_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN11)
#define GPIO_CMP2_IN0 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN12)
#define GPIO_CAN0_TX_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN12)
#define GPIO_FTM1_CH0_2 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN12)
#define GPIO_RMII0_RXD1 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN12)
#define GPIO_MII0_RXD1 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN12)
#define GPIO_I2S0_TXD_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN12)
#define GPIO_FTM1_QD_PHA_2 (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN12)
#define GPIO_CMP2_IN1 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN13)
#define GPIO_CAN0_RX_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN13)
#define GPIO_FTM1_CH1_2 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN13)
#define GPIO_RMII0_RXD0 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN13)
#define GPIO_MII0_RXD0 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN13)
#define GPIO_I2S0_TX_FS_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN13)
#define GPIO_FTM1_QD_PHB_2 (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN13)
#define GPIO_SPI0_PCS0_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN14)
#define GPIO_UART0_TX_2 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN14)
#define GPIO_RMII0_CRS_DV (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN14)
#define GPIO_MII0_RXDV (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN14)
#define GPIO_I2S0_TX_BCLK_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN14)
#define GPIO_SPI0_SCK_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN15)
#define GPIO_UART0_RX_2 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN15)
#define GPIO_RMII0_TXEN (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN15)
#define GPIO_MII0_TXEN (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN15)
#define GPIO_I2S0_RXD_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN15)
#define GPIO_SPI0_SOUT_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN16)
#define GPIO_UART0_CTS_2 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN16)
#define GPIO_RMII0_TXD0 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN16)
#define GPIO_MII0_TXD0 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN16)
#define GPIO_I2S0_RX_FS_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN16)
#define GPIO_ADC1_SE17 (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN17)
#define GPIO_SPI0_SIN_1 (GPIO_ALT2 | GPIO_PORTA | GPIO_PIN17)
#define GPIO_UART0_RTS_2 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN17)
#define GPIO_RMII0_TXD1 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN17)
#define GPIO_MII0_TXD1 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN17)
#define GPIO_I2S0_MCLK_1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN17)
#define GPIO_I2S0_CLKIN_1 (GPIO_ALT7 | GPIO_PORTA | GPIO_PIN17)
#define GPIO_EXTAL (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN18)
#define GPIO_FTM0_FLT2_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN18)
#define GPIO_FTM_CLKIN0 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN18)
#define GPIO_XTAL (GPIO_ANALOG | GPIO_PORTA | GPIO_PIN19)
#define GPIO_FTM1_FLT0_1 (GPIO_ALT3 | GPIO_PORTA | GPIO_PIN19)
#define GPIO_FTM_CLKIN1 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN19)
#define GPIO_LPT0_ALT1 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN19)
#define GPIO_MII0_TXD2 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN24)
#define GPIO_FB_A29 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN24)
#define GPIO_MII0_TXCLK (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN25)
#define GPIO_FB_A28 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN25)
#define GPIO_MII0_TXD3 (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN26)
#define GPIO_FB_A27 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN26)
#define GPIO_MII0_CRS (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN27)
#define GPIO_FB_A26 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN27)
#define GPIO_MII0_TXER (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN28)
#define GPIO_FB_A25 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN28)
#define GPIO_MII0_COL (GPIO_ALT4 | GPIO_PORTA | GPIO_PIN29)
#define GPIO_FB_A24 (GPIO_ALT6 | GPIO_PORTA | GPIO_PIN29)
#define PIN_TSI0_CH1 (PIN_ANALOG | PIN_PORTA | PIN0)
#define PIN_UART0_CTS_1 (PIN_ALT2 | PIN_PORTA | PIN0)
#define PIN_FTM0_CH5_1 (PIN_ALT3 | PIN_PORTA | PIN0)
#define PIN_JTAG_TCLK (PIN_ALT7 | PIN_PORTA | PIN0)
#define PIN_SWD_CLK (PIN_ALT7 | PIN_PORTA | PIN0)
#define PIN_TSI0_CH2 (PIN_ANALOG | PIN_PORTA | PIN1)
#define PIN_UART0_RX_1 (PIN_ALT2 | PIN_PORTA | PIN1)
#define PIN_FTM0_CH6_1 (PIN_ALT3 | PIN_PORTA | PIN1)
#define PIN_JTAG_TDI (PIN_ALT7 | PIN_PORTA | PIN1)
#define PIN_TSI0_CH3 (PIN_ANALOG | PIN_PORTA | PIN2)
#define PIN_UART0_TX_1 (PIN_ALT2 | PIN_PORTA | PIN2)
#define PIN_FTM0_CH7_1 (PIN_ALT3 | PIN_PORTA | PIN2)
#define PIN_JTAG_TDO (PIN_ALT7 | PIN_PORTA | PIN2)
#define PIN_TRACE_SWO (PIN_ALT7 | PIN_PORTA | PIN2)
#define PIN_TSI0_CH4 (PIN_ANALOG | PIN_PORTA | PIN3)
#define PIN_UART0_RTS_1 (PIN_ALT2 | PIN_PORTA | PIN3)
#define PIN_FTM0_CH0_1 (PIN_ALT3 | PIN_PORTA | PIN3)
#define PIN_JTAG_TMS (PIN_ALT7 | PIN_PORTA | PIN3)
#define PIN_SWD_DIO (PIN_ALT7 | PIN_PORTA | PIN3)
#define PIN_TSI0_CH5 (PIN_ANALOG | PIN_PORTA | PIN4)
#define PIN_FTM0_CH1_1 (PIN_ALT3 | PIN_PORTA | PIN4)
#define PIN_NMI (PIN_ALT7 | PIN_PORTA | PIN4)
#define PIN_FTM0_CH2_1 (PIN_ALT3 | PIN_PORTA | PIN5)
#define PIN_RMII0_RXER (PIN_ALT4 | PIN_PORTA | PIN5)
#define PIN_MII0_RXER (PIN_ALT4 | PIN_PORTA | PIN5)
#define PIN_CMP2_OUT_1 (PIN_ALT5 | PIN_PORTA | PIN5)
#define PIN_I2S0_RX_BCLK_1 (PIN_ALT6 | PIN_PORTA | PIN5)
#define PIN_JTAG_TRST (PIN_ALT7 | PIN_PORTA | PIN5)
#define PIN_FTM0_CH3_1 (PIN_ALT3 | PIN_PORTA | PIN6)
#define PIN_TRACE_CLKOUT (PIN_ALT7 | PIN_PORTA | PIN6)
#define PIN_ADC0_SE10 (PIN_ANALOG | PIN_PORTA | PIN7)
#define PIN_FTM0_CH4_1 (PIN_ALT3 | PIN_PORTA | PIN7)
#define PIN_TRACE_D3 (PIN_ALT7 | PIN_PORTA | PIN7)
#define PIN_ADC0_SE11 (PIN_ANALOG | PIN_PORTA | PIN8)
#define PIN_FTM1_CH0_1 (PIN_ALT3 | PIN_PORTA | PIN8)
#define PIN_FTM1_QD_PHA_1 (PIN_ALT6 | PIN_PORTA | PIN8)
#define PIN_TRACE_D2 (PIN_ALT7 | PIN_PORTA | PIN8)
#define PIN_FTM1_CH1_1 (PIN_ALT3 | PIN_PORTA | PIN9)
#define PIN_MII0_RXD3 (PIN_ALT4 | PIN_PORTA | PIN9)
#define PIN_FTM1_QD_PHB_1 (PIN_ALT6 | PIN_PORTA | PIN9)
#define PIN_TRACE_D1 (PIN_ALT7 | PIN_PORTA | PIN9)
#define PIN_FTM2_CH0_1 (PIN_ALT3 | PIN_PORTA | PIN10)
#define PIN_MII0_RXD2 (PIN_ALT4 | PIN_PORTA | PIN10)
#define PIN_FTM2_QD_PHA_1 (PIN_ALT6 | PIN_PORTA | PIN10)
#define PIN_TRACE_D0 (PIN_ALT7 | PIN_PORTA | PIN10)
#define PIN_FTM2_CH1_1 (PIN_ALT3 | PIN_PORTA | PIN11)
#define PIN_MII0_RXCLK (PIN_ALT4 | PIN_PORTA | PIN11)
#define PIN_FTM2_QD_PHB_1 (PIN_ALT6 | PIN_PORTA | PIN11)
#define PIN_CMP2_IN0 (PIN_ANALOG | PIN_PORTA | PIN12)
#define PIN_CAN0_TX_1 (PIN_ALT2 | PIN_PORTA | PIN12)
#define PIN_FTM1_CH0_2 (PIN_ALT3 | PIN_PORTA | PIN12)
#define PIN_RMII0_RXD1 (PIN_ALT4 | PIN_PORTA | PIN12)
#define PIN_MII0_RXD1 (PIN_ALT4 | PIN_PORTA | PIN12)
#define PIN_I2S0_TXD_1 (PIN_ALT6 | PIN_PORTA | PIN12)
#define PIN_FTM1_QD_PHA_2 (PIN_ALT7 | PIN_PORTA | PIN12)
#define PIN_CMP2_IN1 (PIN_ANALOG | PIN_PORTA | PIN13)
#define PIN_CAN0_RX_1 (PIN_ALT2 | PIN_PORTA | PIN13)
#define PIN_FTM1_CH1_2 (PIN_ALT3 | PIN_PORTA | PIN13)
#define PIN_RMII0_RXD0 (PIN_ALT4 | PIN_PORTA | PIN13)
#define PIN_MII0_RXD0 (PIN_ALT4 | PIN_PORTA | PIN13)
#define PIN_I2S0_TX_FS_1 (PIN_ALT6 | PIN_PORTA | PIN13)
#define PIN_FTM1_QD_PHB_2 (PIN_ALT7 | PIN_PORTA | PIN13)
#define PIN_SPI0_PCS0_1 (PIN_ALT2 | PIN_PORTA | PIN14)
#define PIN_UART0_TX_2 (PIN_ALT3 | PIN_PORTA | PIN14)
#define PIN_RMII0_CRS_DV (PIN_ALT4 | PIN_PORTA | PIN14)
#define PIN_MII0_RXDV (PIN_ALT4 | PIN_PORTA | PIN14)
#define PIN_I2S0_TX_BCLK_1 (PIN_ALT6 | PIN_PORTA | PIN14)
#define PIN_SPI0_SCK_1 (PIN_ALT2 | PIN_PORTA | PIN15)
#define PIN_UART0_RX_2 (PIN_ALT3 | PIN_PORTA | PIN15)
#define PIN_RMII0_TXEN (PIN_ALT4 | PIN_PORTA | PIN15)
#define PIN_MII0_TXEN (PIN_ALT4 | PIN_PORTA | PIN15)
#define PIN_I2S0_RXD_1 (PIN_ALT6 | PIN_PORTA | PIN15)
#define PIN_SPI0_SOUT_1 (PIN_ALT2 | PIN_PORTA | PIN16)
#define PIN_UART0_CTS_2 (PIN_ALT3 | PIN_PORTA | PIN16)
#define PIN_RMII0_TXD0 (PIN_ALT4 | PIN_PORTA | PIN16)
#define PIN_MII0_TXD0 (PIN_ALT4 | PIN_PORTA | PIN16)
#define PIN_I2S0_RX_FS_1 (PIN_ALT6 | PIN_PORTA | PIN16)
#define PIN_ADC1_SE17 (PIN_ANALOG | PIN_PORTA | PIN17)
#define PIN_SPI0_SIN_1 (PIN_ALT2 | PIN_PORTA | PIN17)
#define PIN_UART0_RTS_2 (PIN_ALT3 | PIN_PORTA | PIN17)
#define PIN_RMII0_TXD1 (PIN_ALT4 | PIN_PORTA | PIN17)
#define PIN_MII0_TXD1 (PIN_ALT4 | PIN_PORTA | PIN17)
#define PIN_I2S0_MCLK_1 (PIN_ALT6 | PIN_PORTA | PIN17)
#define PIN_I2S0_CLKIN_1 (PIN_ALT7 | PIN_PORTA | PIN17)
#define PIN_EXTAL (PIN_ANALOG | PIN_PORTA | PIN18)
#define PIN_FTM0_FLT2_1 (PIN_ALT3 | PIN_PORTA | PIN18)
#define PIN_FTM_CLKIN0 (PIN_ALT4 | PIN_PORTA | PIN18)
#define PIN_XTAL (PIN_ANALOG | PIN_PORTA | PIN19)
#define PIN_FTM1_FLT0_1 (PIN_ALT3 | PIN_PORTA | PIN19)
#define PIN_FTM_CLKIN1 (PIN_ALT4 | PIN_PORTA | PIN19)
#define PIN_LPT0_ALT1 (PIN_ALT6 | PIN_PORTA | PIN19)
#define PIN_MII0_TXD2 (PIN_ALT4 | PIN_PORTA | PIN24)
#define PIN_FB_A29 (PIN_ALT6 | PIN_PORTA | PIN24)
#define PIN_MII0_TXCLK (PIN_ALT4 | PIN_PORTA | PIN25)
#define PIN_FB_A28 (PIN_ALT6 | PIN_PORTA | PIN25)
#define PIN_MII0_TXD3 (PIN_ALT4 | PIN_PORTA | PIN26)
#define PIN_FB_A27 (PIN_ALT6 | PIN_PORTA | PIN26)
#define PIN_MII0_CRS (PIN_ALT4 | PIN_PORTA | PIN27)
#define PIN_FB_A26 (PIN_ALT6 | PIN_PORTA | PIN27)
#define PIN_MII0_TXER (PIN_ALT4 | PIN_PORTA | PIN28)
#define PIN_FB_A25 (PIN_ALT6 | PIN_PORTA | PIN28)
#define PIN_MII0_COL (PIN_ALT4 | PIN_PORTA | PIN29)
#define PIN_FB_A24 (PIN_ALT6 | PIN_PORTA | PIN29)
#define GPIO_ADC0_SE8 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN0)
#define GPIO_ADC1_SE8 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN0)
#define GPIO_TSI0_CH0 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN0)
#define GPIO_I2C0_SCL_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN0)
#define GPIO_FTM1_CH0_3 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN0)
#define GPIO_RMII0_MDIO (GPIO_ALT4 | GPIO_PORTB | GPIO_PIN0)
#define GPIO_MII0_MDIO (GPIO_ALT4 | GPIO_PORTB | GPIO_PIN0)
#define GPIO_FTM1_QD_PHA_3 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN0)
#define GPIO_ADC0_SE9 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN1)
#define GPIO_ADC1_SE9 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN1)
#define GPIO_TSI0_CH6 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN1)
#define GPIO_I2C0_SDA_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN1)
#define GPIO_FTM1_CH1_3 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN1)
#define GPIO_RMII0_MDC (GPIO_ALT4 | GPIO_PORTB | GPIO_PIN1)
#define GPIO_MII0_MDC (GPIO_ALT4 | GPIO_PORTB | GPIO_PIN1)
#define GPIO_FTM1_QD_PHB_3 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN1)
#define GPIO_ADC0_SE12 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN2)
#define GPIO_TSI0_CH7 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN2)
#define GPIO_I2C0_SCL_2 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN2)
#define GPIO_UART0_RTS_3 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN2)
#define GPIO_ENET0_1588_TMR0 (GPIO_ALT4 | GPIO_PORTB | GPIO_PIN2)
#define GPIO_FTM0_FLT3 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN2)
#define GPIO_ADC0_SE13 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN3)
#define GPIO_TSI0_CH8 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN3)
#define GPIO_I2C0_SDA_2 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN3)
#define GPIO_UART0_CTS_3 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN3)
#define GPIO_ENET0_1588_TMR1 (GPIO_ALT4 | GPIO_PORTB | GPIO_PIN3)
#define GPIO_FTM0_FLT0_2 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN3)
#define GPIO_ADC1_SE10 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN4)
#define GPIO_ENET0_1588_TMR2 (GPIO_ALT4 | GPIO_PORTB | GPIO_PIN4)
#define GPIO_FTM1_FLT0_2 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN4)
#define GPIO_ADC1_SE11 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN5)
#define GPIO_ENET0_1588_TMR3 (GPIO_ALT4 | GPIO_PORTB | GPIO_PIN5)
#define GPIO_FTM2_FLT0_1 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN5)
#define GPIO_ADC1_SE12 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN6)
#define GPIO_FB_AD23 (GPIO_ALT5 | GPIO_PORTB | GPIO_PIN6)
#define GPIO_ADC1_SE13 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN7)
#define GPIO_FB_AD22 (GPIO_ALT5 | GPIO_PORTB | GPIO_PIN7)
#define GPIO_UART3_RTS_1 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN8)
#define GPIO_FB_AD21 (GPIO_ALT5 | GPIO_PORTB | GPIO_PIN8)
#define GPIO_SPI1_PCS1_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN9)
#define GPIO_UART3_CTS_1 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN9)
#define GPIO_FB_AD20 (GPIO_ALT5 | GPIO_PORTB | GPIO_PIN9)
#define GPIO_ADC1_SE14 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN10)
#define GPIO_SPI1_PCS0_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN10)
#define GPIO_UART3_RX_1 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN10)
#define GPIO_FB_AD19 (GPIO_ALT5 | GPIO_PORTB | GPIO_PIN10)
#define GPIO_FTM0_FLT1_1 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN10)
#define GPIO_ADC1_SE15 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN11)
#define GPIO_SPI1_SCK_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN11)
#define GPIO_UART3_TX_1 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN11)
#define GPIO_FB_AD18 (GPIO_ALT5 | GPIO_PORTB | GPIO_PIN11)
#define GPIO_FTM0_FLT2_2 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN11)
#define GPIO_TSI0_CH9 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN16)
#define GPIO_SPI1_SOUT_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN16)
#define GPIO_UART0_RX_3 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN16)
#define GPIO_FB_AD17 (GPIO_ALT5 | GPIO_PORTB | GPIO_PIN16)
#define GPIO_EWM_IN_1 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN16)
#define GPIO_TSI0_CH10 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN17)
#define GPIO_SPI1_SIN_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN17)
#define GPIO_UART0_TX_3 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN17)
#define GPIO_FB_AD16 (GPIO_ALT5 | GPIO_PORTB | GPIO_PIN17)
#define GPIO_EWM_OUT_1 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN17)
#define GPIO_TSI0_CH11 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN18)
#define GPIO_CAN0_TX_2 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN18)
#define GPIO_FTM2_CH0_2 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN18)
#define GPIO_I2S0_TX_BCLK_2 (GPIO_ALT4 | GPIO_PORTB | GPIO_PIN18)
#define GPIO_FB_AD15 (GPIO_ALT5 | GPIO_PORTB | GPIO_PIN18)
#define GPIO_FTM2_QD_PHA_2 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN18)
#define GPIO_TSI0_CH12 (GPIO_ANALOG | GPIO_PORTB | GPIO_PIN19)
#define GPIO_CAN0_RX_2 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN19)
#define GPIO_FTM2_CH1_2 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN19)
#define GPIO_I2S0_TX_FS_2 (GPIO_ALT4 | GPIO_PORTB | GPIO_PIN19)
#define GPIO_FB_OE (GPIO_ALT5 | GPIO_PORTB | GPIO_PIN19)
#define GPIO_FTM2_QD_PHB_2 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN19)
#define GPIO_SPI2_PCS0_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN20)
#define GPIO_FB_AD31 (GPIO_ALT5 | GPIO_PORTB | GPIO_PIN20)
#define GPIO_CMP0_OUT_1 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN20)
#define GPIO_SPI2_SCK_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN21)
#define GPIO_FB_AD30 (GPIO_ALT5 | GPIO_PORTB | GPIO_PIN21)
#define GPIO_CMP1_OUT_1 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN21)
#define GPIO_SPI2_SOUT_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN22)
#define GPIO_FB_AD29 (GPIO_ALT5 | GPIO_PORTB | GPIO_PIN22)
#define GPIO_CMP2_OUT_2 (GPIO_ALT6 | GPIO_PORTB | GPIO_PIN22)
#define GPIO_SPI2_SIN_1 (GPIO_ALT2 | GPIO_PORTB | GPIO_PIN23)
#define GPIO_SPI0_PCS5 (GPIO_ALT3 | GPIO_PORTB | GPIO_PIN23)
#define GPIO_FB_AD28 (GPIO_ALT5 | GPIO_PORTB | GPIO_PIN23)
#define PIN_ADC0_SE8 (PIN_ANALOG | PIN_PORTB | PIN0)
#define PIN_ADC1_SE8 (PIN_ANALOG | PIN_PORTB | PIN0)
#define PIN_TSI0_CH0 (PIN_ANALOG | PIN_PORTB | PIN0)
#define PIN_I2C0_SCL_1 (PIN_ALT2 | PIN_PORTB | PIN0)
#define PIN_FTM1_CH0_3 (PIN_ALT3 | PIN_PORTB | PIN0)
#define PIN_RMII0_MDIO (PIN_ALT4 | PIN_PORTB | PIN0)
#define PIN_MII0_MDIO (PIN_ALT4 | PIN_PORTB | PIN0)
#define PIN_FTM1_QD_PHA_3 (PIN_ALT6 | PIN_PORTB | PIN0)
#define PIN_ADC0_SE9 (PIN_ANALOG | PIN_PORTB | PIN1)
#define PIN_ADC1_SE9 (PIN_ANALOG | PIN_PORTB | PIN1)
#define PIN_TSI0_CH6 (PIN_ANALOG | PIN_PORTB | PIN1)
#define PIN_I2C0_SDA_1 (PIN_ALT2 | PIN_PORTB | PIN1)
#define PIN_FTM1_CH1_3 (PIN_ALT3 | PIN_PORTB | PIN1)
#define PIN_RMII0_MDC (PIN_ALT4 | PIN_PORTB | PIN1)
#define PIN_MII0_MDC (PIN_ALT4 | PIN_PORTB | PIN1)
#define PIN_FTM1_QD_PHB_3 (PIN_ALT6 | PIN_PORTB | PIN1)
#define PIN_ADC0_SE12 (PIN_ANALOG | PIN_PORTB | PIN2)
#define PIN_TSI0_CH7 (PIN_ANALOG | PIN_PORTB | PIN2)
#define PIN_I2C0_SCL_2 (PIN_ALT2 | PIN_PORTB | PIN2)
#define PIN_UART0_RTS_3 (PIN_ALT3 | PIN_PORTB | PIN2)
#define PIN_ENET0_1588_TMR0 (PIN_ALT4 | PIN_PORTB | PIN2)
#define PIN_FTM0_FLT3 (PIN_ALT6 | PIN_PORTB | PIN2)
#define PIN_ADC0_SE13 (PIN_ANALOG | PIN_PORTB | PIN3)
#define PIN_TSI0_CH8 (PIN_ANALOG | PIN_PORTB | PIN3)
#define PIN_I2C0_SDA_2 (PIN_ALT2 | PIN_PORTB | PIN3)
#define PIN_UART0_CTS_3 (PIN_ALT3 | PIN_PORTB | PIN3)
#define PIN_ENET0_1588_TMR1 (PIN_ALT4 | PIN_PORTB | PIN3)
#define PIN_FTM0_FLT0_2 (PIN_ALT6 | PIN_PORTB | PIN3)
#define PIN_ADC1_SE10 (PIN_ANALOG | PIN_PORTB | PIN4)
#define PIN_ENET0_1588_TMR2 (PIN_ALT4 | PIN_PORTB | PIN4)
#define PIN_FTM1_FLT0_2 (PIN_ALT6 | PIN_PORTB | PIN4)
#define PIN_ADC1_SE11 (PIN_ANALOG | PIN_PORTB | PIN5)
#define PIN_ENET0_1588_TMR3 (PIN_ALT4 | PIN_PORTB | PIN5)
#define PIN_FTM2_FLT0_1 (PIN_ALT6 | PIN_PORTB | PIN5)
#define PIN_ADC1_SE12 (PIN_ANALOG | PIN_PORTB | PIN6)
#define PIN_FB_AD23 (PIN_ALT5 | PIN_PORTB | PIN6)
#define PIN_ADC1_SE13 (PIN_ANALOG | PIN_PORTB | PIN7)
#define PIN_FB_AD22 (PIN_ALT5 | PIN_PORTB | PIN7)
#define PIN_UART3_RTS_1 (PIN_ALT3 | PIN_PORTB | PIN8)
#define PIN_FB_AD21 (PIN_ALT5 | PIN_PORTB | PIN8)
#define PIN_SPI1_PCS1_1 (PIN_ALT2 | PIN_PORTB | PIN9)
#define PIN_UART3_CTS_1 (PIN_ALT3 | PIN_PORTB | PIN9)
#define PIN_FB_AD20 (PIN_ALT5 | PIN_PORTB | PIN9)
#define PIN_ADC1_SE14 (PIN_ANALOG | PIN_PORTB | PIN10)
#define PIN_SPI1_PCS0_1 (PIN_ALT2 | PIN_PORTB | PIN10)
#define PIN_UART3_RX_1 (PIN_ALT3 | PIN_PORTB | PIN10)
#define PIN_FB_AD19 (PIN_ALT5 | PIN_PORTB | PIN10)
#define PIN_FTM0_FLT1_1 (PIN_ALT6 | PIN_PORTB | PIN10)
#define PIN_ADC1_SE15 (PIN_ANALOG | PIN_PORTB | PIN11)
#define PIN_SPI1_SCK_1 (PIN_ALT2 | PIN_PORTB | PIN11)
#define PIN_UART3_TX_1 (PIN_ALT3 | PIN_PORTB | PIN11)
#define PIN_FB_AD18 (PIN_ALT5 | PIN_PORTB | PIN11)
#define PIN_FTM0_FLT2_2 (PIN_ALT6 | PIN_PORTB | PIN11)
#define PIN_TSI0_CH9 (PIN_ANALOG | PIN_PORTB | PIN16)
#define PIN_SPI1_SOUT_1 (PIN_ALT2 | PIN_PORTB | PIN16)
#define PIN_UART0_RX_3 (PIN_ALT3 | PIN_PORTB | PIN16)
#define PIN_FB_AD17 (PIN_ALT5 | PIN_PORTB | PIN16)
#define PIN_EWM_IN_1 (PIN_ALT6 | PIN_PORTB | PIN16)
#define PIN_TSI0_CH10 (PIN_ANALOG | PIN_PORTB | PIN17)
#define PIN_SPI1_SIN_1 (PIN_ALT2 | PIN_PORTB | PIN17)
#define PIN_UART0_TX_3 (PIN_ALT3 | PIN_PORTB | PIN17)
#define PIN_FB_AD16 (PIN_ALT5 | PIN_PORTB | PIN17)
#define PIN_EWM_OUT_1 (PIN_ALT6 | PIN_PORTB | PIN17)
#define PIN_TSI0_CH11 (PIN_ANALOG | PIN_PORTB | PIN18)
#define PIN_CAN0_TX_2 (PIN_ALT2 | PIN_PORTB | PIN18)
#define PIN_FTM2_CH0_2 (PIN_ALT3 | PIN_PORTB | PIN18)
#define PIN_I2S0_TX_BCLK_2 (PIN_ALT4 | PIN_PORTB | PIN18)
#define PIN_FB_AD15 (PIN_ALT5 | PIN_PORTB | PIN18)
#define PIN_FTM2_QD_PHA_2 (PIN_ALT6 | PIN_PORTB | PIN18)
#define PIN_TSI0_CH12 (PIN_ANALOG | PIN_PORTB | PIN19)
#define PIN_CAN0_RX_2 (PIN_ALT2 | PIN_PORTB | PIN19)
#define PIN_FTM2_CH1_2 (PIN_ALT3 | PIN_PORTB | PIN19)
#define PIN_I2S0_TX_FS_2 (PIN_ALT4 | PIN_PORTB | PIN19)
#define PIN_FB_OE (PIN_ALT5 | PIN_PORTB | PIN19)
#define PIN_FTM2_QD_PHB_2 (PIN_ALT6 | PIN_PORTB | PIN19)
#define PIN_SPI2_PCS0_1 (PIN_ALT2 | PIN_PORTB | PIN20)
#define PIN_FB_AD31 (PIN_ALT5 | PIN_PORTB | PIN20)
#define PIN_CMP0_OUT_1 (PIN_ALT6 | PIN_PORTB | PIN20)
#define PIN_SPI2_SCK_1 (PIN_ALT2 | PIN_PORTB | PIN21)
#define PIN_FB_AD30 (PIN_ALT5 | PIN_PORTB | PIN21)
#define PIN_CMP1_OUT_1 (PIN_ALT6 | PIN_PORTB | PIN21)
#define PIN_SPI2_SOUT_1 (PIN_ALT2 | PIN_PORTB | PIN22)
#define PIN_FB_AD29 (PIN_ALT5 | PIN_PORTB | PIN22)
#define PIN_CMP2_OUT_2 (PIN_ALT6 | PIN_PORTB | PIN22)
#define PIN_SPI2_SIN_1 (PIN_ALT2 | PIN_PORTB | PIN23)
#define PIN_SPI0_PCS5 (PIN_ALT3 | PIN_PORTB | PIN23)
#define PIN_FB_AD28 (PIN_ALT5 | PIN_PORTB | PIN23)
#define GPIO_ADC0_SE14 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN0)
#define GPIO_TSI0_CH13 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN0)
#define GPIO_SPI0_PCS4 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN0)
#define GPIO_PDB0_EXTRG_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN0)
#define GPIO_I2S0_TXD_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN0)
#define GPIO_FB_AD14 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN0)
#define GPIO_ADC0_SE15 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN1)
#define GPIO_TSI0_CH14 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN1)
#define GPIO_SPI0_PCS3_1 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN1)
#define GPIO_UART1_RTS_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN1)
#define GPIO_FTM0_CH0_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN1)
#define GPIO_FB_AD13 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN1)
#define GPIO_ADC0_SE4B (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN2)
#define GPIO_CMP1_IN0 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN2)
#define GPIO_TSI0_CH15 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN2)
#define GPIO_SPI0_PCS2_2 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN2)
#define GPIO_UART1_CTS_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN2)
#define GPIO_FTM0_CH1_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN2)
#define GPIO_FB_AD12 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN2)
#define GPIO_CMP1_IN1 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN3)
#define GPIO_SPI0_PCS1_1 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN3)
#define GPIO_UART1_RX_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN3)
#define GPIO_FTM0_CH2_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN3)
#define GPIO_FB_CLKOUT (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN3)
#define GPIO_SPI0_PCS0_2 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN4)
#define GPIO_UART1_TX_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN4)
#define GPIO_FTM0_CH3_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN4)
#define GPIO_FB_AD11 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN4)
#define GPIO_CMP1_OUT_2 (GPIO_ALT6 | GPIO_PORTC | GPIO_PIN4)
#define GPIO_SPI0_SCK_2 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN5)
#define GPIO_LPT0_ALT2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN5)
#define GPIO_FB_AD10 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN5)
#define GPIO_CMP0_OUT_2 (GPIO_ALT6 | GPIO_PORTC | GPIO_PIN5)
#define GPIO_CMP0_IN0 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN6)
#define GPIO_SPI0_SOUT_2 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN6)
#define GPIO_PDB0_EXTRG_2 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN6)
#define GPIO_FB_AD9 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN6)
#define GPIO_CMP0_IN1 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN7)
#define GPIO_SPI0_SIN_2 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN7)
#define GPIO_FB_AD8 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN7)
#define GPIO_ADC1_SE4B (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN8)
#define GPIO_CMP0_IN2 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN8)
#define GPIO_I2S0_MCLK_2 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN8)
#define GPIO_I2S0_CLKIN_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN8)
#define GPIO_FB_AD7 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN8)
#define GPIO_ADC1_SE5B (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN9)
#define GPIO_CMP0_IN3 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN9)
#define GPIO_I2S0_RX_BCLK_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN9)
#define GPIO_FB_AD6 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN9)
#define GPIO_FTM2_FLT0_2 (GPIO_ALT6 | GPIO_PORTC | GPIO_PIN9)
#define GPIO_ADC1_SE6B (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN10)
#define GPIO_CMP0_IN4 (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN10)
#define GPIO_I2C1_SCL_1 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN10)
#define GPIO_I2S0_RX_FS_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN10)
#define GPIO_FB_AD5 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN10)
#define GPIO_ADC1_SE7B (GPIO_ANALOG | GPIO_PORTC | GPIO_PIN11)
#define GPIO_I2C1_SDA_1 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN11)
#define GPIO_I2S0_RXD_2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN11)
#define GPIO_FB_RW (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN11)
#define GPIO_UART4_RTS_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN12)
#define GPIO_FB_AD27 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN12)
#define GPIO_UART4_CTS_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN13)
#define GPIO_FB_AD26 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN13)
#define GPIO_UART4_RX_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN14)
#define GPIO_FB_AD25 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN14)
#define GPIO_UART4_TX_1 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN15)
#define GPIO_FB_AD24 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN15)
#define GPIO_CAN1_RX_1 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN16)
#define GPIO_UART3_RX_2 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN16)
#define GPIO_ENET0_1588_TMR0 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN16)
#define GPIO_FB_CS5 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN16)
#define GPIO_FB_TSIZ1 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN16)
#define GPIO_FB_BE23_16_BLS15_8 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN16)
#define GPIO_CAN1_TX_1 (GPIO_ALT2 | GPIO_PORTC | GPIO_PIN17)
#define GPIO_UART3_TX_2 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN17)
#define GPIO_ENET0_1588_TMR1 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN17)
#define GPIO_FB_CS4 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN17)
#define GPIO_FB_TSIZ0 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN17)
#define GPIO_FB_BE31_24_BLS7_0 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN17)
#define GPIO_UART3_RTS_2 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN18)
#define GPIO_ENET0_1588_TMR2 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN18)
#define GPIO_FB_TBST (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN18)
#define GPIO_FB_CS2 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN18)
#define GPIO_FB_BE15_8_BLS23_16 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN18)
#define GPIO_UART3_CTS_2 (GPIO_ALT3 | GPIO_PORTC | GPIO_PIN19)
#define GPIO_ENET0_1588_TMR3 (GPIO_ALT4 | GPIO_PORTC | GPIO_PIN19)
#define GPIO_FB_CS3 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN19)
#define GPIO_FB_BE7_0_BLS31_24 (GPIO_ALT5 | GPIO_PORTC | GPIO_PIN19)
#define GPIO_FB_TA (GPIO_ALT6 | GPIO_PORTC | GPIO_PIN19)
#define PIN_ADC0_SE14 (PIN_ANALOG | PIN_PORTC | PIN0)
#define PIN_TSI0_CH13 (PIN_ANALOG | PIN_PORTC | PIN0)
#define PIN_SPI0_PCS4 (PIN_ALT2 | PIN_PORTC | PIN0)
#define PIN_PDB0_EXTRG_1 (PIN_ALT3 | PIN_PORTC | PIN0)
#define PIN_I2S0_TXD_2 (PIN_ALT4 | PIN_PORTC | PIN0)
#define PIN_FB_AD14 (PIN_ALT5 | PIN_PORTC | PIN0)
#define PIN_ADC0_SE15 (PIN_ANALOG | PIN_PORTC | PIN1)
#define PIN_TSI0_CH14 (PIN_ANALOG | PIN_PORTC | PIN1)
#define PIN_SPI0_PCS3_1 (PIN_ALT2 | PIN_PORTC | PIN1)
#define PIN_UART1_RTS_1 (PIN_ALT3 | PIN_PORTC | PIN1)
#define PIN_FTM0_CH0_2 (PIN_ALT4 | PIN_PORTC | PIN1)
#define PIN_FB_AD13 (PIN_ALT5 | PIN_PORTC | PIN1)
#define PIN_ADC0_SE4B (PIN_ANALOG | PIN_PORTC | PIN2)
#define PIN_CMP1_IN0 (PIN_ANALOG | PIN_PORTC | PIN2)
#define PIN_TSI0_CH15 (PIN_ANALOG | PIN_PORTC | PIN2)
#define PIN_SPI0_PCS2_2 (PIN_ALT2 | PIN_PORTC | PIN2)
#define PIN_UART1_CTS_1 (PIN_ALT3 | PIN_PORTC | PIN2)
#define PIN_FTM0_CH1_2 (PIN_ALT4 | PIN_PORTC | PIN2)
#define PIN_FB_AD12 (PIN_ALT5 | PIN_PORTC | PIN2)
#define PIN_CMP1_IN1 (PIN_ANALOG | PIN_PORTC | PIN3)
#define PIN_SPI0_PCS1_1 (PIN_ALT2 | PIN_PORTC | PIN3)
#define PIN_UART1_RX_1 (PIN_ALT3 | PIN_PORTC | PIN3)
#define PIN_FTM0_CH2_2 (PIN_ALT4 | PIN_PORTC | PIN3)
#define PIN_FB_CLKOUT (PIN_ALT5 | PIN_PORTC | PIN3)
#define PIN_SPI0_PCS0_2 (PIN_ALT2 | PIN_PORTC | PIN4)
#define PIN_UART1_TX_1 (PIN_ALT3 | PIN_PORTC | PIN4)
#define PIN_FTM0_CH3_2 (PIN_ALT4 | PIN_PORTC | PIN4)
#define PIN_FB_AD11 (PIN_ALT5 | PIN_PORTC | PIN4)
#define PIN_CMP1_OUT_2 (PIN_ALT6 | PIN_PORTC | PIN4)
#define PIN_SPI0_SCK_2 (PIN_ALT2 | PIN_PORTC | PIN5)
#define PIN_LPT0_ALT2 (PIN_ALT4 | PIN_PORTC | PIN5)
#define PIN_FB_AD10 (PIN_ALT5 | PIN_PORTC | PIN5)
#define PIN_CMP0_OUT_2 (PIN_ALT6 | PIN_PORTC | PIN5)
#define PIN_CMP0_IN0 (PIN_ANALOG | PIN_PORTC | PIN6)
#define PIN_SPI0_SOUT_2 (PIN_ALT2 | PIN_PORTC | PIN6)
#define PIN_PDB0_EXTRG_2 (PIN_ALT3 | PIN_PORTC | PIN6)
#define PIN_FB_AD9 (PIN_ALT5 | PIN_PORTC | PIN6)
#define PIN_CMP0_IN1 (PIN_ANALOG | PIN_PORTC | PIN7)
#define PIN_SPI0_SIN_2 (PIN_ALT2 | PIN_PORTC | PIN7)
#define PIN_FB_AD8 (PIN_ALT5 | PIN_PORTC | PIN7)
#define PIN_ADC1_SE4B (PIN_ANALOG | PIN_PORTC | PIN8)
#define PIN_CMP0_IN2 (PIN_ANALOG | PIN_PORTC | PIN8)
#define PIN_I2S0_MCLK_2 (PIN_ALT3 | PIN_PORTC | PIN8)
#define PIN_I2S0_CLKIN_2 (PIN_ALT4 | PIN_PORTC | PIN8)
#define PIN_FB_AD7 (PIN_ALT5 | PIN_PORTC | PIN8)
#define PIN_ADC1_SE5B (PIN_ANALOG | PIN_PORTC | PIN9)
#define PIN_CMP0_IN3 (PIN_ANALOG | PIN_PORTC | PIN9)
#define PIN_I2S0_RX_BCLK_2 (PIN_ALT4 | PIN_PORTC | PIN9)
#define PIN_FB_AD6 (PIN_ALT5 | PIN_PORTC | PIN9)
#define PIN_FTM2_FLT0_2 (PIN_ALT6 | PIN_PORTC | PIN9)
#define PIN_ADC1_SE6B (PIN_ANALOG | PIN_PORTC | PIN10)
#define PIN_CMP0_IN4 (PIN_ANALOG | PIN_PORTC | PIN10)
#define PIN_I2C1_SCL_1 (PIN_ALT2 | PIN_PORTC | PIN10)
#define PIN_I2S0_RX_FS_2 (PIN_ALT4 | PIN_PORTC | PIN10)
#define PIN_FB_AD5 (PIN_ALT5 | PIN_PORTC | PIN10)
#define PIN_ADC1_SE7B (PIN_ANALOG | PIN_PORTC | PIN11)
#define PIN_I2C1_SDA_1 (PIN_ALT2 | PIN_PORTC | PIN11)
#define PIN_I2S0_RXD_2 (PIN_ALT4 | PIN_PORTC | PIN11)
#define PIN_FB_RW (PIN_ALT5 | PIN_PORTC | PIN11)
#define PIN_UART4_RTS_1 (PIN_ALT3 | PIN_PORTC | PIN12)
#define PIN_FB_AD27 (PIN_ALT5 | PIN_PORTC | PIN12)
#define PIN_UART4_CTS_1 (PIN_ALT3 | PIN_PORTC | PIN13)
#define PIN_FB_AD26 (PIN_ALT5 | PIN_PORTC | PIN13)
#define PIN_UART4_RX_1 (PIN_ALT3 | PIN_PORTC | PIN14)
#define PIN_FB_AD25 (PIN_ALT5 | PIN_PORTC | PIN14)
#define PIN_UART4_TX_1 (PIN_ALT3 | PIN_PORTC | PIN15)
#define PIN_FB_AD24 (PIN_ALT5 | PIN_PORTC | PIN15)
#define PIN_CAN1_RX_1 (PIN_ALT2 | PIN_PORTC | PIN16)
#define PIN_UART3_RX_2 (PIN_ALT3 | PIN_PORTC | PIN16)
#define PIN_ENET0_1588_TMR0 (PIN_ALT4 | PIN_PORTC | PIN16)
#define PIN_FB_CS5 (PIN_ALT5 | PIN_PORTC | PIN16)
#define PIN_FB_TSIZ1 (PIN_ALT5 | PIN_PORTC | PIN16)
#define PIN_FB_BE23_16_BLS15_8 (PIN_ALT5 | PIN_PORTC | PIN16)
#define PIN_CAN1_TX_1 (PIN_ALT2 | PIN_PORTC | PIN17)
#define PIN_UART3_TX_2 (PIN_ALT3 | PIN_PORTC | PIN17)
#define PIN_ENET0_1588_TMR1 (PIN_ALT4 | PIN_PORTC | PIN17)
#define PIN_FB_CS4 (PIN_ALT5 | PIN_PORTC | PIN17)
#define PIN_FB_TSIZ0 (PIN_ALT5 | PIN_PORTC | PIN17)
#define PIN_FB_BE31_24_BLS7_0 (PIN_ALT5 | PIN_PORTC | PIN17)
#define PIN_UART3_RTS_2 (PIN_ALT3 | PIN_PORTC | PIN18)
#define PIN_ENET0_1588_TMR2 (PIN_ALT4 | PIN_PORTC | PIN18)
#define PIN_FB_TBST (PIN_ALT5 | PIN_PORTC | PIN18)
#define PIN_FB_CS2 (PIN_ALT5 | PIN_PORTC | PIN18)
#define PIN_FB_BE15_8_BLS23_16 (PIN_ALT5 | PIN_PORTC | PIN18)
#define PIN_UART3_CTS_2 (PIN_ALT3 | PIN_PORTC | PIN19)
#define PIN_ENET0_1588_TMR3 (PIN_ALT4 | PIN_PORTC | PIN19)
#define PIN_FB_CS3 (PIN_ALT5 | PIN_PORTC | PIN19)
#define PIN_FB_BE7_0_BLS31_24 (PIN_ALT5 | PIN_PORTC | PIN19)
#define PIN_FB_TA (PIN_ALT6 | PIN_PORTC | PIN19)
#define GPIO_SPI0_PCS0_3 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN0)
#define GPIO_UART2_RTS (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN0)
#define GPIO_FB_ALE (GPIO_ALT5 | GPIO_PORTD | GPIO_PIN0)
#define GPIO_FB_CS1 (GPIO_ALT5 | GPIO_PORTD | GPIO_PIN0)
#define GPIO_FB_TS (GPIO_ALT5 | GPIO_PORTD | GPIO_PIN0)
#define GPIO_ADC0_SE5B (GPIO_ANALOG | GPIO_PORTD | GPIO_PIN1)
#define GPIO_SPI0_SCK_3 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN1)
#define GPIO_UART2_CTS (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN1)
#define GPIO_FB_CS0 (GPIO_ALT5 | GPIO_PORTD | GPIO_PIN1)
#define GPIO_SPI0_SOUT_3 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN2)
#define GPIO_UART2_RX (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN2)
#define GPIO_FB_AD4 (GPIO_ALT5 | GPIO_PORTD | GPIO_PIN2)
#define GPIO_SPI0_SIN_3 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN3)
#define GPIO_UART2_TX (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN3)
#define GPIO_FB_AD3 (GPIO_ALT5 | GPIO_PORTD | GPIO_PIN3)
#define GPIO_SPI0_PCS1_2 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN4)
#define GPIO_UART0_RTS_4 (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN4)
#define GPIO_FTM0_CH4_2 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN4)
#define GPIO_FB_AD2 (GPIO_ALT5 | GPIO_PORTD | GPIO_PIN4)
#define GPIO_EWM_IN_2 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN4)
#define GPIO_ADC0_SE6B (GPIO_ANALOG | GPIO_PORTD | GPIO_PIN5)
#define GPIO_SPI0_PCS2_1 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN5)
#define GPIO_UART0_CTS_4 (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN5)
#define GPIO_FTM0_CH5_2 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN5)
#define GPIO_FB_AD1 (GPIO_ALT5 | GPIO_PORTD | GPIO_PIN5)
#define GPIO_EWM_OUT_2 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN5)
#define GPIO_ADC0_SE7B (GPIO_ANALOG | GPIO_PORTD | GPIO_PIN6)
#define GPIO_SPI0_PCS3_2 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN6)
#define GPIO_UART0_RX_4 (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN6)
#define GPIO_FTM0_CH6_2 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN6)
#define GPIO_FB_AD0 (GPIO_ALT5 | GPIO_PORTD | GPIO_PIN6)
#define GPIO_FTM0_FLT0_1 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN6)
#define GPIO_CMT_IRO (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN7)
#define GPIO_UART0_TX_4 (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN7)
#define GPIO_FTM0_CH7_2 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN7)
#define GPIO_FTM0_FLT1_2 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN7)
#define GPIO_I2C0_SCL_3 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN8)
#define GPIO_UART5_RX_1 (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN8)
#define GPIO_FB_A16 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN8)
#define GPIO_I2C0_SDA (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN9)
#define GPIO_UART5_TX_1 (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN9)
#define GPIO_FB_A17 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN9)
#define GPIO_UART5_RTS_1 (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN10)
#define GPIO_FB_A18 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN10)
#define GPIO_SPI2_PCS0_2 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN11)
#define GPIO_UART5_CTS_1 (GPIO_ALT3 | GPIO_PORTD | GPIO_PIN11)
#define GPIO_SDHC0_CLKIN (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN11)
#define GPIO_FB_A19 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN11)
#define GPIO_SPI2_SCK_2 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN12)
#define GPIO_SDHC0_D4 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN12)
#define GPIO_FB_A20 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN12)
#define GPIO_SPI2_SOUT_2 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN13)
#define GPIO_SDHC0_D5 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN13)
#define GPIO_FB_A21 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN13)
#define GPIO_SPI2_SIN_2 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN14)
#define GPIO_SDHC0_D6 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN14)
#define GPIO_FB_A22 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN14)
#define GPIO_SPI2_PCS1 (GPIO_ALT2 | GPIO_PORTD | GPIO_PIN15)
#define GPIO_SDHC0_D7 (GPIO_ALT4 | GPIO_PORTD | GPIO_PIN15)
#define GPIO_FB_A23 (GPIO_ALT6 | GPIO_PORTD | GPIO_PIN15)
#define PIN_SPI0_PCS0_3 (PIN_ALT2 | PIN_PORTD | PIN0)
#define PIN_UART2_RTS (PIN_ALT3 | PIN_PORTD | PIN0)
#define PIN_FB_ALE (PIN_ALT5 | PIN_PORTD | PIN0)
#define PIN_FB_CS1 (PIN_ALT5 | PIN_PORTD | PIN0)
#define PIN_FB_TS (PIN_ALT5 | PIN_PORTD | PIN0)
#define PIN_ADC0_SE5B (PIN_ANALOG | PIN_PORTD | PIN1)
#define PIN_SPI0_SCK_3 (PIN_ALT2 | PIN_PORTD | PIN1)
#define PIN_UART2_CTS (PIN_ALT3 | PIN_PORTD | PIN1)
#define PIN_FB_CS0 (PIN_ALT5 | PIN_PORTD | PIN1)
#define PIN_SPI0_SOUT_3 (PIN_ALT2 | PIN_PORTD | PIN2)
#define PIN_UART2_RX (PIN_ALT3 | PIN_PORTD | PIN2)
#define PIN_FB_AD4 (PIN_ALT5 | PIN_PORTD | PIN2)
#define PIN_SPI0_SIN_3 (PIN_ALT2 | PIN_PORTD | PIN3)
#define PIN_UART2_TX (PIN_ALT3 | PIN_PORTD | PIN3)
#define PIN_FB_AD3 (PIN_ALT5 | PIN_PORTD | PIN3)
#define PIN_SPI0_PCS1_2 (PIN_ALT2 | PIN_PORTD | PIN4)
#define PIN_UART0_RTS_4 (PIN_ALT3 | PIN_PORTD | PIN4)
#define PIN_FTM0_CH4_2 (PIN_ALT4 | PIN_PORTD | PIN4)
#define PIN_FB_AD2 (PIN_ALT5 | PIN_PORTD | PIN4)
#define PIN_EWM_IN_2 (PIN_ALT6 | PIN_PORTD | PIN4)
#define PIN_ADC0_SE6B (PIN_ANALOG | PIN_PORTD | PIN5)
#define PIN_SPI0_PCS2_1 (PIN_ALT2 | PIN_PORTD | PIN5)
#define PIN_UART0_CTS_4 (PIN_ALT3 | PIN_PORTD | PIN5)
#define PIN_FTM0_CH5_2 (PIN_ALT4 | PIN_PORTD | PIN5)
#define PIN_FB_AD1 (PIN_ALT5 | PIN_PORTD | PIN5)
#define PIN_EWM_OUT_2 (PIN_ALT6 | PIN_PORTD | PIN5)
#define PIN_ADC0_SE7B (PIN_ANALOG | PIN_PORTD | PIN6)
#define PIN_SPI0_PCS3_2 (PIN_ALT2 | PIN_PORTD | PIN6)
#define PIN_UART0_RX_4 (PIN_ALT3 | PIN_PORTD | PIN6)
#define PIN_FTM0_CH6_2 (PIN_ALT4 | PIN_PORTD | PIN6)
#define PIN_FB_AD0 (PIN_ALT5 | PIN_PORTD | PIN6)
#define PIN_FTM0_FLT0_1 (PIN_ALT6 | PIN_PORTD | PIN6)
#define PIN_CMT_IRO (PIN_ALT2 | PIN_PORTD | PIN7)
#define PIN_UART0_TX_4 (PIN_ALT3 | PIN_PORTD | PIN7)
#define PIN_FTM0_CH7_2 (PIN_ALT4 | PIN_PORTD | PIN7)
#define PIN_FTM0_FLT1_2 (PIN_ALT6 | PIN_PORTD | PIN7)
#define PIN_I2C0_SCL_3 (PIN_ALT2 | PIN_PORTD | PIN8)
#define PIN_UART5_RX_1 (PIN_ALT3 | PIN_PORTD | PIN8)
#define PIN_FB_A16 (PIN_ALT6 | PIN_PORTD | PIN8)
#define PIN_I2C0_SDA (PIN_ALT2 | PIN_PORTD | PIN9)
#define PIN_UART5_TX_1 (PIN_ALT3 | PIN_PORTD | PIN9)
#define PIN_FB_A17 (PIN_ALT6 | PIN_PORTD | PIN9)
#define PIN_UART5_RTS_1 (PIN_ALT3 | PIN_PORTD | PIN10)
#define PIN_FB_A18 (PIN_ALT6 | PIN_PORTD | PIN10)
#define PIN_SPI2_PCS0_2 (PIN_ALT2 | PIN_PORTD | PIN11)
#define PIN_UART5_CTS_1 (PIN_ALT3 | PIN_PORTD | PIN11)
#define PIN_SDHC0_CLKIN (PIN_ALT4 | PIN_PORTD | PIN11)
#define PIN_FB_A19 (PIN_ALT6 | PIN_PORTD | PIN11)
#define PIN_SPI2_SCK_2 (PIN_ALT2 | PIN_PORTD | PIN12)
#define PIN_SDHC0_D4 (PIN_ALT4 | PIN_PORTD | PIN12)
#define PIN_FB_A20 (PIN_ALT6 | PIN_PORTD | PIN12)
#define PIN_SPI2_SOUT_2 (PIN_ALT2 | PIN_PORTD | PIN13)
#define PIN_SDHC0_D5 (PIN_ALT4 | PIN_PORTD | PIN13)
#define PIN_FB_A21 (PIN_ALT6 | PIN_PORTD | PIN13)
#define PIN_SPI2_SIN_2 (PIN_ALT2 | PIN_PORTD | PIN14)
#define PIN_SDHC0_D6 (PIN_ALT4 | PIN_PORTD | PIN14)
#define PIN_FB_A22 (PIN_ALT6 | PIN_PORTD | PIN14)
#define PIN_SPI2_PCS1 (PIN_ALT2 | PIN_PORTD | PIN15)
#define PIN_SDHC0_D7 (PIN_ALT4 | PIN_PORTD | PIN15)
#define PIN_FB_A23 (PIN_ALT6 | PIN_PORTD | PIN15)
#define GPIO_ADC1_SE4A (GPIO_ANALOG | GPIO_PORTE | GPIO_PIN0)
#define GPIO_SPI1_PCS1_2 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN0)
#define GPIO_UART1_TX_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN0)
#define GPIO_SDHC0_D1 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN0)
#define GPIO_I2C1_SDA_2 (GPIO_ALT6 | GPIO_PORTE | GPIO_PIN0)
#define GPIO_ADC1_SE5A (GPIO_ANALOG | GPIO_PORTE | GPIO_PIN1)
#define GPIO_SPI1_SOUT_2 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN1)
#define GPIO_UART1_RX_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN1)
#define GPIO_SDHC0_D0 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN1)
#define GPIO_I2C1_SCL_2 (GPIO_ALT6 | GPIO_PORTE | GPIO_PIN1)
#define GPIO_ADC1_SE6A (GPIO_ANALOG | GPIO_PORTE | GPIO_PIN2)
#define GPIO_SPI1_SCK_2 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN2)
#define GPIO_UART1_CTS_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN2)
#define GPIO_SDHC0_DCLK (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN2)
#define GPIO_ADC1_SE7A (GPIO_ANALOG | GPIO_PORTE | GPIO_PIN3)
#define GPIO_SPI1_SIN_2 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN3)
#define GPIO_UART1_RTS_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN3)
#define GPIO_SDHC0_CMD (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN3)
#define GPIO_SPI1_PCS0_2 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN4)
#define GPIO_UART3_TX_3 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN4)
#define GPIO_SDHC0_D3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN4)
#define GPIO_SPI1_PCS2 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN5)
#define GPIO_UART3_RX_3 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN5)
#define GPIO_SDHC0_D2 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN5)
#define GPIO_SPI1_PCS3 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN6)
#define GPIO_UART3_CTS_3 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN6)
#define GPIO_I2S0_MCLK_3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN6)
#define GPIO_I2S0_CLKIN_3 (GPIO_ALT6 | GPIO_PORTE | GPIO_PIN6)
#define GPIO_UART3_RTS_3 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN7)
#define GPIO_I2S0_RXD_3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN7)
#define GPIO_UART5_TX_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN8)
#define GPIO_I2S0_RX_FS_3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN8)
#define GPIO_UART5_RX_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN9)
#define GPIO_I2S0_RX_BCLK_3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN9)
#define GPIO_UART5_CTS_1 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN10)
#define GPIO_I2S0_TXD_3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN10)
#define GPIO_UART5_RTS_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN11)
#define GPIO_I2S0_TX_FS_3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN11)
#define GPIO_I2S0_TX_BCLK_3 (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN12)
#define GPIO_ADC0_SE17 (GPIO_ANALOG | GPIO_PORTE | GPIO_PIN24)
#define GPIO_CAN1_TX_2 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN24)
#define GPIO_UART4_TX_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN24)
#define GPIO_EWM_OUT_3 (GPIO_ALT6 | GPIO_PORTE | GPIO_PIN24)
#define GPIO_ADC0_SE18 (GPIO_ANALOG | GPIO_PORTE | GPIO_PIN25)
#define GPIO_CAN1_RX_2 (GPIO_ALT2 | GPIO_PORTE | GPIO_PIN25)
#define GPIO_UART4_RX_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN25)
#define GPIO_EWM_IN_3 (GPIO_ALT6 | GPIO_PORTE | GPIO_PIN25)
#define GPIO_UART4_CTS_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN26)
#define GPIO_ENET_1588_CLKIN (GPIO_ALT4 | GPIO_PORTE | GPIO_PIN26)
#define GPIO_RTC_CLKOUT (GPIO_ALT6 | GPIO_PORTE | GPIO_PIN26)
#define GPIO_USB_CLKIN (GPIO_ALT7 | GPIO_PORTE | GPIO_PIN26)
#define GPIO_UART4_RTS_2 (GPIO_ALT3 | GPIO_PORTE | GPIO_PIN27)
#define PIN_ADC1_SE4A (PIN_ANALOG | PIN_PORTE | PIN0)
#define PIN_SPI1_PCS1_2 (PIN_ALT2 | PIN_PORTE | PIN0)
#define PIN_UART1_TX_2 (PIN_ALT3 | PIN_PORTE | PIN0)
#define PIN_SDHC0_D1 (PIN_ALT4 | PIN_PORTE | PIN0)
#define PIN_I2C1_SDA_2 (PIN_ALT6 | PIN_PORTE | PIN0)
#define PIN_ADC1_SE5A (PIN_ANALOG | PIN_PORTE | PIN1)
#define PIN_SPI1_SOUT_2 (PIN_ALT2 | PIN_PORTE | PIN1)
#define PIN_UART1_RX_2 (PIN_ALT3 | PIN_PORTE | PIN1)
#define PIN_SDHC0_D0 (PIN_ALT4 | PIN_PORTE | PIN1)
#define PIN_I2C1_SCL_2 (PIN_ALT6 | PIN_PORTE | PIN1)
#define PIN_ADC1_SE6A (PIN_ANALOG | PIN_PORTE | PIN2)
#define PIN_SPI1_SCK_2 (PIN_ALT2 | PIN_PORTE | PIN2)
#define PIN_UART1_CTS_2 (PIN_ALT3 | PIN_PORTE | PIN2)
#define PIN_SDHC0_DCLK (PIN_ALT4 | PIN_PORTE | PIN2)
#define PIN_ADC1_SE7A (PIN_ANALOG | PIN_PORTE | PIN3)
#define PIN_SPI1_SIN_2 (PIN_ALT2 | PIN_PORTE | PIN3)
#define PIN_UART1_RTS_2 (PIN_ALT3 | PIN_PORTE | PIN3)
#define PIN_SDHC0_CMD (PIN_ALT4 | PIN_PORTE | PIN3)
#define PIN_SPI1_PCS0_2 (PIN_ALT2 | PIN_PORTE | PIN4)
#define PIN_UART3_TX_3 (PIN_ALT3 | PIN_PORTE | PIN4)
#define PIN_SDHC0_D3 (PIN_ALT4 | PIN_PORTE | PIN4)
#define PIN_SPI1_PCS2 (PIN_ALT2 | PIN_PORTE | PIN5)
#define PIN_UART3_RX_3 (PIN_ALT3 | PIN_PORTE | PIN5)
#define PIN_SDHC0_D2 (PIN_ALT4 | PIN_PORTE | PIN5)
#define PIN_SPI1_PCS3 (PIN_ALT2 | PIN_PORTE | PIN6)
#define PIN_UART3_CTS_3 (PIN_ALT3 | PIN_PORTE | PIN6)
#define PIN_I2S0_MCLK_3 (PIN_ALT4 | PIN_PORTE | PIN6)
#define PIN_I2S0_CLKIN_3 (PIN_ALT6 | PIN_PORTE | PIN6)
#define PIN_UART3_RTS_3 (PIN_ALT3 | PIN_PORTE | PIN7)
#define PIN_I2S0_RXD_3 (PIN_ALT4 | PIN_PORTE | PIN7)
#define PIN_UART5_TX_2 (PIN_ALT3 | PIN_PORTE | PIN8)
#define PIN_I2S0_RX_FS_3 (PIN_ALT4 | PIN_PORTE | PIN8)
#define PIN_UART5_RX_2 (PIN_ALT3 | PIN_PORTE | PIN9)
#define PIN_I2S0_RX_BCLK_3 (PIN_ALT4 | PIN_PORTE | PIN9)
#define PIN_UART5_CTS_1 (PIN_ALT3 | PIN_PORTE | PIN10)
#define PIN_I2S0_TXD_3 (PIN_ALT4 | PIN_PORTE | PIN10)
#define PIN_UART5_RTS_2 (PIN_ALT3 | PIN_PORTE | PIN11)
#define PIN_I2S0_TX_FS_3 (PIN_ALT4 | PIN_PORTE | PIN11)
#define PIN_I2S0_TX_BCLK_3 (PIN_ALT4 | PIN_PORTE | PIN12)
#define PIN_ADC0_SE17 (PIN_ANALOG | PIN_PORTE | PIN24)
#define PIN_CAN1_TX_2 (PIN_ALT2 | PIN_PORTE | PIN24)
#define PIN_UART4_TX_2 (PIN_ALT3 | PIN_PORTE | PIN24)
#define PIN_EWM_OUT_3 (PIN_ALT6 | PIN_PORTE | PIN24)
#define PIN_ADC0_SE18 (PIN_ANALOG | PIN_PORTE | PIN25)
#define PIN_CAN1_RX_2 (PIN_ALT2 | PIN_PORTE | PIN25)
#define PIN_UART4_RX_2 (PIN_ALT3 | PIN_PORTE | PIN25)
#define PIN_EWM_IN_3 (PIN_ALT6 | PIN_PORTE | PIN25)
#define PIN_UART4_CTS_2 (PIN_ALT3 | PIN_PORTE | PIN26)
#define PIN_ENET_1588_CLKIN (PIN_ALT4 | PIN_PORTE | PIN26)
#define PIN_RTC_CLKOUT (PIN_ALT6 | PIN_PORTE | PIN26)
#define PIN_USB_CLKIN (PIN_ALT7 | PIN_PORTE | PIN26)
#define PIN_UART4_RTS_2 (PIN_ALT3 | PIN_PORTE | PIN27)
#else
/* The pin muxing for other K60 parts is defined in other documents */

24
arch/arm/src/kinetis/kinetis_lowputc.c Executable file → Normal file
View File

@ -226,28 +226,28 @@ void kinetis_lowsetup(void)
/* Configure UART pins for the all enabled UARTs */
#ifdef CONFIG_KINETIS_UART0
kinetis_configgpio(GPIO_UART0_TX);
kinetis_configgpio(GPIO_UART0_RX);
kinetis_pinconfig(PIN_UART0_TX);
kinetis_pinconfig(PIN_UART0_RX);
#endif
#ifdef CONFIG_KINETIS_UART1
kinetis_configgpio(GPIO_UART1_TX);
kinetis_configgpio(GPIO_UART1_RX);
kinetis_pinconfig(PIN_UART1_TX);
kinetis_pinconfig(PIN_UART1_RX);
#endif
#ifdef CONFIG_KINETIS_UART2
kinetis_configgpio(GPIO_UART2_TX);
kinetis_configgpio(GPIO_UART2_RX);
kinetis_pinconfig(PIN_UART2_TX);
kinetis_pinconfig(PIN_UART2_RX);
#endif
#ifdef CONFIG_KINETIS_UART3
kinetis_configgpio(GPIO_UART3_TX);
kinetis_configgpio(GPIO_UART3_RX);
kinetis_pinconfig(PIN_UART3_TX);
kinetis_pinconfig(PIN_UART3_RX);
#endif
#ifdef CONFIG_KINETIS_UART4
kinetis_configgpio(GPIO_UART4_TX);
kinetis_configgpio(GPIO_UART4_RX);
kinetis_pinconfig(PIN_UART4_TX);
kinetis_pinconfig(PIN_UART4_RX);
#endif
#ifdef CONFIG_KINETIS_UART5
kinetis_configgpio(GPIO_UART5_TX);
kinetis_configgpio(GPIO_UART5_RX);
kinetis_pinconfig(PIN_UART5_TX);
kinetis_pinconfig(PIN_UART5_RX);
#endif
/* Configure the console (only) now. Other UARTs will be configured

View File

@ -1,5 +1,5 @@
/****************************************************************************
* arch/arm/src/kinetis/kinetis_gpio.c
* arch/arm/src/kinetis/kinetis_pin.c
*
* Copyright (C) 2011 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
@ -70,14 +70,15 @@
****************************************************************************/
/****************************************************************************
* Name: kinetis_configgpio
* Name: kinetis_pinconfig
*
* Description:
* Configure a GPIO pin based on bit-encoded description of the pin.
* Configure a PIN based on bit-encoded description of the pin. NOTE that
* DMA/interrupts are disabled at the initial PIN configuratin.
*
****************************************************************************/
int kinetis_configgpio(uint32_t cfgset)
int kinetis_pinconfig(uint32_t cfgset)
{
uintptr_t base;
uint32_t regval;
@ -87,8 +88,8 @@ int kinetis_configgpio(uint32_t cfgset)
/* Get the port number and pin number */
port = (cfgset & _GPIO_PORT_MASK) >> _GPIO_PORT_SHIFT;
pin = (cfgset & _GPIO_PIN_MASK) >> _GPIO_PIN_SHIFT;
port = (cfgset & _PIN_PORT_MASK) >> _PIN_PORT_SHIFT;
pin = (cfgset & _PIN_MASK) >> _PIN_SHIFT;
DEBUGASSERT(port < KINETIS_NPORTS);
if (port < KINETIS_NPORTS)
@ -99,13 +100,13 @@ int kinetis_configgpio(uint32_t cfgset)
/* Get the port mode */
mode = (cfgset & _GPIO_MODE_MASK) >> _GPIO_MODE_SHIFT;
mode = (cfgset & _PIN_MODE_MASK) >> _PIN_MODE_SHIFT;
/* Special case analog port mode. In this case, not of the digital
* options are applicable.
*/
if (mode == _GPIO_MODE_ANALOG)
if (mode == _PIN_MODE_ANALOG)
{
/* Set the analog mode with all digital options zeroed */
@ -117,44 +118,40 @@ int kinetis_configgpio(uint32_t cfgset)
/* Configure the digital pin options */
regval = (mode << PORT_PCR_MUX_SHIFT);
if ((cfgset & _GPIO_IO_MASK) == _GPIO_INPUT)
if ((cfgset & _PIN_IO_MASK) == _PIN_INPUT)
{
/* Handle input-only digital options */
/* Check for pull-up or pull-down */
if ((cfgset & _GPIO_INPUT_PULLMASK) == _GPIO_INPUT_PULLDOWN)
if ((cfgset & _PIN_INPUT_PULLMASK) == _PIN_INPUT_PULLDOWN)
{
regval |= PORT_PCR_PE;
}
else if ((cfgset & _GPIO_INPUT_PULLMASK) == _GPIO_INPUT_PULLUP)
else if ((cfgset & _PIN_INPUT_PULLMASK) == _PIN_INPUT_PULLUP)
{
regval |= (PORT_PCR_PE | PORT_PCR_PS);
}
# warning "Missing interrupt configuration logic"
}
else
{
/* Handle output-only digital options */
/* Check for slow slew rate setting */
if ((cfgset & _GPIO_OUTPUT_SLEW_MASK) == _GPIO_OUTPUT_SLOW)
if ((cfgset & _PIN_OUTPUT_SLEW_MASK) == _PIN_OUTPUT_SLOW)
{
regval |= PORT_PCR_SRE;
}
/* Check for open drain output */
if ((cfgset & _GPIO_OUTPUT_OD_MASK) == _GPIO_OUTPUT_OPENDRAIN)
if ((cfgset & _PIN_OUTPUT_OD_MASK) == _PIN_OUTPUT_OPENDRAIN)
{
regval |= PORT_PCR_ODE;
}
/* Check for high drive output */
if ((cfgset & _GPIO_OUTPUT_DRIVE_MASK) == _GPIO_OUTPUT_HIGHDRIVE)
if ((cfgset & _PIN_OUTPUT_DRIVE_MASK) == _PIN_OUTPUT_HIGHDRIVE)
{
regval |= PORT_PCR_DSE;
}
@ -164,7 +161,7 @@ int kinetis_configgpio(uint32_t cfgset)
* is valid in all digital pin muxing modes.
*/
if ((cfgset & GPIO_PASV_FILTER) != 0)
if ((cfgset & PIN_PASV_FILTER) != 0)
{
regval |= PORT_PCR_PFE;
}
@ -178,7 +175,7 @@ int kinetis_configgpio(uint32_t cfgset)
*/
regval = getreg32(base + KINETIS_PORT_DFER_OFFSET);
if ((cfgset & GPIO_DIG_FILTER) != 0)
if ((cfgset & PIN_DIG_FILTER) != 0)
{
regval |= (1 << pin);
}
@ -190,20 +187,20 @@ int kinetis_configgpio(uint32_t cfgset)
/* Additional configuration for the case of Alternative 1 (GPIO) modes */
if (mode == _GPIO_MODE_GPIO)
if (mode == _PIN_MODE_GPIO)
{
/* Set the GPIO port direction */
base = KINETIS_GPIO_BASE(port);
regval = getreg32(base + KINETIS_GPIO_PDDR_OFFSET);
if ((cfgset & _GPIO_IO_MASK) == _GPIO_INPUT)
if ((cfgset & _PIN_IO_MASK) == _PIN_INPUT)
{
/* Select GPIO input */
regval &= ~(1 << pin);
putreg32(regval, base + KINETIS_GPIO_PDDR_OFFSET);
}
else /* if ((cfgset & _GPIO_IO_MASK) == _GPIO_OUTPUT) */
else /* if ((cfgset & _PIN_IO_MASK) == _PIN_OUTPUT) */
{
/* Select GPIO input */
@ -223,7 +220,7 @@ int kinetis_configgpio(uint32_t cfgset)
}
/************************************************************************************
* Name: kinetis_configfilter
* Name: kinetis_pinfilter
*
* Description:
* Configure the digital filter associated with a port. The digital filter
@ -237,7 +234,7 @@ int kinetis_configgpio(uint32_t cfgset)
*
************************************************************************************/
int kinetis_configfilter(unsigned int port, bool lpo, unsigned int width)
int kinetis_pinfilter(unsigned int port, bool lpo, unsigned int width)
{
uintptr_t base;
uint32_t regval;
@ -262,83 +259,3 @@ int kinetis_configfilter(unsigned int port, bool lpo, unsigned int width)
}
return -EINVAL;
}
/****************************************************************************
* Name: kinetis_gpiowrite
*
* Description:
* Write one or zero to the selected GPIO pin
*
****************************************************************************/
void kinetis_gpiowrite(uint32_t pinset, bool value)
{
uintptr_t base;
unsigned int port;
unsigned int pin;
DEBUGASSERT((pinset & _GPIO_IO_MASK) == _GPIO_OUTPUT);
/* Get the port number and pin number */
port = (pinset & _GPIO_PORT_MASK) >> _GPIO_PORT_SHIFT;
pin = (pinset & _GPIO_PIN_MASK) >> _GPIO_PIN_SHIFT;
DEBUGASSERT(port < KINETIS_NPORTS);
if (port < KINETIS_NPORTS)
{
/* Get the base address of GPIO block for this port */
base = KINETIS_GPIO_BASE(port);
/* Set or clear the output */
if (value)
{
putreg32((1 << pin), base + KINETIS_GPIO_PSOR_OFFSET);
}
else
{
putreg32((1 << pin), base + KINETIS_GPIO_PCOR_OFFSET);
}
}
}
/****************************************************************************
* Name: kinetis_gpioread
*
* Description:
* Read one or zero from the selected GPIO pin
*
****************************************************************************/
bool kinetis_gpioread(uint32_t pinset)
{
uintptr_t base;
uint32_t regval;
unsigned int port;
unsigned int pin;
bool ret = false;
DEBUGASSERT((pinset & _GPIO_IO_MASK) == _GPIO_INPUT);
/* Get the port number and pin number */
port = (pinset & _GPIO_PORT_MASK) >> _GPIO_PORT_SHIFT;
pin = (pinset & _GPIO_PIN_MASK) >> _GPIO_PIN_SHIFT;
DEBUGASSERT(port < KINETIS_NPORTS);
if (port < KINETIS_NPORTS)
{
/* Get the base address of GPIO block for this port */
base = KINETIS_GPIO_BASE(port);
/* return the state of the pin */
regval = getreg32(base + KINETIS_GPIO_PDIR_OFFSET);
ret = ((regval & (1 << pin)) != 0);
}
return ret;
}

View File

@ -0,0 +1,146 @@
/****************************************************************************
* arch/arm/src/kinetis/kinetis_pindma.c
*
* Copyright (C) 2011 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <arch/board/board.h>
#include <nuttx/config.h>
#include <nuttx/arch.h>
#include "up_internal.h"
#ifdef CONFIG_KINETIS_DMA
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/****************************************************************************
* Private Data
****************************************************************************/
/****************************************************************************
* Private Functions
****************************************************************************/
/****************************************************************************
* Public Functions
****************************************************************************/
/************************************************************************************
* Name: kinetis_pindmaenable
*
* Description:
* Enable DMA for specified pin
*
************************************************************************************/
void kinetis_pindmaenable(uint32_t pinset)
{
uintptr_t base;
uint32_t regval;
unsigned int port;
unsigned int pin;
/* Get the port number and pin number */
port = (pinset & _PIN_PORT_MASK) >> _PIN_PORT_SHIFT;
pin = (pinset & _PIN_MASK) >> _PIN_SHIFT;
DEBUGASSERT(port < KINETIS_NPORTS);
if (port < KINETIS_NPORTS)
{
/* Modify the IRQC field of the port PCR register in order to enable DMA. */
regval = getreg32(base + KINETIS_PORT_PCR_OFFSET(pin));
regval &= ~PORT_PCR_IRQC_MASK;
switch (pinset & _PIN_INT_MASK)
{
case PIN_DMA_RISING : /* DMA Request on rising edge */
regval |= PORT_PCR_IRQC_DMARISING;
break;
case PIN_DMA_FALLING : /* DMA Request on falling edge */
regval |= PORT_PCR_IRQC_DMAFALLING;
break;
case PIN_DMA_BOTH : /* DMA Request on either edge */
regval |= PORT_PCR_IRQC_DMABOTH;
break;
default:
return;
}
putreg32(regval, base + KINETIS_PORT_PCR_OFFSET(pin));
}
}
/************************************************************************************
* Name: kinetis_pindmadisable
*
* Description:
* Disable DMA for specified pin
*
************************************************************************************/
void kinetis_pindmadisable(uint32_t pinset)
{
uintptr_t base;
uint32_t regval;
unsigned int port;
unsigned int pin;
/* Get the port number and pin number */
port = (pinset & _PIN_PORT_MASK) >> _PIN_PORT_SHIFT;
pin = (pinset & _PIN_MASK) >> _PIN_SHIFT;
DEBUGASSERT(port < KINETIS_NPORTS);
if (port < KINETIS_NPORTS)
{
/* Clear the IRQC field of the port PCR register in order to disable DMA. */
regval = getreg32(base + KINETIS_PORT_PCR_OFFSET(pin));
regval &= ~PORT_PCR_IRQC_MASK;
putreg32(regval, base + KINETIS_PORT_PCR_OFFSET(pin));
}
}
#endif

View File

@ -0,0 +1,151 @@
/****************************************************************************
* arch/arm/src/kinetis/kinetis_pingpio.c
*
* Copyright (C) 2011 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <arch/board/board.h>
#include <assert.h>
#include <errno.h>
#include <nuttx/arch.h>
#include "up_arch.h"
#include "up_internal.h"
#include "kinetis_memorymap.h"
#include "kinetis_internal.h"
#include "kinetis_gpio.h"
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/****************************************************************************
* Private Data
****************************************************************************/
/****************************************************************************
* Private Functions
****************************************************************************/
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: kinetis_gpiowrite
*
* Description:
* Write one or zero to the selected GPIO pin
*
****************************************************************************/
void kinetis_gpiowrite(uint32_t pinset, bool value)
{
uintptr_t base;
unsigned int port;
unsigned int pin;
DEBUGASSERT((pinset & _PIN_MODE_MASK) == _PIN_MODE_GPIO);
DEBUGASSERT((pinset & _PIN_IO_MASK) == _PIN_OUTPUT);
/* Get the port number and pin number */
port = (pinset & _PIN_PORT_MASK) >> _PIN_PORT_SHIFT;
pin = (pinset & _PIN_MASK) >> _PIN_SHIFT;
DEBUGASSERT(port < KINETIS_NPORTS);
if (port < KINETIS_NPORTS)
{
/* Get the base address of GPIO block for this port */
base = KINETIS_GPIO_BASE(port);
/* Set or clear the output */
if (value)
{
putreg32((1 << pin), base + KINETIS_GPIO_PSOR_OFFSET);
}
else
{
putreg32((1 << pin), base + KINETIS_GPIO_PCOR_OFFSET);
}
}
}
/****************************************************************************
* Name: kinetis_gpioread
*
* Description:
* Read one or zero from the selected GPIO pin
*
****************************************************************************/
bool kinetis_gpioread(uint32_t pinset)
{
uintptr_t base;
uint32_t regval;
unsigned int port;
unsigned int pin;
bool ret = false;
DEBUGASSERT((pinset & _PIN_MODE_MASK) == _PIN_MODE_GPIO);
DEBUGASSERT((pinset & _PIN_IO_MASK) == _PIN_INPUT);
/* Get the port number and pin number */
port = (pinset & _PIN_PORT_MASK) >> _PIN_PORT_SHIFT;
pin = (pinset & _PIN_MASK) >> _PIN_SHIFT;
DEBUGASSERT(port < KINETIS_NPORTS);
if (port < KINETIS_NPORTS)
{
/* Get the base address of GPIO block for this port */
base = KINETIS_GPIO_BASE(port);
/* return the state of the pin */
regval = getreg32(base + KINETIS_GPIO_PDIR_OFFSET);
ret = ((regval & (1 << pin)) != 0);
}
return ret;
}

View File

@ -0,0 +1,211 @@
/****************************************************************************
* arch/arm/src/kinetis/kinetis_pinirq.c
*
* Copyright (C) 2011 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name NuttX nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/****************************************************************************
* Included Files
****************************************************************************/
#include <arch/board/board.h>
#include <nuttx/config.h>
#include <nuttx/arch.h>
#include "up_internal.h"
#ifdef CONFIG_GPIO_IRQ
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Configuration ************************************************************/
#ifdndef CONFIG_KINESIS_NGPIOIRQS
# define CONFIG_KINESIS_NGPIOIRQS 8
#endif
/****************************************************************************
* Private Types
****************************************************************************/
/****************************************************************************
* Private Data
****************************************************************************/
/****************************************************************************
* Private Functions
****************************************************************************/
/****************************************************************************
* Public Functions
****************************************************************************/
/************************************************************************************
* Name: kinetis_pinirqinitialize
*
* Description:
* Initialize logic to support a second level of interrupt decoding for GPIO pins.
*
************************************************************************************/
void kinetis_pinirqinitialize(void)
{
# warning "Missing logic"
}
/************************************************************************************
* Name: kinetis_pinirqconfig
*
* Description:
* Sets/clears PIN and interrupt triggers. On return PIN interrupts are always
* disabled.
*
* Parameters:
* - pinset: Pin configuration
* - pinisr: Pin interrupt service routine
*
* Returns:
* The previous value of the interrupt handler function pointer. This value may,
* for example, be used to restore the previous handler when multiple handlers are
* used.
*
************************************************************************************/
xcpt_t kinetis_pinirqconfig(uint32_t pinset, xcpt_t pinisr)
{
/* It only makes sense to call this function for input pins that are configured
* as interrupts.
*/
DEBUGASSERT((pinset & _PIN_INTDMA_MASK) == _PIN_INTERRUPT);
DEBUGASSERT((pinset & _PIN_IO_MASK) == _PIN_INPUT);
# warning "Missing logic"
return NULL;
}
/************************************************************************************
* Name: kinetis_pinirqenable
*
* Description:
* Enable the interrupt for specified pin IRQ
*
************************************************************************************/
void kinetis_pinirqenable(uint32_t pinset)
{
uintptr_t base;
uint32_t regval;
unsigned int port;
unsigned int pin;
/* Get the port number and pin number */
port = (pinset & _PIN_PORT_MASK) >> _PIN_PORT_SHIFT;
pin = (pinset & _PIN_MASK) >> _PIN_SHIFT;
DEBUGASSERT(port < KINETIS_NPORTS);
if (port < KINETIS_NPORTS)
{
/* Modify the IRQC field of the port PCR register in order to enable
* the interrupt.
*/
regval = getreg32(base + KINETIS_PORT_PCR_OFFSET(pin));
regval &= ~PORT_PCR_IRQC_MASK;
switch (pinset & _PIN_INT_MASK)
{
case PIN_INT_ZERO : /* Interrupt when logic zero */
regval |= PORT_PCR_IRQC_ZERO;
break;
case PIN_INT_RISING : /* Interrupt on rising edge*/
regval |= PORT_PCR_IRQC_RISING;
break;
case PIN_INT_BOTH : /* Interrupt on falling edge */
regval |= PORT_PCR_IRQC_FALLING;
break;
case PIN_DMA_FALLING : /* nterrupt on either edge */
regval |= PORT_PCR_IRQC_BOTH;
break;
case PIN_INT_ONE : /* IInterrupt when logic one */
regval |= PORT_PCR_IRQC_ONE;
break;
default:
return;
}
putreg32(regval, base + KINETIS_PORT_PCR_OFFSET(pin));
}
}
/************************************************************************************
* Name: kinetis_pinirqdisable
*
* Description:
* Disable the interrupt for specified pin
*
************************************************************************************/
void kinetis_pinirqdisable(uint32_t pinset)
{
uintptr_t base;
uint32_t regval;
unsigned int port;
unsigned int pin;
/* Get the port number and pin number */
port = (pinset & _PIN_PORT_MASK) >> _PIN_PORT_SHIFT;
pin = (pinset & _PIN_MASK) >> _PIN_SHIFT;
DEBUGASSERT(port < KINETIS_NPORTS);
if (port < KINETIS_NPORTS)
{
/* Clear the IRQC field of the port PCR register in order to disable
* the interrupt.
*/
regval = getreg32(base + KINETIS_PORT_PCR_OFFSET(pin));
regval &= ~PORT_PCR_IRQC_MASK;
putreg32(regval, base + KINETIS_PORT_PCR_OFFSET(pin));
}
}
#endif /* CONFIG_GPIO_IRQ */

0
arch/arm/src/kinetis/kinetis_start.c Executable file → Normal file
View File

0
arch/arm/src/kinetis/kinetis_timerisr.c Executable file → Normal file
View File

0
arch/arm/src/kinetis/kinetis_vectors.S Executable file → Normal file
View File

View File

@ -608,9 +608,6 @@ bool stm32_gpioread(uint32_t pinset)
* Description:
* Sets/clears GPIO based event and interrupt triggers.
*
* Limitations:
* Presently single gpio can configured on the same EXTI line.
*
* Parameters:
* - pinset: gpio pin configuration
* - rising/falling edge: enables

View File

@ -229,9 +229,6 @@ EXTERN bool stm32_gpioread(uint32_t pinset);
* Description:
* Sets/clears GPIO based event and interrupt triggers.
*
* Limitations:
* Presently single gpio can configured on the same EXTI line.
*
* Parameters:
* - pinset: gpio pin configuration
* - rising/falling edge: enables

View File

@ -106,14 +106,14 @@
* maps to the correct alternative.
*/
#warning "Revisit: This only only here to get a clean compiliation"
#define GPIO_UART0_RX GPIO_UART0_RX_1
#define GPIO_UART0_TX GPIO_UART0_TX_1
#define GPIO_UART1_RX GPIO_UART1_RX_1
#define GPIO_UART1_TX GPIO_UART1_TX_1
#define GPIO_UART3_RX GPIO_UART3_RX_1
#define GPIO_UART3_TX GPIO_UART3_TX_1
#define GPIO_UART4_RX GPIO_UART4_RX_1
#define GPIO_UART4_TX GPIO_UART4_TX_1
#define PIN_UART0_RX PIN_UART0_RX_1
#define PIN_UART0_TX PIN_UART0_TX_1
#define PIN_UART1_RX PIN_UART1_RX_1
#define PIN_UART1_TX PIN_UART1_TX_1
#define PIN_UART3_RX PIN_UART3_RX_1
#define PIN_UART3_TX PIN_UART3_TX_1
#define PIN_UART4_RX PIN_UART4_RX_1
#define PIN_UART4_TX PIN_UART4_TX_1
/************************************************************************************
* Public Data

View File

@ -107,16 +107,16 @@
* maps to the correct alternative.
*/
#warning "Revisit: This only only here to get a clean compiliation"
#define GPIO_UART0_RX GPIO_UART0_RX_1
#define GPIO_UART0_TX GPIO_UART0_TX_1
#define GPIO_UART1_RX GPIO_UART1_RX_1
#define GPIO_UART1_TX GPIO_UART1_TX_1
#define GPIO_UART3_RX GPIO_UART3_RX_1
#define GPIO_UART3_TX GPIO_UART3_TX_1
#define GPIO_UART4_RX GPIO_UART4_RX_1
#define GPIO_UART4_TX GPIO_UART4_TX_1
#define GPIO_UART5_RX GPIO_UART5_RX_1
#define GPIO_UART5_TX GPIO_UART5_TX_1
#define PIN_UART0_RX PIN_UART0_RX_1
#define PIN_UART0_TX PIN_UART0_TX_1
#define PIN_UART1_RX PIN_UART1_RX_1
#define PIN_UART1_TX PIN_UART1_TX_1
#define PIN_UART3_RX PIN_UART3_RX_1
#define PIN_UART3_TX PIN_UART3_TX_1
#define PIN_UART4_RX PIN_UART4_RX_1
#define PIN_UART4_TX PIN_UART4_TX_1
#define PIN_UART5_RX PIN_UART5_RX_1
#define PIN_UART5_TX PIN_UART5_TX_1
/************************************************************************************
* Public Data