NXP Touch Cursor example for LPCXpresso54608, modified for use with Mbed OS.

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers board.h Source File

board.h

00001 /*
00002  * The Clear BSD License
00003  * Copyright (c) 2016, Freescale Semiconductor, Inc.
00004  * Copyright 2016-2017 NXP
00005  * All rights reserved.
00006  *
00007  *
00008  * Redistribution and use in source and binary forms, with or without modification,
00009  * are permitted (subject to the limitations in the disclaimer below) provided
00010  * that the following conditions are met:
00011  *
00012  * o Redistributions of source code must retain the above copyright notice, this list
00013  *   of conditions and the following disclaimer.
00014  *
00015  * o Redistributions in binary form must reproduce the above copyright notice, this
00016  *   list of conditions and the following disclaimer in the documentation and/or
00017  *   other materials provided with the distribution.
00018  *
00019  * o Neither the name of the copyright holder nor the names of its
00020  *   contributors may be used to endorse or promote products derived from this
00021  *   software without specific prior written permission.
00022  *
00023  * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE.
00024  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
00025  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
00026  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00027  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
00028  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00029  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00030  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
00031  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
00032  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00033  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00034  */
00035 
00036 #ifndef _BOARD_H_
00037 #define _BOARD_H_
00038 
00039 #include "clock_config.h"
00040 #include "fsl_common.h"
00041 #include "fsl_gpio.h"
00042 
00043 /*******************************************************************************
00044  * Definitions
00045  ******************************************************************************/
00046 /*! @brief The board name */
00047 #define BOARD_NAME "LPCXPRESSO54608"
00048 
00049 #define BOARD_EXTCLKINRATE (0)
00050 
00051 /*! @brief The UART to use for debug messages. */
00052 /* TODO: rename UART to USART */
00053 #define BOARD_DEBUG_UART_TYPE DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM
00054 #define BOARD_DEBUG_UART_BASEADDR (uint32_t) USART0
00055 #define BOARD_DEBUG_UART_INSTANCE 0U
00056 #define BOARD_DEBUG_UART_CLK_FREQ CLOCK_GetFreq(kCLOCK_Flexcomm0)
00057 #define BOARD_DEBUG_UART_CLK_ATTACH kFRO12M_to_FLEXCOMM0
00058 #define BOARD_DEBUG_UART_RST kFC0_RST_SHIFT_RSTn
00059 #define BOARD_DEBUG_UART_CLKSRC kCLOCK_Flexcomm0
00060 #define BOARD_UART_IRQ_HANDLER FLEXCOMM0_IRQHandler
00061 #define BOARD_UART_IRQ FLEXCOMM0_IRQn
00062 /* TODO: obsolete */
00063 #define BOARD_DEBUG_SPI_CLK_FREQ 12000000
00064 
00065 #ifndef BOARD_DEBUG_UART_BAUDRATE
00066 #define BOARD_DEBUG_UART_BAUDRATE 115200
00067 #endif /* BOARD_DEBUG_UART_BAUDRATE */
00068 
00069 /*! @brief The ENET PHY address. */
00070 #define BOARD_ENET0_PHY_ADDRESS (0x00U) /* Phy address of enet port 0. */
00071 
00072 #ifndef BOARD_LED1_GPIO
00073 #define BOARD_LED1_GPIO GPIO
00074 #endif
00075 #define BOARD_LED1_GPIO_PORT 3U
00076 #ifndef BOARD_LED1_GPIO_PIN
00077 #define BOARD_LED1_GPIO_PIN 14U
00078 #endif
00079 #ifndef BOARD_LED2_GPIO
00080 #define BOARD_LED2_GPIO GPIO
00081 #endif
00082 #define BOARD_LED2_GPIO_PORT 3U
00083 #ifndef BOARD_LED2_GPIO_PIN
00084 #define BOARD_LED2_GPIO_PIN 3U
00085 #endif
00086 #ifndef BOARD_LED3_GPIO
00087 #define BOARD_LED3_GPIO GPIO
00088 #endif
00089 #define BOARD_LED3_GPIO_PORT 2U
00090 #ifndef BOARD_LED3_GPIO_PIN
00091 #define BOARD_LED3_GPIO_PIN 2U
00092 #endif
00093 
00094 #ifndef BOARD_SW1_GPIO
00095 #define BOARD_SW1_GPIO GPIO
00096 #endif
00097 #define BOARD_SW1_GPIO_PORT 0U
00098 #ifndef BOARD_SW1_GPIO_PIN
00099 #define BOARD_SW1_GPIO_PIN 4U
00100 #endif
00101 #define BOARD_SW1_NAME "SW1"
00102 #define BOARD_SW3_IRQ PIN_INT0_IRQn
00103 #define BOARD_SW3_IRQ_HANDLER PIN_INT0_IRQHandler
00104 
00105 #ifndef BOARD_SW2_GPIO
00106 #define BOARD_SW2_GPIO GPIO
00107 #endif
00108 #define BOARD_SW2_GPIO_PORT 0U
00109 #ifndef BOARD_SW2_GPIO_PIN
00110 #define BOARD_SW2_GPIO_PIN 6U
00111 #endif
00112 #define BOARD_SW2_NAME "SW2"
00113 #define BOARD_SW2_IRQ PIN_INT0_IRQn
00114 #define BOARD_SW2_IRQ_HANDLER PIN_INT0_IRQHandler
00115 
00116 #ifndef BOARD_SW3_GPIO
00117 #define BOARD_SW3_GPIO GPIO
00118 #endif
00119 #define BOARD_SW3_GPIO_PORT 0U
00120 #ifndef BOARD_SW3_GPIO_PIN
00121 #define BOARD_SW3_GPIO_PIN 5U
00122 #endif
00123 #define BOARD_SW3_NAME "SW3"
00124 #define BOARD_SW3_IRQ PIN_INT0_IRQn
00125 #define BOARD_SW3_IRQ_HANDLER PIN_INT0_IRQHandler
00126 #define BOARD_SW3_GPIO_PININT_INDEX 0
00127 
00128 #ifndef BOARD_SW4_GPIO
00129 #define BOARD_SW4_GPIO GPIO
00130 #endif
00131 #ifndef BOARD_SW4_GPIO_PORT
00132 #define BOARD_SW4_GPIO_PORT 0U
00133 #endif
00134 #ifndef BOARD_SW4_GPIO_PIN
00135 #define BOARD_SW4_GPIO_PIN 4U
00136 #endif
00137 #define BOARD_SW4_NAME "SW4"
00138 #define BOARD_SW4_IRQ PIN_INT0_IRQn
00139 #define BOARD_SW4_IRQ_HANDLER PIN_INT0_IRQHandler
00140 #define BOARD_SW4_GPIO_PININT_INDEX 0
00141 
00142 #ifndef BOARD_SW5_GPIO
00143 #define BOARD_SW5_GPIO GPIO
00144 #endif
00145 #ifndef BOARD_SW5_GPIO_PORT
00146 #define BOARD_SW5_GPIO_PORT 1U
00147 #endif
00148 #ifndef BOARD_SW5_GPIO_PIN
00149 #define BOARD_SW5_GPIO_PIN 1U
00150 #endif
00151 #define BOARD_SW5_NAME "SW5"
00152 #define BOARD_SW5_IRQ PIN_INT1_IRQn
00153 #define BOARD_SW5_IRQ_HANDLER PIN_INT1_IRQHandler
00154 #define BOARD_SW5_GPIO_PININT_INDEX 0
00155 
00156 #define BOARD_SDIF_BASEADDR SDIF
00157 #define BOARD_SDIF_CLKSRC kCLOCK_SDio
00158 #define BOARD_SDIF_CLK_FREQ CLOCK_GetFreq(kCLOCK_SDio)
00159 #define BOARD_SDIF_CLK_ATTACH kMCLK_to_SDIO_CLK
00160 #define BOARD_SDIF_IRQ SDIO_IRQn
00161 #define BOARD_MMC_VCC_SUPPLY kMMC_VoltageWindows270to360
00162 #define BOARD_SD_CARD_DETECT_PIN 10
00163 #define BOARD_SD_CARD_DETECT_PORT 2
00164 #define BOARD_SD_CARD_DETECT_GPIO GPIO
00165 #define BOARD_SD_DETECT_TYPE kSDMMCHOST_DetectCardByHostCD
00166 
00167 #define BOARD_SDIF_CD_GPIO_INIT()                                                                    \
00168     {                                                                                                \
00169         CLOCK_EnableClock(kCLOCK_Gpio2);                                                             \
00170         GPIO_PinInit(BOARD_SD_CARD_DETECT_GPIO, BOARD_SD_CARD_DETECT_PORT, BOARD_SD_CARD_DETECT_PIN, \
00171                      &(gpio_pin_config_t){kGPIO_DigitalInput, 0U});                                  \
00172     }
00173 #define BOARD_SDIF_CD_STATUS() \
00174     GPIO_ReadPinInput(BOARD_SD_CARD_DETECT_GPIO, BOARD_SD_CARD_DETECT_PORT, BOARD_SD_CARD_DETECT_PIN)
00175 
00176 #define BOARD_ARDUINO_INT_IRQ (GINT0_IRQn)
00177 #define BOARD_ARDUINO_I2C_IRQ (FLEXCOMM2_IRQn)
00178 #define BOARD_ARDUINO_I2C_INDEX (2)
00179 
00180 /* Board led color mapping */
00181 #define LOGIC_LED_ON 0U
00182 #define LOGIC_LED_OFF 1U
00183 
00184 #define LED1_INIT(output)                                                    \
00185     GPIO_PinInit(BOARD_LED1_GPIO, BOARD_LED1_GPIO_PORT, BOARD_LED1_GPIO_PIN, \
00186                  &(gpio_pin_config_t){kGPIO_DigitalOutput, (output)}) /*!< Enable target LED1 */
00187 #define LED1_ON() \
00188     GPIO_PortClear(BOARD_LED1_GPIO, BOARD_LED1_GPIO_PORT, 1U << BOARD_LED1_GPIO_PIN) /*!< Turn on target LED1 */
00189 #define LED1_OFF() \
00190     GPIO_PortSet(BOARD_LED1_GPIO, BOARD_LED1_GPIO_PORT, 1U << BOARD_LED1_GPIO_PIN) /*!< Turn off target LED1 */
00191 #define LED1_TOGGLE()                                            \
00192     GPIO_PortToggle(BOARD_LED1_GPIO, BOARD_LED1_GPIO_PORT, \
00193                           1U << BOARD_LED1_GPIO_PIN) /*!< Toggle on target LED1 */
00194 #define LED2_INIT(output)                                                    \
00195     GPIO_PinInit(BOARD_LED2_GPIO, BOARD_LED2_GPIO_PORT, BOARD_LED2_GPIO_PIN, \
00196                  &(gpio_pin_config_t){kGPIO_DigitalOutput, (output)}) /*!< Enable target LED2 */
00197 #define LED2_ON() \
00198     GPIO_PortClear(BOARD_LED2_GPIO, BOARD_LED2_GPIO_PORT, 1U << BOARD_LED2_GPIO_PIN) /*!< Turn on target LED2 */
00199 #define LED2_OFF() \
00200     GPIO_PortSet(BOARD_LED2_GPIO, BOARD_LED2_GPIO_PORT, 1U << BOARD_LED2_GPIO_PIN) /*!< Turn off target LED2 */
00201 #define LED2_TOGGLE()                                            \
00202     GPIO_PortToggle(BOARD_LED2_GPIO, BOARD_LED2_GPIO_PORT, \
00203                           1U << BOARD_LED2_GPIO_PIN) /*!< Toggle on target LED2 */
00204 
00205 #define LED3_INIT(output)                                                    \
00206     GPIO_PinInit(BOARD_LED3_GPIO, BOARD_LED3_GPIO_PORT, BOARD_LED3_GPIO_PIN, \
00207                  &(gpio_pin_config_t){kGPIO_DigitalOutput, (output)}) /*!< Enable target LED3 */
00208 #define LED3_ON() \
00209     GPIO_PortClear(BOARD_LED3_GPIO, BOARD_LED3_GPIO_PORT, 1U << BOARD_LED3_GPIO_PIN) /*!< Turn on target LED3 */
00210 #define LED3_OFF() \
00211     GPIO_PortSet(BOARD_LED3_GPIO, BOARD_LED3_GPIO_PORT, 1U << BOARD_LED3_GPIO_PIN) /*!< Turn off target LED3 */
00212 #define LED3_TOGGLE()                                            \
00213     GPIO_PortToggle(BOARD_LED3_GPIO, BOARD_LED3_GPIO_PORT, \
00214                           1U << BOARD_LED3_GPIO_PIN) /*!< Toggle on target LED3 */
00215 
00216 #if defined(__cplusplus)
00217 extern "C" {
00218 #endif /* __cplusplus */
00219 
00220 /*******************************************************************************
00221  * API
00222  ******************************************************************************/
00223 
00224 status_t BOARD_InitDebugConsole(void);
00225 void BOARD_InitSDRAM(void);
00226 
00227 #if defined(__cplusplus)
00228 }
00229 #endif /* __cplusplus */
00230 
00231 #endif /* _BOARD_H_ */