diff --git a/arch/arm/src/kinetis/Make.defs b/arch/arm/src/kinetis/Make.defs
index 3af81c78f45dbf0da79b08b54f8f3afe67eef405..2b48320ff4a04f3e57a4e0971b28c4a7ca08af76 100644
--- a/arch/arm/src/kinetis/Make.defs
+++ b/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/arch/arm/src/kinetis/kinetis_clrpend.c b/arch/arm/src/kinetis/kinetis_clrpend.c
old mode 100755
new mode 100644
diff --git a/arch/arm/src/kinetis/kinetis_config.h b/arch/arm/src/kinetis/kinetis_config.h
old mode 100755
new mode 100644
diff --git a/arch/arm/src/kinetis/kinetis_idle.c b/arch/arm/src/kinetis/kinetis_idle.c
old mode 100755
new mode 100644
diff --git a/arch/arm/src/kinetis/kinetis_internal.h b/arch/arm/src/kinetis/kinetis_internal.h
index f9fb87150b59543e9e1fdd75f964f65182872e17..b743dac7ee60d26cae16a53c8cb317ba6c0da0bd 100644
--- a/arch/arm/src/kinetis/kinetis_internal.h
+++ b/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/arch/arm/src/kinetis/kinetis_irq.c b/arch/arm/src/kinetis/kinetis_irq.c
old mode 100755
new mode 100644
index 58a6270f47b87fc885bd332211d3faf9879dd83a..f89c635849e3ea9dce0e9df341b593bdf7c4c611
--- a/arch/arm/src/kinetis/kinetis_irq.c
+++ b/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/arch/arm/src/kinetis/kinetis_k40pinmux.h b/arch/arm/src/kinetis/kinetis_k40pinmux.h
index 282fdafe57aa1485e596dd6835f8ce583b527f61..13a4da4213c19819a245bc8dd553c4dd9164f549 100644
--- a/arch/arm/src/kinetis/kinetis_k40pinmux.h
+++ b/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/arch/arm/src/kinetis/kinetis_k60pinmux.h b/arch/arm/src/kinetis/kinetis_k60pinmux.h
index 128e89d8d5ec59c813bc2d00979066989ee79d6f..55a5df47d7cfd34627e0c6abb227822abc7266e4 100644
--- a/arch/arm/src/kinetis/kinetis_k60pinmux.h
+++ b/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/arch/arm/src/kinetis/kinetis_lowputc.c b/arch/arm/src/kinetis/kinetis_lowputc.c
old mode 100755
new mode 100644
index e0095c11f8d4f7922af2f3a86e952867f7f35e12..20d76013bad4004f07fcd09105c5b87ef5fdd83e
--- a/arch/arm/src/kinetis/kinetis_lowputc.c
+++ b/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/arch/arm/src/kinetis/kinetis_gpio.c b/arch/arm/src/kinetis/kinetis_pin.c
similarity index 69%
rename from arch/arm/src/kinetis/kinetis_gpio.c
rename to arch/arm/src/kinetis/kinetis_pin.c
index cb89bc932c5e942db88d46810b1d7e2bd2fca4e0..cdd9e19c1ef5912e9c7136d8703d56463cad1ea7 100755
--- a/arch/arm/src/kinetis/kinetis_gpio.c
+++ b/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/arch/arm/src/kinetis/kinetis_pindma.c b/arch/arm/src/kinetis/kinetis_pindma.c
new file mode 100644
index 0000000000000000000000000000000000000000..00d9a07e69015b37eabf0a7cce392cd0b203593f
--- /dev/null
+++ b/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/arch/arm/src/kinetis/kinetis_pingpio.c b/arch/arm/src/kinetis/kinetis_pingpio.c
new file mode 100644
index 0000000000000000000000000000000000000000..23829c6d7eee6d32aa38876055497aeef6d0211d
--- /dev/null
+++ b/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/arch/arm/src/kinetis/kinetis_pinirq.c b/arch/arm/src/kinetis/kinetis_pinirq.c
new file mode 100644
index 0000000000000000000000000000000000000000..fdb9f8dc892a3f20bccaa50d66a2051c9e5cb3ae
--- /dev/null
+++ b/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/arch/arm/src/kinetis/kinetis_start.c b/arch/arm/src/kinetis/kinetis_start.c
old mode 100755
new mode 100644
diff --git a/arch/arm/src/kinetis/kinetis_timerisr.c b/arch/arm/src/kinetis/kinetis_timerisr.c
old mode 100755
new mode 100644
diff --git a/arch/arm/src/kinetis/kinetis_vectors.S b/arch/arm/src/kinetis/kinetis_vectors.S
old mode 100755
new mode 100644
diff --git a/arch/arm/src/stm32/stm32_gpio.c b/arch/arm/src/stm32/stm32_gpio.c
index 159f5d4f6ea228b153bae5e2303061c2433a3fa2..80a24b12e3c6f567b0e67bd254af5b86bb4bfc79 100755
--- a/arch/arm/src/stm32/stm32_gpio.c
+++ b/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/arch/arm/src/stm32/stm32_gpio.h b/arch/arm/src/stm32/stm32_gpio.h
index e30bb0ac9e195b8f63e7d227e5ec81198f3ca446..2c1d3bcb2974efcde973cce17038f5bff6d4efea 100644
--- a/arch/arm/src/stm32/stm32_gpio.h
+++ b/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/configs/kwikstik-k40/include/board.h b/configs/kwikstik-k40/include/board.h
index 97fd786ac6a66a90fe98c5d8ec6e6f38c3998b78..cfd32b0fb6ee4b2c059f34679352c5ce36b27515 100755
--- a/configs/kwikstik-k40/include/board.h
+++ b/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/configs/twr-k60n512/include/board.h b/configs/twr-k60n512/include/board.h
index efe16bb9495d1c6b0effb97ea8977c1904a0fa32..206a825733bb54200ccd27f452af5d08562cfc0d 100755
--- a/configs/twr-k60n512/include/board.h
+++ b/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