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