summaryrefslogtreecommitdiff
path: root/nuttx/arch/arm/src/kinetis
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/arch/arm/src/kinetis')
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c7
-rwxr-xr-xnuttx/arch/arm/src/kinetis/kinetis_config.h4
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_internal.h1
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_k40pinmux.h518
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_k60pinmux.h476
-rwxr-xr-xnuttx/arch/arm/src/kinetis/kinetis_lowputc.c60
-rw-r--r--nuttx/arch/arm/src/kinetis/kinetis_pinmux.h75
7 files changed, 1106 insertions, 35 deletions
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c b/nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c
index 11e5af48f..bcb3540d7 100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c
+++ b/nuttx/arch/arm/src/kinetis/kinetis_clockconfig.c
@@ -49,6 +49,7 @@
#include "kinetis_sim.h"
#include "kinetis_fmc.h"
#include "kinetis_llwu.h"
+#include "kinetis_pinmux.h"
/****************************************************************************
* Private Definitions
@@ -304,9 +305,9 @@ static inline void kinetis_traceconfig(void)
regval |= SIM_SOPT2_TRACECLKSEL;
putreg32(regval, KINETIS_SIM_SOPT2);
- /* Enable the TRACE_CLKOUT pin function on PTA6 (alt7 function) */
+ /* Enable the TRACE_CLKOUT pin function on the configured pin */
- kinetis_gpioconfig(GPIO_TRACE);
+ kinetis_gpioconfig(GPIO_TRACE_CLKOUT);
}
#else
# define kinetis_traceconfig()
@@ -333,7 +334,7 @@ static inline void kinetis_fbconfig(void)
/* Enable the FB_CLKOUT function on PTC3 (alt5 function) */
- kinetis_gpioconfig(GPIO_FBCLKOUT);
+ kinetis_gpioconfig(GPIO_FB_CLKOUT);
}
#else
# define kinetis_fbconfig()
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_config.h b/nuttx/arch/arm/src/kinetis/kinetis_config.h
index aa05e8fda..e599294d1 100755
--- a/nuttx/arch/arm/src/kinetis/kinetis_config.h
+++ b/nuttx/arch/arm/src/kinetis/kinetis_config.h
@@ -77,11 +77,11 @@
/* Are any UARTs enabled? */
-#undef HAVE_UART
+#undef HAVE_UART_DEVICE
#if defined(CONFIG_KINETIS_UART0) || defined(CONFIG_KINETIS_UART1) || \
defined(CONFIG_KINETIS_UART2) || defined(CONFIG_KINETIS_UART3) || \
defined(CONFIG_KINETIS_UART5)
-# define HAVE_UART 1
+# define HAVE_UART_DEVICE 1
#endif
/* Is there a serial console? There should be at most one defined. It could be on
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_internal.h b/nuttx/arch/arm/src/kinetis/kinetis_internal.h
index 7b0383cdf..09eb37a13 100644
--- a/nuttx/arch/arm/src/kinetis/kinetis_internal.h
+++ b/nuttx/arch/arm/src/kinetis/kinetis_internal.h
@@ -48,6 +48,7 @@
#include <stdbool.h>
#include "up_internal.h"
+#include "kinetis_config.h"
#include "chip.h"
#include "kinetis_port.h"
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_k40pinmux.h b/nuttx/arch/arm/src/kinetis/kinetis_k40pinmux.h
new file mode 100644
index 000000000..282fdafe5
--- /dev/null
+++ b/nuttx/arch/arm/src/kinetis/kinetis_k40pinmux.h
@@ -0,0 +1,518 @@
+/********************************************************************************************
+ * arch/arm/src/kinetis/kinetis_k40pinmux.h
+ *
+ * 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.
+ *
+ ********************************************************************************************/
+
+#ifndef __ARCH_ARM_SRC_KINETIS_KINETIS_K40PINMUX_H
+#define __ARCH_ARM_SRC_KINETIS_KINETIS_K40PINMUX_H
+
+/********************************************************************************************
+ * Included Files
+ ********************************************************************************************/
+
+#include <nuttx/config.h>
+
+#include "chip.h"
+
+/********************************************************************************************
+ * Pre-processor Definitions
+ ********************************************************************************************/
+/* Reference: Paragraph 10.3.1, p 227, of FreeScale document K40P144M100SF2RM
+ *
+ * In most cases, there are alternative configurations for various pins. Those alternative
+ * pins are labeled with a suffix like _1, _2, etc. in order to distinguish them. Logic in
+ * the board.h file must select the correct pin configuration for the board by defining a pin
+ * configuration (with no suffix) that maps to the correct alternative.
+ */
+
+#if defined(CONFIG_ARCH_CHIP_MK40X128VLQ100) || defined(CONFIG_ARCH_CHIP_MK40X128VMD100) || \
+ 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 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 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 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 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)
+
+#else
+ /* The pin muxing for other K40 parts is defined in other documents */
+
+# error "No pin multiplexing for this Kinetis K40 part"
+#endif
+
+/********************************************************************************************
+ * Public Types
+ ********************************************************************************************/
+
+/********************************************************************************************
+ * Public Data
+ ********************************************************************************************/
+
+/********************************************************************************************
+ * Public Functions
+ ********************************************************************************************/
+
+#endif /* __ARCH_ARM_SRC_KINETIS_KINETIS_K40PINMUX_H */
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_k60pinmux.h b/nuttx/arch/arm/src/kinetis/kinetis_k60pinmux.h
new file mode 100644
index 000000000..128e89d8d
--- /dev/null
+++ b/nuttx/arch/arm/src/kinetis/kinetis_k60pinmux.h
@@ -0,0 +1,476 @@
+/********************************************************************************************
+ * arch/arm/src/kinetis/kinetis_k60pinset.h
+ *
+ * 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.
+ *
+ ********************************************************************************************/
+
+#ifndef __ARCH_ARM_SRC_KINETIS_KINETIS_K60PINMUX_H
+#define __ARCH_ARM_SRC_KINETIS_KINETIS_K60PINMUX_H
+
+/********************************************************************************************
+ * Included Files
+ ********************************************************************************************/
+
+#include <nuttx/config.h>
+
+#include "chip.h"
+
+/********************************************************************************************
+ * Pre-processor Definitions
+ ********************************************************************************************/
+/* Reference: Paragraph 10.3.1, p 258, of FreeScale document K60P144M100SF2RM
+ *
+ * In most cases, there are alternative configurations for various pins. Those alternative
+ * pins are labeled with a suffix like _1, _2, etc. in order to distinguish them. Logic in
+ * the board.h file must select the correct pin configuration for the board by defining a pin
+ * configuration (with no suffix) that maps to the correct alternative.
+ */
+
+#if defined(CONFIG_ARCH_CHIP_MK60N256VLQ100) || defined(CONFIG_ARCH_CHIP_MK60X256VLQ100) || \
+ 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 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 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 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 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)
+
+#else
+ /* The pin muxing for other K60 parts is defined in other documents */
+
+# error "No pin multiplexing for this Kinetis K60 part"
+#endif
+
+/********************************************************************************************
+ * Public Types
+ ********************************************************************************************/
+
+/********************************************************************************************
+ * Public Data
+ ********************************************************************************************/
+
+/********************************************************************************************
+ * Public Functions
+ ********************************************************************************************/
+
+#endif /* __ARCH_ARM_SRC_KINETIS_KINETIS_K60PINMUX_H */
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_lowputc.c b/nuttx/arch/arm/src/kinetis/kinetis_lowputc.c
index e403d4706..712865818 100755
--- a/nuttx/arch/arm/src/kinetis/kinetis_lowputc.c
+++ b/nuttx/arch/arm/src/kinetis/kinetis_lowputc.c
@@ -50,6 +50,7 @@
#include "kinetis_config.h"
#include "kinetis_internal.h"
#include "kinetis_uart.h"
+#include "kinetis_pinmux.h"
/**************************************************************************
* Private Definitions
@@ -143,7 +144,7 @@
void up_lowputc(char ch)
{
-#if defined HAVE_UART && defined HAVE_CONSOLE
+#if defined HAVE_UART_DEVICE && defined HAVE_CONSOLE
# warning "Missing logic"
#endif
}
@@ -180,41 +181,40 @@ void up_lowputc(char ch)
void kinetis_lowsetup(void)
{
-#ifdef HAVE_UART
- uint32_t regval;
-
- /* Step 1: Enable power for all console UART and disable power for
- * other UARTs
- */
+#ifdef HAVE_UART_DEVICE
+ /* Step 1: Enable power for all enabled UARTs */
# warning "Missing logic"
- /* Step 2: Enable peripheral clocking for the console UART and disable
- * clocking for all other UARTs
- */
+ /* Step 2: Enable peripheral clocking for all enabled UARTs */
# warning "Missing logic"
- /* Configure UART pins for the selected CONSOLE */
+ /* Configure UART pins for the all enabled UARTs */
-#if defined(CONFIG_UART0_SERIAL_CONSOLE)
- kinetis_configgpio(GPIO_UART0_TXD);
- kinetis_configgpio(GPIO_UART0_RXD);
-#elif defined(CONFIG_UART1_SERIAL_CONSOLE)
- kinetis_configgpio(GPIO_UART1_TXD);
- kinetis_configgpio(GPIO_UART1_RXD);
-#elif defined(CONFIG_UART2_SERIAL_CONSOLE)
- kinetis_configgpio(GPIO_UART2_TXD);
- kinetis_configgpio(GPIO_UART2_RXD);
-#elif defined(CONFIG_UART3_SERIAL_CONSOLE)
- kinetis_configgpio(GPIO_UART3_TXD);
- kinetis_configgpio(GPIO_UART3_RXD);
-#elif defined(CONFIG_UART4_SERIAL_CONSOLE)
- kinetis_configgpio(GPIO_UART3_TXD);
- kinetis_configgpio(GPIO_UART3_RXD);
-#elif defined(CONFIG_UART5_SERIAL_CONSOLE)
- kinetis_configgpio(GPIO_UART3_TXD);
- kinetis_configgpio(GPIO_UART3_RXD);
+#ifdef CONFIG_KINETIS_UART0
+ kinetis_configgpio(GPIO_UART0_TX);
+ kinetis_configgpio(GPIO_UART0_RX);
+#endif
+#ifdef CONFIG_KINETIS_UART1
+ kinetis_configgpio(GPIO_UART1_TX);
+ kinetis_configgpio(GPIO_UART1_RX);
+#endif
+#ifdef CONFIG_KINETIS_UART2
+ kinetis_configgpio(GPIO_UART2_TX);
+ kinetis_configgpio(GPIO_UART2_RX);
+#endif
+#ifdef CONFIG_KINETIS_UART3
+ kinetis_configgpio(GPIO_UART3_TX);
+ kinetis_configgpio(GPIO_UART3_RX);
+#endif
+#ifdef CONFIG_KINETIS_UART4
+ kinetis_configgpio(GPIO_UART4_TX);
+ kinetis_configgpio(GPIO_UART4_RX);
+#endif
+#ifdef CONFIG_KINETIS_UART5
+ kinetis_configgpio(GPIO_UART5_TX);
+ kinetis_configgpio(GPIO_UART5_RX);
#endif
/* Configure the console (only) */
@@ -224,7 +224,7 @@ void kinetis_lowsetup(void)
kinetis_uartconfigure(CONSOLE_BASE, CONSOLE_BAUD, CONSOLE_PARITY,
CONSOLE_BITS, CONSOLE_2STOP);
#endif
-#endif /* HAVE_UART */
+#endif /* HAVE_UART_DEVICE */
}
/******************************************************************************
diff --git a/nuttx/arch/arm/src/kinetis/kinetis_pinmux.h b/nuttx/arch/arm/src/kinetis/kinetis_pinmux.h
new file mode 100644
index 000000000..04d956e4e
--- /dev/null
+++ b/nuttx/arch/arm/src/kinetis/kinetis_pinmux.h
@@ -0,0 +1,75 @@
+/********************************************************************************************
+ * arch/arm/src/kinetis/kinetis_pinmux.h
+ *
+ * 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.
+ *
+ ********************************************************************************************/
+
+#ifndef __ARCH_ARM_SRC_KINETIS_KINETIS_PINMUX_H
+#define __ARCH_ARM_SRC_KINETIS_KINETIS_PINMUX_H
+
+/********************************************************************************************
+ * Included Files
+ ********************************************************************************************/
+
+#include <nuttx/config.h>
+
+#include "chip.h"
+
+/* This file is just a wrapper around pin muxing header files for the Kinetis family selected
+ * by the logic in chip.h.
+ */
+
+#if defined(KINETIS_K40)
+# include "kinetis_k40pinmux.h"
+#elif defined(KINETIS_K60)
+# include "kinetis_k60pinmux.h"
+#else
+# error "No pin multiplexing for this Kinetis part"
+#endif
+
+/********************************************************************************************
+ * Pre-processor Definitions
+ ********************************************************************************************/
+
+/********************************************************************************************
+ * Public Types
+ ********************************************************************************************/
+
+/********************************************************************************************
+ * Public Data
+ ********************************************************************************************/
+
+/********************************************************************************************
+ * Public Functions
+ ********************************************************************************************/
+
+#endif /* __ARCH_ARM_SRC_KINETIS_KINETIS_PINMUX_H */