From e6cf93ee68250da286f1157d30837cb239a9cc20 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 13 Aug 2011 23:48:15 +0000 Subject: [PATCH] Add chip-specific pin multiplexing definitions git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3877 42af7a65-404d-4744-a932-0658087f49c3 --- arch/arm/src/kinetis/kinetis_clockconfig.c | 7 +- arch/arm/src/kinetis/kinetis_config.h | 4 +- arch/arm/src/kinetis/kinetis_internal.h | 1 + arch/arm/src/kinetis/kinetis_k40pinmux.h | 518 +++++++++++++++++++++ arch/arm/src/kinetis/kinetis_k60pinmux.h | 476 +++++++++++++++++++ arch/arm/src/kinetis/kinetis_lowputc.c | 60 +-- arch/arm/src/kinetis/kinetis_pinmux.h | 75 +++ configs/kwikstik-k40/README.txt | 16 +- configs/kwikstik-k40/include/board.h | 17 + configs/kwikstik-k40/ostest/defconfig | 92 ++-- configs/twr-k60n512/include/board.h | 19 + 11 files changed, 1196 insertions(+), 89 deletions(-) create mode 100644 arch/arm/src/kinetis/kinetis_k40pinmux.h create mode 100644 arch/arm/src/kinetis/kinetis_k60pinmux.h create mode 100644 arch/arm/src/kinetis/kinetis_pinmux.h diff --git a/arch/arm/src/kinetis/kinetis_clockconfig.c b/arch/arm/src/kinetis/kinetis_clockconfig.c index 11e5af48fb..bcb3540d7e 100644 --- a/arch/arm/src/kinetis/kinetis_clockconfig.c +++ b/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/arch/arm/src/kinetis/kinetis_config.h b/arch/arm/src/kinetis/kinetis_config.h index aa05e8fda1..e599294d16 100755 --- a/arch/arm/src/kinetis/kinetis_config.h +++ b/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/arch/arm/src/kinetis/kinetis_internal.h b/arch/arm/src/kinetis/kinetis_internal.h index 7b0383cdf0..09eb37a135 100644 --- a/arch/arm/src/kinetis/kinetis_internal.h +++ b/arch/arm/src/kinetis/kinetis_internal.h @@ -48,6 +48,7 @@ #include #include "up_internal.h" +#include "kinetis_config.h" #include "chip.h" #include "kinetis_port.h" diff --git a/arch/arm/src/kinetis/kinetis_k40pinmux.h b/arch/arm/src/kinetis/kinetis_k40pinmux.h new file mode 100644 index 0000000000..282fdafe57 --- /dev/null +++ b/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 + * + * 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 + +#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/arch/arm/src/kinetis/kinetis_k60pinmux.h b/arch/arm/src/kinetis/kinetis_k60pinmux.h new file mode 100644 index 0000000000..128e89d8d5 --- /dev/null +++ b/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 + * + * 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 + +#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/arch/arm/src/kinetis/kinetis_lowputc.c b/arch/arm/src/kinetis/kinetis_lowputc.c index e403d4706d..7128658184 100755 --- a/arch/arm/src/kinetis/kinetis_lowputc.c +++ b/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/arch/arm/src/kinetis/kinetis_pinmux.h b/arch/arm/src/kinetis/kinetis_pinmux.h new file mode 100644 index 0000000000..04d956e4ea --- /dev/null +++ b/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 + * + * 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 + +#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 */ diff --git a/configs/kwikstik-k40/README.txt b/configs/kwikstik-k40/README.txt index 9b479905d7..08a6ac018b 100644 --- a/configs/kwikstik-k40/README.txt +++ b/configs/kwikstik-k40/README.txt @@ -300,16 +300,16 @@ KwikStik-K40-specific Configuration Options Kinetis K40 specific device driver settings - CONFIG_U[S]ARTn_SERIAL_CONSOLE - selects the USARTn (n=1,2,3) or UART - m (m=4,5) for the console and ttys0 (default is the USART1). - CONFIG_U[S]ARTn_RXBUFSIZE - Characters are buffered as received. + CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn (n=1,2,3) or UART + m (m=4,5) for the console and ttys0 (default is the UART1). + CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received. This specific the size of the receive buffer - CONFIG_U[S]ARTn_TXBUFSIZE - Characters are buffered before + CONFIG_UARTn_TXBUFSIZE - Characters are buffered before being sent. This specific the size of the transmit buffer - CONFIG_U[S]ARTn_BAUD - The configure BAUD of the UART. Must be - CONFIG_U[S]ARTn_BITS - The number of bits. Must be either 7 or 8. - CONFIG_U[S]ARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity - CONFIG_U[S]ARTn_2STOP - Two stop bits + CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be + CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8. + CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity + CONFIG_UARTn_2STOP - Two stop bits CONFIG_KINETIS_SPI_INTERRUPTS - Select to enable interrupt driven SPI support. Non-interrupt-driven, poll-waiting is recommended if the diff --git a/configs/kwikstik-k40/include/board.h b/configs/kwikstik-k40/include/board.h index 85f2afeb54..ee50834545 100755 --- a/configs/kwikstik-k40/include/board.h +++ b/configs/kwikstik-k40/include/board.h @@ -98,6 +98,23 @@ /* Button definitions ***************************************************************/ +/* Alternative pin resolution *******************************************************/ +/* If there are alternative configurations for various pins in the + * kinetis_k40pinmux.h header file, those alternative pins will be labeled with a + * suffix like _1, _2, etc. The logic in this file must select the correct pin + * configuration for the board by defining a pin configuration (with no suffix) that + * 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 + /************************************************************************************ * Public Data ************************************************************************************/ diff --git a/configs/kwikstik-k40/ostest/defconfig b/configs/kwikstik-k40/ostest/defconfig index 6e31c1f95f..1569289fff 100755 --- a/configs/kwikstik-k40/ostest/defconfig +++ b/configs/kwikstik-k40/ostest/defconfig @@ -118,8 +118,8 @@ CONFIG_KINETIS_TIM7=n CONFIG_KINETIS_WWDG=n CONFIG_KINETIS_SPI2=n CONFIG_KINETIS_SPI4=n -CONFIG_KINETIS_USART2=y -CONFIG_KINETIS_USART3=n +CONFIG_KINETIS_UART2=y +CONFIG_KINETIS_UART3=n CONFIG_KINETIS_UART4=n CONFIG_KINETIS_UART5=n CONFIG_KINETIS_I2C1=n @@ -135,64 +135,64 @@ CONFIG_KINETIS_ADC2=n CONFIG_KINETIS_TIM1=n CONFIG_KINETIS_SPI1=n CONFIG_KINETIS_TIM8=n -CONFIG_KINETIS_USART1=y +CONFIG_KINETIS_UART1=y CONFIG_KINETIS_ADC3=n # # K40X256VLQ100 specific serial device driver settings # -# CONFIG_USARTn_SERIAL_CONSOLE - selects the USARTn for the -# console and ttys0 (default is the USART1). -# CONFIG_USARTn_RXBUFSIZE - Characters are buffered as received. +# CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the +# console and ttys0 (default is the UART1). +# CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received. # This specific the size of the receive buffer -# CONFIG_USARTn_TXBUFSIZE - Characters are buffered before +# CONFIG_UARTn_TXBUFSIZE - Characters are buffered before # being sent. This specific the size of the transmit buffer -# CONFIG_USARTn_BAUD - The configure BAUD of the UART. Must be -# CONFIG_USARTn_BITS - The number of bits. Must be either 7 or 8. -# CONFIG_USARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity -# CONFIG_USARTn_2STOP - Two stop bits +# CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be +# CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8. +# CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity +# CONFIG_UARTn_2STOP - Two stop bits # -CONFIG_USART1_SERIAL_CONSOLE=y -CONFIG_USART2_SERIAL_CONSOLE=n -CONFIG_USART3_SERIAL_CONSOLE=n -CONFIG_USART4_SERIAL_CONSOLE=n -CONFIG_USART5_SERIAL_CONSOLE=n +CONFIG_UART1_SERIAL_CONSOLE=y +CONFIG_UART2_SERIAL_CONSOLE=n +CONFIG_UART3_SERIAL_CONSOLE=n +CONFIG_UART4_SERIAL_CONSOLE=n +CONFIG_UART5_SERIAL_CONSOLE=n -CONFIG_USART1_TXBUFSIZE=256 -CONFIG_USART2_TXBUFSIZE=256 -CONFIG_USART3_TXBUFSIZE=256 -CONFIG_USART4_TXBUFSIZE=256 -CONFIG_USART5_TXBUFSIZE=256 +CONFIG_UART1_TXBUFSIZE=256 +CONFIG_UART2_TXBUFSIZE=256 +CONFIG_UART3_TXBUFSIZE=256 +CONFIG_UART4_TXBUFSIZE=256 +CONFIG_UART5_TXBUFSIZE=256 -CONFIG_USART1_RXBUFSIZE=256 -CONFIG_USART2_RXBUFSIZE=256 -CONFIG_USART3_RXBUFSIZE=256 -CONFIG_USART4_RXBUFSIZE=256 -CONFIG_USART5_RXBUFSIZE=256 +CONFIG_UART1_RXBUFSIZE=256 +CONFIG_UART2_RXBUFSIZE=256 +CONFIG_UART3_RXBUFSIZE=256 +CONFIG_UART4_RXBUFSIZE=256 +CONFIG_UART5_RXBUFSIZE=256 -CONFIG_USART1_BAUD=115200 -CONFIG_USART2_BAUD=115200 -CONFIG_USART3_BAUD=115200 -CONFIG_USART4_BAUD=115200 -CONFIG_USART5_BAUD=115200 +CONFIG_UART1_BAUD=115200 +CONFIG_UART2_BAUD=115200 +CONFIG_UART3_BAUD=115200 +CONFIG_UART4_BAUD=115200 +CONFIG_UART5_BAUD=115200 -CONFIG_USART1_BITS=8 -CONFIG_USART2_BITS=8 -CONFIG_USART3_BITS=8 -CONFIG_USART4_BITS=8 -CONFIG_USART5_BITS=8 +CONFIG_UART1_BITS=8 +CONFIG_UART2_BITS=8 +CONFIG_UART3_BITS=8 +CONFIG_UART4_BITS=8 +CONFIG_UART5_BITS=8 -CONFIG_USART1_PARITY=0 -CONFIG_USART2_PARITY=0 -CONFIG_USART3_PARITY=0 -CONFIG_USART4_PARITY=0 -CONFIG_USART5_PARITY=0 +CONFIG_UART1_PARITY=0 +CONFIG_UART2_PARITY=0 +CONFIG_UART3_PARITY=0 +CONFIG_UART4_PARITY=0 +CONFIG_UART5_PARITY=0 -CONFIG_USART1_2STOP=0 -CONFIG_USART2_2STOP=0 -CONFIG_USART3_2STOP=0 -CONFIG_USART4_2STOP=0 -CONFIG_USART5_2STOP=0 +CONFIG_UART1_2STOP=0 +CONFIG_UART2_2STOP=0 +CONFIG_UART3_2STOP=0 +CONFIG_UART4_2STOP=0 +CONFIG_UART5_2STOP=0 # # K40X256VLQ100 specific SSI device driver settings diff --git a/configs/twr-k60n512/include/board.h b/configs/twr-k60n512/include/board.h index 3cad12ac40..d41dab6d02 100755 --- a/configs/twr-k60n512/include/board.h +++ b/configs/twr-k60n512/include/board.h @@ -99,6 +99,25 @@ /* Button definitions ***************************************************************/ +/* Alternative pin resolution *******************************************************/ +/* If there are alternative configurations for various pins in the + * kinetis_k60pinmux.h header file, those alternative pins will be labeled with a + * suffix like _1, _2, etc. The logic in this file must select the correct pin + * configuration for the board by defining a pin configuration (with no suffix) that + * 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 + /************************************************************************************ * Public Data ************************************************************************************/