1 /* 2 * Copyright (c) 2016, Freescale Semiconductor, Inc. 3 * Copyright 2016-2018 NXP 4 * 5 * SPDX-License-Identifier: BSD-3-Clause 6 */ 7 8 #ifndef _BOARD_H_ 9 #define _BOARD_H_ 10 11 #include "clock_config.h" 12 #include "fsl_common.h" 13 #include "fsl_gpio.h" 14 15 /******************************************************************************* 16 * Definitions 17 ******************************************************************************/ 18 /*! @brief The board name */ 19 #define BOARD_NAME "LPCXPRESSO812MAX" 20 21 #define BOARD_EXTCLKINRATE (0) 22 23 /*! @brief The UART to use for debug messages. */ 24 #define BOARD_DEBUG_USART_TYPE kSerialPort_Uart 25 #define BOARD_DEBUG_USART_BASEADDR (uint32_t) USART0 26 #define BOARD_DEBUG_USART_INSTANCE 0U 27 #define BOARD_DEBUG_USART_CLK_FREQ CLOCK_GetMainClkFreq() 28 #define BOARD_DEBUG_USART_CLK_ATTACH kUART0_Clk_From_MainClk 29 #define BOARD_DEBUG_USART_RST kUART0_RST_N_SHIFT_RSTn 30 #define BOARD_UART_IRQ USART0_IRQn 31 #define BOARD_UART_IRQ_HANDLER USART0_IRQHandler 32 33 #ifndef BOARD_DEBUG_USART_BAUDRATE 34 #define BOARD_DEBUG_USART_BAUDRATE 9600 35 #endif /* BOARD_DEBUG_UART_BAUDRATE */ 36 37 /*! @brief Board led mapping */ 38 #define LOGIC_LED_ON 0U 39 #define LOGIC_LED_OFF 1U 40 41 /* LED_GREEN */ 42 #ifndef BOARD_LED_GREEN_GPIO 43 #define BOARD_LED_GREEN_GPIO GPIO 44 #endif 45 #define BOARD_LED_GREEN_GPIO_PORT 0U 46 #ifndef BOARD_LED_GREEN_GPIO_PIN 47 #define BOARD_LED_GREEN_GPIO_PIN 17U 48 #endif 49 50 #define LED_GREEN_INIT(output) \ 51 GPIO_PortInit(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PORT); \ 52 GPIO_PinInit(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PORT, BOARD_LED_GREEN_GPIO_PIN, \ 53 &(gpio_pin_config_t){kGPIO_DigitalOutput, (output)}); /*!< Enable target LED_GREEN */ 54 #define LED_GREEN_ON() \ 55 GPIO_PortClear(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PORT, \ 56 1U << BOARD_LED_GREEN_GPIO_PIN) /*!< Turn on target LED_GREEN \ \ \ 57 */ 58 #define LED_GREEN_OFF() \ 59 GPIO_PortSet(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PORT, \ 60 1U << BOARD_LED_GREEN_GPIO_PIN) /*!< Turn off target LED_GREEN \ \ \ 61 */ 62 #define LED_GREEN_TOGGLE() \ 63 GPIO_PortToggle(BOARD_LED_GREEN_GPIO, BOARD_LED_GREEN_GPIO_PORT, \ 64 1U << BOARD_LED_GREEN_GPIO_PIN) /*!< Toggle on target LED_GREEN */ 65 66 /* LED_BLUE */ 67 #ifndef BOARD_LED_BLUE_GPIO 68 #define BOARD_LED_BLUE_GPIO GPIO 69 #endif 70 #define BOARD_LED_BLUE_GPIO_PORT 1U 71 #ifndef BOARD_LED_BLUE_GPIO_PIN 72 #define BOARD_LED_BLUE_GPIO_PIN 16U 73 #endif 74 75 #ifndef BOARD_SW1_GPIO 76 #define BOARD_SW1_GPIO GPIO 77 #endif 78 #define BOARD_SW1_GPIO_PORT 0U 79 #ifndef BOARD_SW1_GPIO_PIN 80 #define BOARD_SW1_GPIO_PIN 5U 81 #endif 82 #define BOARD_SW1_NAME "SW1" 83 #define BOARD_SW1_IRQ PIN_INT0_IRQn 84 #define BOARD_SW1_IRQ_HANDLER PIN_INT0_IRQHandler 85 86 #define LED_BLUE_INIT(output) \ 87 GPIO_PortInit(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PORT); \ 88 GPIO_PinInit(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PORT, BOARD_LED_BLUE_GPIO_PIN, \ 89 &(gpio_pin_config_t){kGPIO_DigitalOutput, (output)}); /*!< Enable target LED_GREEN */ 90 #define LED_BLUE_ON() \ 91 GPIO_PortClear(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PORT, \ 92 1U << BOARD_LED_BLUE_GPIO_PIN) /*!< Turn on target LED_BLUE \ \ \ 93 */ 94 #define LED_BLUE_OFF() \ 95 GPIO_PortSet(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PORT, \ 96 1U << BOARD_LED_BLUE_GPIO_PIN) /*!< Turn off target LED_BLUE \ \ \ 97 */ 98 #define LED_BLUE_TOGGLE() \ 99 GPIO_PortToggle(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PORT, \ 100 1U << BOARD_LED_BLUE_GPIO_PIN) /*!< Toggle on target LED_BLUE */ 101 102 /* LED_RED */ 103 #ifndef BOARD_LED_RED_GPIO 104 #define BOARD_LED_RED_GPIO GPIO 105 #endif 106 #define BOARD_LED_RED_GPIO_PORT 0U 107 #ifndef BOARD_LED_RED_GPIO_PIN 108 #define BOARD_LED_RED_GPIO_PIN 7U 109 #endif 110 111 #define LED_RED_INIT(output) \ 112 GPIO_PortInit(BOARD_LED_RED_GPIO, BOARD_LED_RED_GPIO_PORT); \ 113 GPIO_PinInit(BOARD_LED_RED_GPIO, BOARD_LED_RED_GPIO_PORT, BOARD_LED_RED_GPIO_PIN, \ 114 &(gpio_pin_config_t){kGPIO_DigitalOutput, (output)}); /*!< Enable target LED_GREEN */ 115 #define LED_RED_ON() \ 116 GPIO_PortClear(BOARD_LED_RED_GPIO, BOARD_LED_RED_GPIO_PORT, \ 117 1U << BOARD_LED_RED_GPIO_PIN) /*!< Turn on target LED_RED \ \ \ 118 */ 119 #define LED_RED_OFF() \ 120 GPIO_PortSet(BOARD_LED_RED_GPIO, BOARD_LED_RED_GPIO_PORT, \ 121 1U << BOARD_LED_RED_GPIO_PIN) /*!< Turn off target LED_RED \ \ \ 122 */ 123 #define LED_RED_TOGGLE() \ 124 GPIO_PortToggle(BOARD_LED_RED_GPIO, BOARD_LED_RED_GPIO_PORT, \ 125 1U << BOARD_LED_RED_GPIO_PIN) /*!< Toggle on target LED_RED */ 126 127 #if defined(__cplusplus) 128 extern "C" { 129 #endif /* __cplusplus */ 130 131 /******************************************************************************* 132 * API 133 ******************************************************************************/ 134 135 status_t BOARD_InitDebugConsole(void); 136 137 #if defined(__cplusplus) 138 } 139 #endif /* __cplusplus */ 140 141 #endif /* _BOARD_H_ */ 142