Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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