ISSDK  1.8
IoT Sensing Software Development Kit
board.h
Go to the documentation of this file.
1 /*
2  * Copyright 2017 NXP
3  * All rights reserved.
4  *
5  *
6  * SPDX-License-Identifier: BSD-3-Clause
7  */
8 
9 #ifndef _BOARD_H_
10 #define _BOARD_H_
11 
12 #include "clock_config.h"
13 #include "fsl_gpio.h"
14 
15 /*******************************************************************************
16  * Definitions
17  ******************************************************************************/
18 /*! @brief The board name */
19 #define BOARD_NAME "FRDM-K32W042"
20 
21 /* The UART to use for debug messages. */
22 #define BOARD_DEBUG_UART_TYPE DEBUG_CONSOLE_DEVICE_TYPE_LPUART
23 #define BOARD_DEBUG_UART_BAUDRATE 115200U
24 #define BOARD_DEBUG_UART_BASEADDR (uint32_t) LPUART0
25 #define BOARD_DEBUG_UART_INSTANCE 0U
26 #define BOARD_DEBUG_UART_CLK_FREQ CLOCK_GetIpFreq(kCLOCK_Lpuart0)
27 #define BOARD_UART_IRQ LPUART0_IRQn
28 #define BOARD_UART_IRQ_HANDLER LPUART0_IRQHandler
29 
30 /* Definitions for eRPC MU transport layer */
31 #if defined(FSL_FEATURE_MU_SIDE_A)
32 #define MU_BASE MUA
33 #define MU_IRQ MUA_IRQn
34 #define MU_IRQ_HANDLER MUA_IRQHandler
35 #endif
36 #if defined(FSL_FEATURE_MU_SIDE_B)
37 #define MU_BASE MUB
38 #define MU_IRQ MUB_IRQn
39 #define MU_IRQ_HANDLER MUB_IRQHandler
40 #endif
41 #define MU_IRQ_PRIORITY (2)
42 
43 /*! @brief Define the port interrupt number for the board switches */
44 #define BOARD_SW2_GPIO GPIOA
45 #define BOARD_SW2_PORT PORTA
46 #define BOARD_SW2_GPIO_PIN 0U
47 #define BOARD_SW2_IRQ PORTA_IRQn
48 #define BOARD_SW2_IRQ_HANDLER PORTA_IRQHandler
49 #define BOARD_SW2_NAME "SW2"
50 
51 /* Board led color mapping */
52 #define BOARD_LED_RED_GPIO GPIOA
53 #define BOARD_LED_RED_GPIO_PIN 24U
54 
55 /*! @brief The TPM channel used for board */
56 #define BOARD_TPM_CHANNEL 0U
57 
58 #define LOGIC_LED_ON 1U
59 #define LOGIC_LED_OFF 0U
60 #define BOARD_LED1_GPIO GPIOA
61 #define BOARD_LED1_GPIO_PIN 24U
62 #define BOARD_LED2_GPIO GPIOA
63 #define BOARD_LED2_GPIO_PIN 23U
64 #define BOARD_LED3_GPIO GPIOA
65 #define BOARD_LED3_GPIO_PIN 22U
66 
67 #define LED1_INIT(output) \
68  GPIO_WritePinOutput(BOARD_LED1_GPIO, BOARD_LED1_GPIO_PIN, output); \
69  BOARD_LED1_GPIO->PDDR |= (1U << BOARD_LED1_GPIO_PIN) /*!< Enable target LED1 */
70 #define LED1_ON() GPIO_SetPinsOutput(BOARD_LED1_GPIO, 1U << BOARD_LED1_GPIO_PIN) /*!< Turn on target LED1 */
71 #define LED1_OFF() GPIO_ClearPinsOutput(BOARD_LED1_GPIO, 1U << BOARD_LED1_GPIO_PIN) /*!< Turn off target LED1 */
72 #define LED1_TOGGLE() GPIO_TogglePinsOutput(BOARD_LED1_GPIO, 1U << BOARD_LED1_GPIO_PIN) /*!< Toggle on target LED1 */
73 
74 #define LED2_INIT(output) \
75  GPIO_WritePinOutput(BOARD_LED2_GPIO, BOARD_LED2_GPIO_PIN, output); \
76  BOARD_LED2_GPIO->PDDR |= (1U << BOARD_LED2_GPIO_PIN) /*!< Enable target LED2 */
77 #define LED2_ON() GPIO_SetPinsOutput(BOARD_LED2_GPIO, 1U << BOARD_LED2_GPIO_PIN) /*!< Turn on target LED2 */
78 #define LED2_OFF() GPIO_ClearPinsOutput(BOARD_LED2_GPIO, 1U << BOARD_LED2_GPIO_PIN) /*!< Turn off target LED2 */
79 #define LED2_TOGGLE() GPIO_TogglePinsOutput(BOARD_LED2_GPIO, 1U << BOARD_LED2_GPIO_PIN) /*!< Toggle on target LED2 */
80 
81 #define LED3_INIT(output) \
82  GPIO_WritePinOutput(BOARD_LED3_GPIO, BOARD_LED3_GPIO_PIN, output); \
83  BOARD_LED3_GPIO->PDDR |= (1U << BOARD_LED3_GPIO_PIN) /*!< Enable target LED3 */
84 #define LED3_ON() GPIO_SetPinsOutput(BOARD_LED3_GPIO, 1U << BOARD_LED3_GPIO_PIN) /*!< Turn on target LED3 */
85 #define LED3_OFF() GPIO_ClearPinsOutput(BOARD_LED3_GPIO, 1U << BOARD_LED3_GPIO_PIN) /*!< Turn off target LED3 */
86 #define LED3_TOGGLE() GPIO_TogglePinsOutput(BOARD_LED3_GPIO, 1U << BOARD_LED3_GPIO_PIN) /*!< Toggle on target LED3 */
87 
88 #define BOARD_USDHC0_BASEADDR USDHC0
89 #define BOARD_USDHC_CD_PORT_BASE PORTC
90 #define BOARD_USDHC_CD_GPIO_BASE GPIOC
91 #define BOARD_USDHC_CD_GPIO_PIN 27
92 #define BOARD_USDHC_CD_PORT_IRQ PORTC_IRQn
93 #define BOARD_USDHC_CD_PORT_IRQ_HANDLER PORTC_IRQHandler
94 
95 #define BOARD_USDHC_CD_GPIO_INIT() \
96  { \
97  gpio_pin_config_t sw_config = {kGPIO_DigitalInput, 0}; \
98  GPIO_PinInit(BOARD_USDHC_CD_GPIO_BASE, BOARD_USDHC_CD_GPIO_PIN, &sw_config); \
99  PORT_SetPinInterruptConfig(BOARD_USDHC_CD_PORT_BASE, BOARD_USDHC_CD_GPIO_PIN, kPORT_InterruptRisingEdge); \
100  }
102 #define BOARD_USDHC_CD_STATUS() (GPIO_ReadPinInput(BOARD_USDHC_CD_GPIO_BASE, BOARD_USDHC_CD_GPIO_PIN))
103 
104 #define BOARD_USDHC_CD_INTERRUPT_STATUS() (GPIO_GetPinsInterruptFlags(BOARD_USDHC_CD_GPIO_BASE))
105 #define BOARD_USDHC_CD_CLEAR_INTERRUPT(flag) (GPIO_ClearPinsInterruptFlags(BOARD_USDHC_CD_GPIO_BASE, flag))
106 #define BOARD_USDHC_CARD_INSERT_CD_LEVEL (1U)
107 #define BOARD_USDHC0_CLK_FREQ (CLOCK_GetIpFreq(kCLOCK_Sdhc0))
109 #define BOARD_SD_HOST_BASEADDR BOARD_USDHC0_BASEADDR
110 #define BOARD_SD_HOST_CLK_FREQ BOARD_USDHC0_CLK_FREQ
111 #define BOARD_SD_HOST_IRQ USDHC0_IRQn
112 #define BOARD_SD_SUPPORT_180V (0U)
113 #define BOARD_MMC_HOST_BASEADDR BOARD_USDHC0_BASEADDR
114 #define BOARD_MMC_HOST_CLK_FREQ BOARD_USDHC0_CLK_FREQ
115 #define BOARD_MMC_HOST_IRQ USDHC0_IRQn
116 #define BOARD_MMC_VCCQ_SUPPLY kMMC_VoltageWindows270to360
117 #define BOARD_MMC_VCC_SUPPLY kMMC_VoltageWindows270to360
118 #define BOARD_MMC_PIN_CONFIG(speed, strength)
120 /* this define not implement, due to EVK board have no power reset circuit */
121 #define BOARD_SD_POWER_RESET_GPIO ()
122 #define BOARD_SD_POWER_RESET_GPIO_PIN ()
123 #define BOARD_USDHC_SDCARD_POWER_CONTROL_INIT()
124 #define BOARD_USDHC_SDCARD_POWER_CONTROL(state)
125 #define BOARD_SD_PIN_CONFIG(speed, strength)
126 #define BOARD_USDHC_MMCCARD_POWER_CONTROL(enable)
127 #define BOARD_USDHC_MMCCARD_POWER_CONTROL_INIT()
129 #define LLWU_SW_GPIO BOARD_SW2_GPIO
130 #define LLWU_SW_PORT BOARD_SW2_PORT
131 #define LLWU_SW_GPIO_PIN BOARD_SW2_GPIO_PIN
132 #define LLWU_SW_IRQ BOARD_SW2_IRQ
133 #define LLWU_SW_IRQ_HANDLER BOARD_SW2_IRQ_HANDLER
134 #define LLWU_SW_NAME BOARD_SW2_NAME
136 #define BOARD_SPI_FLASH_CS_GPIO GPIOB
137 #define BOARD_SPI_FLASH_CS_GPIO_PIN 22U
138 #if defined(__cplusplus)
139 extern "C" {
140 #endif /* __cplusplus */
141 
142 /*******************************************************************************
143  * API
144  ******************************************************************************/
145 
146 void BOARD_InitDebugConsole(void);
147 
148 #if defined(__cplusplus)
149 }
150 #endif /* __cplusplus */
151 
152 #endif /* _BOARD_H_ */
void BOARD_InitDebugConsole(void)
Definition: board.c:15