summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-08-14 22:47:44 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-08-14 22:47:44 +0000
commitf10e8daef8081c68439d129dc02e79e87eeffde5 (patch)
tree4d6301f5b69911b0e4a5a5fcb90686c2518b7051
parente5a1789191a2f2b1157acc87e94e6fad58cb4b18 (diff)
downloadpx4-nuttx-f10e8daef8081c68439d129dc02e79e87eeffde5.tar.gz
px4-nuttx-f10e8daef8081c68439d129dc02e79e87eeffde5.tar.bz2
px4-nuttx-f10e8daef8081c68439d129dc02e79e87eeffde5.zip
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
-rw-r--r--nuttx/arch/arm/src/kinetis/Make.defs14
-rw-r--r--[-rwxr-xr-x]nuttx/arch/arm/src/kinetis/kinetis_clrpend.c0
-rw-r--r--[-rwxr-xr-x]nuttx/arch/arm/src/kinetis/kinetis_config.h0
-rw-r--r--[-rwxr-xr-x]nuttx/arch/arm/src/kinetis/kinetis_idle.c0
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_internal.h534
-rw-r--r--[-rwxr-xr-x]nuttx/arch/arm/src/kinetis/kinetis_irq.c20
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_k40pinmux.h866
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_k60pinmux.h782
-rw-r--r--[-rwxr-xr-x]nuttx/arch/arm/src/kinetis/kinetis_lowputc.c24
-rwxr-xr-xnuttx/arch/arm/src/kinetis/kinetis_pin.c (renamed from nuttx/arch/arm/src/kinetis/kinetis_gpio.c)127
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_pindma.c146
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_pingpio.c151
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_pinirq.c211
-rw-r--r--[-rwxr-xr-x]nuttx/arch/arm/src/kinetis/kinetis_start.c0
-rw-r--r--[-rwxr-xr-x]nuttx/arch/arm/src/kinetis/kinetis_timerisr.c0
-rw-r--r--[-rwxr-xr-x]nuttx/arch/arm/src/kinetis/kinetis_vectors.S0
-rwxr-xr-xnuttx/arch/arm/src/stm32/stm32_gpio.c3
-rw-r--r--nuttx/arch/arm/src/stm32/stm32_gpio.h3
-rwxr-xr-xnuttx/configs/kwikstik-k40/include/board.h16
-rwxr-xr-xnuttx/configs/twr-k60n512/include/board.h20
20 files changed, 1646 insertions, 1271 deletions
diff --git a/nuttx/arch/arm/src/kinetis/Make.defs b/nuttx/arch/arm/src/kinetis/Make.defs
index 3af81c78f..2b48320ff 100644
--- a/nuttx/arch/arm/src/kinetis/Make.defs
+++ b/nuttx/arch/arm/src/kinetis/Make.defs
@@ -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)
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_clrpend.c b/nuttx/arch/arm/src/kinetis/kinetis_clrpend.c
index 98997bf2e..98997bf2e 100755..100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_clrpend.c
+++ b/nuttx/arch/arm/src/kinetis/kinetis_clrpend.c
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_config.h b/nuttx/arch/arm/src/kinetis/kinetis_config.h
index bad3fbf3c..bad3fbf3c 100755..100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_config.h
+++ b/nuttx/arch/arm/src/kinetis/kinetis_config.h
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_idle.c b/nuttx/arch/arm/src/kinetis/kinetis_idle.c
index 8fc914f3f..8fc914f3f 100755..100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_idle.c
+++ b/nuttx/arch/arm/src/kinetis/kinetis_idle.c
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_internal.h b/nuttx/arch/arm/src/kinetis/kinetis_internal.h
index f9fb87150..b743dac7e 100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_internal.h
+++ b/nuttx/arch/arm/src/kinetis/kinetis_internal.h
@@ -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 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_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 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 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 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 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 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_ANALOG _PIN_MODE_ANALOG
+
+#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 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 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 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 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 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 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-- ---- ---- ---- ----
+ * ---- ---- iiii i--- ---- ---- ---- ----
*
- * Passive Filter and digital filter enable are valid in all digital pin
- * muxing modes.
+ * The pin interrupt configuration is valid in all digital pin muxing modes
+ * (restricted to inputs).
*/
-#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:
+#define _PIN_INT_SHIFT (20)
+#define _PIN_INT_MASK (31 << _PIN_INT_SHIFT)
+
+#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 */
+
+/* Two bits is used to enable the filter options:
*
- * ---- ---- iiii ---- ---- ---- ---- ----
+ * ---- ---- ---- -fd- ---- ---- ---- ----
*
- * The pin interrupt configuration is valid in all digital pin muxing modes
- * (restricted to inputs).
+ * Passive Filter and digital filter enable are valid in all digital pin
+ * muxing modes.
*/
-#define _GPIO_INT_SHIFT (20)
-#define _GPIO_INT_MASK (15 << _GPIO_MODE_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 _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)
-
+#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:
*
- * oooo mmmf iiii ---- ---- -ppp ---b bbbb
+ * ---- ---- ---- ---- ---- -ppp ---- ----
*/
-#define _GPIO_PORT_SHIFT (8) /* Bits 8-10: port number */
-#define _GPIO_PORT_MASK (7 << _GPIO_PORT_SHIFT)
-
-#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 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_SHIFT (0) /* Bits 0-4: port number */
+#define _PIN_MASK (31 << _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:
+ * Initialize logic to support a second level of interrupt decoding for GPIO pins.
+ *
+ ************************************************************************************/
+
+#ifdef CONFIG_GPIO_IRQ
+EXTERN void kinetis_pinirqinitialize(void);
+#else
+# define kinetis_pinirqinitialize()
+#endif
+
+/************************************************************************************
+ * 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.
+ *
+ ************************************************************************************/
+
+EXTERN xcpt_t kinetis_pinirqconfig(uint32_t pinset, xcpt_t pinisr);
+
+/************************************************************************************
+ * Name: kinetis_pinirqenable
*
* Description:
- * Enable the interrupt for specified GPIO IRQ
+ * Enable the interrupt for specified pin IRQ
*
************************************************************************************/
#ifdef CONFIG_GPIO_IRQ
-EXTERN void kinetis_gpioirqenable(int irq);
+EXTERN void kinetis_pinirqenable(uint32_t pinset);
#else
-# define kinetis_gpioirqenable(irq)
+# define kinetis_pinirqenable(pinset)
#endif
/************************************************************************************
- * Name: kinetis_gpioirqdisable
+ * Name: kinetis_pinirqdisable
*
* Description:
- * Disable the interrupt for specified GPIO IRQ
+ * Disable the interrupt for specified pin
*
************************************************************************************/
#ifdef CONFIG_GPIO_IRQ
-EXTERN void kinetis_gpioirqdisable(int irq);
+EXTERN void kinetis_pinirqdisable(uint32_t pinset);
#else
-# define kinetis_gpioirqdisable(irq)
+# 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_dumpgpio
+ * 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
/************************************************************************************
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_irq.c b/nuttx/arch/arm/src/kinetis/kinetis_irq.c
index 58a6270f4..f89c63584 100755..100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_irq.c
+++ b/nuttx/arch/arm/src/kinetis/kinetis_irq.c
@@ -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);
}
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_k40pinmux.h b/nuttx/arch/arm/src/kinetis/kinetis_k40pinmux.h
index 282fdafe5..13a4da421 100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_k40pinmux.h
+++ b/nuttx/arch/arm/src/kinetis/kinetis_k40pinmux.h
@@ -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 */
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_k60pinmux.h b/nuttx/arch/arm/src/kinetis/kinetis_k60pinmux.h
index 128e89d8d..55a5df47d 100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_k60pinmux.h
+++ b/nuttx/arch/arm/src/kinetis/kinetis_k60pinmux.h
@@ -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 */
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_lowputc.c b/nuttx/arch/arm/src/kinetis/kinetis_lowputc.c
index e0095c11f..20d76013b 100755..100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_lowputc.c
+++ b/nuttx/arch/arm/src/kinetis/kinetis_lowputc.c
@@ -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
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_gpio.c b/nuttx/arch/arm/src/kinetis/kinetis_pin.c
index cb89bc932..cdd9e19c1 100755
--- a/nuttx/arch/arm/src/kinetis/kinetis_gpio.c
+++ b/nuttx/arch/arm/src/kinetis/kinetis_pin.c
@@ -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;
-}
-
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_pindma.c b/nuttx/arch/arm/src/kinetis/kinetis_pindma.c
new file mode 100644
index 000000000..00d9a07e6
--- /dev/null
+++ b/nuttx/arch/arm/src/kinetis/kinetis_pindma.c
@@ -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
+
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_pingpio.c b/nuttx/arch/arm/src/kinetis/kinetis_pingpio.c
new file mode 100644
index 000000000..23829c6d7
--- /dev/null
+++ b/nuttx/arch/arm/src/kinetis/kinetis_pingpio.c
@@ -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;
+}
+
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_pinirq.c b/nuttx/arch/arm/src/kinetis/kinetis_pinirq.c
new file mode 100644
index 000000000..fdb9f8dc8
--- /dev/null
+++ b/nuttx/arch/arm/src/kinetis/kinetis_pinirq.c
@@ -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 */
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_start.c b/nuttx/arch/arm/src/kinetis/kinetis_start.c
index 1baa5e626..1baa5e626 100755..100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_start.c
+++ b/nuttx/arch/arm/src/kinetis/kinetis_start.c
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_timerisr.c b/nuttx/arch/arm/src/kinetis/kinetis_timerisr.c
index 62758ee9c..62758ee9c 100755..100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_timerisr.c
+++ b/nuttx/arch/arm/src/kinetis/kinetis_timerisr.c
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_vectors.S b/nuttx/arch/arm/src/kinetis/kinetis_vectors.S
index 017483bb2..017483bb2 100755..100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_vectors.S
+++ b/nuttx/arch/arm/src/kinetis/kinetis_vectors.S
diff --git a/nuttx/arch/arm/src/stm32/stm32_gpio.c b/nuttx/arch/arm/src/stm32/stm32_gpio.c
index 159f5d4f6..80a24b12e 100755
--- a/nuttx/arch/arm/src/stm32/stm32_gpio.c
+++ b/nuttx/arch/arm/src/stm32/stm32_gpio.c
@@ -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
diff --git a/nuttx/arch/arm/src/stm32/stm32_gpio.h b/nuttx/arch/arm/src/stm32/stm32_gpio.h
index e30bb0ac9..2c1d3bcb2 100644
--- a/nuttx/arch/arm/src/stm32/stm32_gpio.h
+++ b/nuttx/arch/arm/src/stm32/stm32_gpio.h
@@ -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
diff --git a/nuttx/configs/kwikstik-k40/include/board.h b/nuttx/configs/kwikstik-k40/include/board.h
index 97fd786ac..cfd32b0fb 100755
--- a/nuttx/configs/kwikstik-k40/include/board.h
+++ b/nuttx/configs/kwikstik-k40/include/board.h
@@ -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
diff --git a/nuttx/configs/twr-k60n512/include/board.h b/nuttx/configs/twr-k60n512/include/board.h
index efe16bb94..206a82573 100755
--- a/nuttx/configs/twr-k60n512/include/board.h
+++ b/nuttx/configs/twr-k60n512/include/board.h
@@ -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