ISSDK  1.8
IoT Sensing Software Development Kit
evkmimxrt1024.c
Go to the documentation of this file.
1 /*
2  * Copyright 2020 NXP
3  * All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 /**
9  * @file evkmimxrt1024.c
10  * @brief The evkmimxrt1024.c file defines GPIO pins and I2C CMSIS utilities for evkmimxrt1024 board.
11  */
12 
13 #include "evkmimxrt1024.h"
14 
15 // I2C20 Pin Handles
16 // GPIO_SD_B1_02
18  .base = GPIO1, .pinNumber = 2, .mask = 1 << (2), .irq = GPIO1_Combined_0_15_IRQn, .portNumber = GPIO1_NUM};
19 // GPIO_SD_B1_03
21  .base = GPIO1, .pinNumber = 3, .mask = 1 << (3), .irq = GPIO1_Combined_0_15_IRQn, .portNumber = GPIO1_NUM};
22 
23 // I2C1 Pin Handles
24 // GPIO_AD_B1_14
26  .base = GPIO1, .pinNumber = 14, .mask = 1 << (14), .irq = GPIO1_Combined_0_15_IRQn, .portNumber = GPIO1_NUM};
27 // GPIO_AD_B1_15
29  .base = GPIO1, .pinNumber = 15, .mask = 1 << (15), .irq = GPIO1_Combined_0_15_IRQn, .portNumber = GPIO1_NUM};
30 
31 // LPSPI1 Pin Handles
32 // GPIO_AD_B0_10
34  .base = GPIO3, .pinNumber = 10, .mask = 1 << (10), .irq = GPIO3_Combined_0_15_IRQn, .portNumber = GPIO3_NUM};
35 // GPIO_AD_B0_13
37  .base = GPIO3, .pinNumber = 13, .mask = 1 << (13), .irq = GPIO3_Combined_0_15_IRQn, .portNumber = GPIO3_NUM};
38 // GPIO_AD_B0_12
40  .base = GPIO3, .pinNumber = 12, .mask = 1 << (12), .irq = GPIO3_Combined_0_15_IRQn, .portNumber = GPIO3_NUM};
41 // GPIO_AD_B0_11
43  .base = GPIO3, .pinNumber = 11, .mask = 1 << (11), .irq = GPIO3_Combined_0_15_IRQn, .portNumber = GPIO3_NUM};
44 
45 // LPUART1 Handle
46 // GPIO_AD_B1_09
48  .base = GPIO2, .pinNumber = 9, .mask = 1 << (9), .irq = GPIO2_Combined_0_15_IRQn, .portNumber = GPIO2_NUM};
49 // GPIO_AD_B1_08
51  .base = GPIO2, .pinNumber = 8, .mask = 1 << (8), .irq = GPIO2_Combined_16_31_IRQn, .portNumber = GPIO2_NUM};
52 
53 // evkmimxrt1024 Arduino Connector Pin Defintion
55  .base = GPIO1, .pinNumber = 26, .mask = 1 << (26), .irq = GPIO1_Combined_16_31_IRQn, .portNumber = GPIO1_NUM};
57  .base = GPIO1, .pinNumber = 27, .mask = 1 << (27), .irq = GPIO1_Combined_16_31_IRQn, .portNumber = GPIO1_NUM};
59  .base = GPIO1, .pinNumber = 20, .mask = 1 << (20), .irq = GPIO1_Combined_16_31_IRQn, .portNumber = GPIO1_NUM};
61  .base = GPIO1, .pinNumber = 21, .mask = 1 << (21), .irq = GPIO1_Combined_16_31_IRQn, .portNumber = GPIO1_NUM};
63  .base = GPIO1, .pinNumber = 11, .mask = 1 << (11), .irq = GPIO1_Combined_0_15_IRQn, .portNumber = GPIO1_NUM};
65  .base = GPIO1, .pinNumber = 24, .mask = 1 << (24), .irq = GPIO1_Combined_16_31_IRQn, .portNumber = GPIO1_NUM};
67  .base = GPIO1, .pinNumber = 9, .mask = 1 << (9), .irq = GPIO1_Combined_0_15_IRQn, .portNumber = GPIO1_NUM};
69  .base = GPIO1, .pinNumber = 10, .mask = 1 << (10), .irq = GPIO1_Combined_0_15_IRQn, .portNumber = GPIO1_NUM};
71  .base = GPIO1, .pinNumber = 18, .mask = 1 << (18), .irq = GPIO1_Combined_16_31_IRQn, .portNumber = GPIO1_NUM};
73  .base = GPIO1, .pinNumber = 19, .mask = 1 << (19), .irq = GPIO1_Combined_16_31_IRQn, .portNumber = GPIO1_NUM};
75  .base = GPIO1, .pinNumber = 3, .mask = 1 << (3), .irq = GPIO1_Combined_0_15_IRQn, .portNumber = GPIO1_NUM};
77  .base = GPIO1, .pinNumber = 2, .mask = 1 << (2), .irq = GPIO1_Combined_0_15_IRQn, .portNumber = GPIO1_NUM};
78 
79 // K3S Internal Peripheral Pin Definitions
80 // LEDs mapped to USER_LED
82  .base = GPIO1, .pinNumber = 9, .mask = 1 << (9), .irq = GPIO1_Combined_0_15_IRQn, .portNumber = GPIO1_NUM};
84  .base = GPIO1, .pinNumber = 9, .mask = 1 << (9), .irq = GPIO1_Combined_0_15_IRQn, .portNumber = GPIO1_NUM};
86  .base = GPIO1, .pinNumber = 9, .mask = 1 << (9), .irq = GPIO1_Combined_0_15_IRQn, .portNumber = GPIO1_NUM};
87 
88 // i.MXRT1050 EVK Combo Sensor Pin Definitions
90  .base = GPIO1, .pinNumber = 10, .mask = 1 << (10), .irq = GPIO1_Combined_0_15_IRQn, .portNumber = GPIO1_NUM};
92  .base = GPIO1, .pinNumber = 11, .mask = 1 << (11), .irq = GPIO1_Combined_0_15_IRQn, .portNumber = GPIO1_NUM};
93 
94 /*
95  * Execute the instrument to enter low power.
96  */
97 static void stop(void)
98 {
99  SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
100  __asm("WFI");
101 }
102 
103 /*!
104  * @brief Configures the system to WAIT power mode.
105  * API name used from Kinetis family to maintain compatibility.
106  *
107  * @param Power peripheral base address (dummy).
108  * @return Configuration error code.
109  */
110 status_t SMC_SetPowerModeWait(void *arg)
111 {
112  CLOCK_SetMode(kCLOCK_ModeWait);
113  stop();
114 
115  return kStatus_Success;
116 }
117 
118 /*!
119  * @brief Configures the system to VLPR power mode.
120  * API name used from Kinetis family to maintain compatibility.
121  *
122  * @param Power peripheral base address (dummy).
123  * @return Configuration error code.
124  */
125 status_t SMC_SetPowerModeVlpr(void *arg)
126 {
127  CLOCK_SetMode(kCLOCK_ModeWait);
128  stop();
129 
130  return kStatus_Success;
131 }
132 
133 /*! @brief Determines the Clock Frequency feature.
134  * @details The Clock Frequecny computation API required by fsl_uart_cmsis.c.
135  * @param[in] void
136  * @Constraints None
137  * @Reentrant Yes
138  * @return uint32_t Returns the clock frequency .
139  */
140 uint32_t LPUART1_GetFreq(void)
141 {
142  return BOARD_DebugConsoleSrcFreq();;
143 }
144 
145 /*! @brief Determines the Clock Frequency feature.
146  * @details The Clock Frequecny computation API required by fsl_i2c_cmsis.c.
147  * @param[in] void
148  * @Constraints None
149  * @Reentrant Yes
150  * @return uint32_t Returns the clock frequency .
151  */
152 uint32_t LPI2C1_GetFreq(void)
153 {
154  return LPI2C_CLOCK_FREQUENCY;
155 }
156 
157 /*! @brief Determines the Clock Frequency feature.
158  * @details The Clock Frequecny computation API required by fsl_spi_cmsis.c.
159  * @param[in] void
160  * @Constraints None
161  * @Reentrant Yes
162  * @return uint32_t Returns the clock frequency .
163  */
164 uint32_t LPSPI1_GetFreq(void)
165 {
166  return LPSPI_CLOCK_FREQUENCY;
167 }
The evkmimxrt1024.h file defines GPIO pin mappings for evkmimxrt1024 board.
gpioHandleiMXSDK_t D2
Definition: evkmimxrt1024.c:62
status_t SMC_SetPowerModeWait(void *arg)
Configures the system to WAIT power mode. API name used from Kinetis family to maintain compatibility...
uint32_t LPI2C1_GetFreq(void)
Determines the Clock Frequency feature.
gpioHandleiMXSDK_t D3
Definition: evkmimxrt1024.c:64
gpioHandleiMXSDK_t D10
Definition: evkmimxrt1024.c:42
gpioHandleiMXSDK_t D6
Definition: evkmimxrt1024.c:70
uint32_t BOARD_DebugConsoleSrcFreq(void)
Definition: board.c:25
gpioHandleiMXSDK_t D7
Definition: evkmimxrt1024.c:72
uint32_t LPUART1_GetFreq(void)
Determines the Clock Frequency feature.
status_t SMC_SetPowerModeVlpr(void *arg)
Configures the system to VLPR power mode. API name used from Kinetis family to maintain compatibility...
gpioHandleiMXSDK_t D5
Definition: evkmimxrt1024.c:68
gpioHandleiMXSDK_t BLUE_LED
Definition: evkmimxrt1024.c:85
gpioHandleiMXSDK_t A1
Definition: evkmimxrt1024.c:56
gpioHandleiMXSDK_t A5
Definition: evkmimxrt1024.c:25
gpioHandleiMXSDK_t D0
Definition: evkmimxrt1024.c:47
#define LPI2C_CLOCK_FREQUENCY
Definition: evkmimxrt1010.c:23
gpioHandleiMXSDK_t RED_LED
Definition: evkmimxrt1024.c:81
gpioHandleiMXSDK_t D11
Definition: evkmimxrt1024.c:39
gpioHandleiMXSDK_t D4
Definition: evkmimxrt1024.c:66
gpioHandleiMXSDK_t GREEN_LED
Definition: evkmimxrt1024.c:83
gpioHandleiMXSDK_t A0
Definition: evkmimxrt1024.c:54
gpioHandleiMXSDK_t A2
Definition: evkmimxrt1024.c:58
gpioHandleiMXSDK_t INT2
Definition: evkmimxrt1024.c:91
gpioHandleiMXSDK_t D1
Definition: evkmimxrt1024.c:50
gpioHandleiMXSDK_t D12
Definition: evkmimxrt1024.c:36
gpioHandleiMXSDK_t D8
Definition: evkmimxrt1024.c:74
uint32_t LPSPI1_GetFreq(void)
Determines the Clock Frequency feature.
The GPIO pin handle for i.MX SDK.
Definition: gpio_driver.h:49
gpioHandleiMXSDK_t A4
Definition: evkmimxrt1024.c:28
gpioHandleiMXSDK_t A3
Definition: evkmimxrt1024.c:60
GPIO_Type * base
Definition: gpio_driver.h:51
gpioHandleiMXSDK_t D9
Definition: evkmimxrt1024.c:76
#define LPSPI_CLOCK_FREQUENCY
Definition: pin_mux.h:32
gpioHandleiMXSDK_t D13
Definition: evkmimxrt1024.c:33
gpioHandleiMXSDK_t INT1
Definition: evkmimxrt1024.c:89
gpioHandleiMXSDK_t D15
Definition: evkmimxrt1024.c:17
gpioHandleiMXSDK_t D14
Definition: evkmimxrt1024.c:20