NXP Touch Cursor example for LPCXpresso54608, modified for use with Mbed OS.
Embed:
(wiki syntax)
Show/hide line numbers
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_ */
Generated on Sun Jul 17 2022 23:10:29 by
1.7.2
Jenny Plunkett