aboutsummaryrefslogtreecommitdiff
path: root/lib/chibios-contrib/ext/mcux-sdk/boards/frdmk32l3a6/board.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chibios-contrib/ext/mcux-sdk/boards/frdmk32l3a6/board.h')
-rw-r--r--lib/chibios-contrib/ext/mcux-sdk/boards/frdmk32l3a6/board.h157
1 files changed, 157 insertions, 0 deletions
diff --git a/lib/chibios-contrib/ext/mcux-sdk/boards/frdmk32l3a6/board.h b/lib/chibios-contrib/ext/mcux-sdk/boards/frdmk32l3a6/board.h
new file mode 100644
index 000000000..97ff6d243
--- /dev/null
+++ b/lib/chibios-contrib/ext/mcux-sdk/boards/frdmk32l3a6/board.h
@@ -0,0 +1,157 @@
1/*
2 * Copyright 2019 NXP
3 * All rights reserved.
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_gpio.h"
13#include "fsl_port.h"
14/*******************************************************************************
15 * Definitions
16 ******************************************************************************/
17/*! @brief The board name */
18#define BOARD_NAME "FRDM-K32L3A6"
19
20/* The UART to use for debug messages. */
21#define BOARD_DEBUG_UART_TYPE kSerialPort_Uart
22#define BOARD_DEBUG_UART_BAUDRATE 115200U
23#define BOARD_DEBUG_UART_BASEADDR (uint32_t) LPUART0
24#define BOARD_DEBUG_UART_INSTANCE 0U
25#define BOARD_DEBUG_UART_CLK_FREQ CLOCK_GetIpFreq(kCLOCK_Lpuart0)
26#define BOARD_UART_IRQ LPUART0_IRQn
27#define BOARD_UART_IRQ_HANDLER LPUART0_IRQHandler
28
29/* @Brief Board accelerator sensor configuration */
30#define BOARD_ACCEL_I2C_BASEADDR LPI2C3
31#define BOARD_ACCEL_I2C_CLOCK_FREQ (CLOCK_GetIpFreq(kCLOCK_Lpi2c3))
32
33/* Definitions for eRPC MU transport layer */
34#if defined(FSL_FEATURE_MU_SIDE_A)
35#define MU_BASE MUA
36#define MU_IRQ MUA_IRQn
37#define MU_IRQ_HANDLER MUA_IRQHandler
38#endif
39#if defined(FSL_FEATURE_MU_SIDE_B)
40#define MU_BASE MUB
41#define MU_IRQ MUB_IRQn
42#define MU_IRQ_HANDLER MUB_IRQHandler
43#endif
44#define MU_IRQ_PRIORITY (2)
45
46/*! @brief Define the port interrupt number for the board switches */
47#ifndef BOARD_SW2_GPIO
48#define BOARD_SW2_GPIO GPIOA
49#endif
50#ifndef BOARD_SW2_PORT
51#define BOARD_SW2_PORT PORTA
52#endif
53#ifndef BOARD_SW2_GPIO_PIN
54#define BOARD_SW2_GPIO_PIN 0U
55#endif
56#define BOARD_SW2_IRQ PORTA_IRQn
57#define BOARD_SW2_IRQ_HANDLER PORTA_IRQHandler
58#define BOARD_SW2_NAME "SW2"
59
60/* Board led color mapping */
61#ifndef BOARD_LED_RED_GPIO
62#define BOARD_LED_RED_GPIO GPIOA
63#endif
64#ifndef BOARD_LED_RED_GPIO_PIN
65#define BOARD_LED_RED_GPIO_PIN 24U
66#endif
67
68/*! @brief The TPM channel used for board */
69#define BOARD_TPM_CHANNEL 0U
70
71#define LOGIC_LED_ON 1U
72#define LOGIC_LED_OFF 0U
73#ifndef BOARD_LED1_GPIO
74#define BOARD_LED1_GPIO GPIOA
75#endif
76#ifndef BOARD_LED1_GPIO_PIN
77#define BOARD_LED1_GPIO_PIN 24U
78#endif
79#ifndef BOARD_LED2_GPIO
80#define BOARD_LED2_GPIO GPIOA
81#endif
82#ifndef BOARD_LED2_GPIO_PIN
83#define BOARD_LED2_GPIO_PIN 23U
84#endif
85#ifndef BOARD_LED3_GPIO
86#define BOARD_LED3_GPIO GPIOA
87#endif
88#ifndef BOARD_LED3_GPIO_PIN
89#define BOARD_LED3_GPIO_PIN 22U
90#endif
91
92#define LED1_INIT(output) \
93 GPIO_PinWrite(BOARD_LED1_GPIO, BOARD_LED1_GPIO_PIN, output); \
94 BOARD_LED1_GPIO->PDDR |= (1U << BOARD_LED1_GPIO_PIN) /*!< Enable target LED1 */
95#define LED1_ON() GPIO_PortSet(BOARD_LED1_GPIO, 1U << BOARD_LED1_GPIO_PIN) /*!< Turn on target LED1 */
96#define LED1_OFF() GPIO_PortClear(BOARD_LED1_GPIO, 1U << BOARD_LED1_GPIO_PIN) /*!< Turn off target LED1 */
97#define LED1_TOGGLE() GPIO_PortToggle(BOARD_LED1_GPIO, 1U << BOARD_LED1_GPIO_PIN) /*!< Toggle on target LED1 */
98
99#define LED2_INIT(output) \
100 GPIO_PinWrite(BOARD_LED2_GPIO, BOARD_LED2_GPIO_PIN, output); \
101 BOARD_LED2_GPIO->PDDR |= (1U << BOARD_LED2_GPIO_PIN) /*!< Enable target LED2 */
102#define LED2_ON() GPIO_PortSet(BOARD_LED2_GPIO, 1U << BOARD_LED2_GPIO_PIN) /*!< Turn on target LED2 */
103#define LED2_OFF() GPIO_PortClear(BOARD_LED2_GPIO, 1U << BOARD_LED2_GPIO_PIN) /*!< Turn off target LED2 */
104#define LED2_TOGGLE() GPIO_PortToggle(BOARD_LED2_GPIO, 1U << BOARD_LED2_GPIO_PIN) /*!< Toggle on target LED2 */
105
106#define LED3_INIT(output) \
107 GPIO_PinWrite(BOARD_LED3_GPIO, BOARD_LED3_GPIO_PIN, output); \
108 BOARD_LED3_GPIO->PDDR |= (1U << BOARD_LED3_GPIO_PIN) /*!< Enable target LED3 */
109#define LED3_ON() GPIO_PortSet(BOARD_LED3_GPIO, 1U << BOARD_LED3_GPIO_PIN) /*!< Turn on target LED3 */
110#define LED3_OFF() GPIO_PortClear(BOARD_LED3_GPIO, 1U << BOARD_LED3_GPIO_PIN) /*!< Turn off target LED3 */
111#define LED3_TOGGLE() GPIO_PortToggle(BOARD_LED3_GPIO, 1U << BOARD_LED3_GPIO_PIN) /*!< Toggle on target LED3 */
112#define LLWU_SW_GPIO BOARD_SW2_GPIO
113#define LLWU_SW_PORT BOARD_SW2_PORT
114#define LLWU_SW_GPIO_PIN BOARD_SW2_GPIO_PIN
115#define LLWU_SW_IRQ BOARD_SW2_IRQ
116#define LLWU_SW_IRQ_HANDLER BOARD_SW2_IRQ_HANDLER
117#define LLWU_SW_NAME BOARD_SW2_NAME
118
119#ifndef BOARD_SPI_FLASH_CS_GPIO
120#define BOARD_SPI_FLASH_CS_GPIO GPIOB
121#endif
122#ifndef BOARD_SPI_FLASH_CS_GPIO_PIN
123#define BOARD_SPI_FLASH_CS_GPIO_PIN 22U
124#endif
125#if defined(__cplusplus)
126extern "C" {
127#endif /* __cplusplus */
128
129/*******************************************************************************
130 * API
131 ******************************************************************************/
132
133void BOARD_InitDebugConsole(void);
134#if defined(SDK_I2C_BASED_COMPONENT_USED) && SDK_I2C_BASED_COMPONENT_USED
135void BOARD_LPI2C_Init(LPI2C_Type *base, uint32_t clkSrc_Hz);
136status_t BOARD_LPI2C_Send(LPI2C_Type *base,
137 uint8_t deviceAddress,
138 uint32_t subAddress,
139 uint8_t subaddressSize,
140 uint8_t *txBuff,
141 uint8_t txBuffSize);
142status_t BOARD_LPI2C_Receive(LPI2C_Type *base,
143 uint8_t deviceAddress,
144 uint32_t subAddress,
145 uint8_t subaddressSize,
146 uint8_t *rxBuff,
147 uint8_t rxBuffSize);
148void BOARD_Accel_I2C_Init(void);
149status_t BOARD_Accel_I2C_Send(uint8_t deviceAddress, uint32_t subAddress, uint8_t subaddressSize, uint32_t txBuff);
150status_t BOARD_Accel_I2C_Receive(
151 uint8_t deviceAddress, uint32_t subAddress, uint8_t subaddressSize, uint8_t *rxBuff, uint8_t rxBuffSize);
152#endif /* SDK_I2C_BASED_COMPONENT_USED */
153#if defined(__cplusplus)
154}
155#endif /* __cplusplus */
156
157#endif /* _BOARD_H_ */