ISSDK  1.8
IoT Sensing Software Development Kit
evkbimxrt1050.c
Go to the documentation of this file.
1 /*
2  * Copyright 2017 NXP
3  * All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 
8 /**
9  * @file evkbimxrt1050.c
10  * @brief The evkbimxrt1050.c file defines GPIO pins and I2C CMSIS utilities for evkbimxrt1050 board.
11  */
12 
13 #include "evkbimxrt1050.h"
14 
15 // I2C20 Pin Handles
17  .pinNumber = 0,
18  .mask = 1 << (0),
19  .irq = GPIO1_Combined_0_15_IRQn,
20  .portNumber = GPIO1_NUM};
22  .pinNumber = 1,
23  .mask = 1 << (1),
24  .irq = GPIO1_Combined_0_15_IRQn,
25  .portNumber = GPIO1_NUM};
26 
27 // I2C1 Pin Handles
29  .pinNumber = 16,
30  .mask = 1 << (16),
31  .irq = GPIO1_Combined_16_31_IRQn,
32  .portNumber = GPIO1_NUM};
34  .pinNumber = 17,
35  .mask = 1 << (17),
36  .irq = GPIO1_Combined_16_31_IRQn,
37  .portNumber = GPIO1_NUM};
38 
39 // LPSPI1 Pin Handles
41  .pinNumber = 12,
42  .mask = 1 << (12),
43  .irq = GPIO3_Combined_0_15_IRQn,
44  .portNumber = GPIO3_NUM};
46  .pinNumber = 15,
47  .mask = 1 << (15),
48  .irq = GPIO3_Combined_0_15_IRQn,
49  .portNumber = GPIO3_NUM};
51  .pinNumber = 14,
52  .mask = 1 << (14),
53  .irq = GPIO3_Combined_0_15_IRQn,
54  .portNumber = GPIO3_NUM};
56  .pinNumber = 13,
57  .mask = 1 << (13),
58  .irq = GPIO3_Combined_0_15_IRQn,
59  .portNumber = GPIO3_NUM};
60 
61 // LPUART1 Handle
63  .pinNumber = 23,
64  .mask = 1 << (23),
65  .irq = GPIO1_Combined_16_31_IRQn,
66  .portNumber = GPIO1_NUM};
68  .pinNumber = 22,
69  .mask = 1 << (22),
70  .irq = GPIO1_Combined_16_31_IRQn,
71  .portNumber = GPIO1_NUM};
72 
73 // EVKMIMXRT1050 Arduino Connector Pin Defintion
75  .pinNumber = 26,
76  .mask = 1 << (26),
77  .irq = GPIO1_Combined_16_31_IRQn,
78  .portNumber = GPIO1_NUM};
80  .pinNumber = 27,
81  .mask = 1 << (27),
82  .irq = GPIO1_Combined_16_31_IRQn,
83  .portNumber = GPIO1_NUM};
85  .pinNumber = 20,
86  .mask = 1 << (20),
87  .irq = GPIO1_Combined_16_31_IRQn,
88  .portNumber = GPIO1_NUM};
90  .pinNumber = 21,
91  .mask = 1 << (21),
92  .irq = GPIO1_Combined_16_31_IRQn,
93  .portNumber = GPIO1_NUM};
95  .pinNumber = 11,
96  .mask = 1 << (11),
97  .irq = GPIO1_Combined_0_15_IRQn,
98  .portNumber = GPIO1_NUM};
100  .pinNumber = 24,
101  .mask = 1 << (24),
102  .irq = GPIO1_Combined_16_31_IRQn,
103  .portNumber = GPIO1_NUM};
105  .pinNumber = 9,
106  .mask = 1 << (9),
107  .irq = GPIO1_Combined_0_15_IRQn,
108  .portNumber = GPIO1_NUM};
110  .pinNumber = 10,
111  .mask = 1 << (10),
112  .irq = GPIO1_Combined_0_15_IRQn,
113  .portNumber = GPIO1_NUM};
115  .pinNumber = 18,
116  .mask = 1 << (18),
117  .irq = GPIO1_Combined_16_31_IRQn,
118  .portNumber = GPIO1_NUM};
120  .pinNumber = 19,
121  .mask = 1 << (19),
122  .irq = GPIO1_Combined_16_31_IRQn,
123  .portNumber = GPIO1_NUM};
125  .pinNumber = 3,
126  .mask = 1 << (3),
127  .irq = GPIO1_Combined_0_15_IRQn,
128  .portNumber = GPIO1_NUM};
130  .pinNumber = 2,
131  .mask = 1 << (2),
132  .irq = GPIO1_Combined_0_15_IRQn,
133  .portNumber = GPIO1_NUM};
134 
135 // K3S Internal Peripheral Pin Definitions
136 // LEDs mapped to USER_LED
138  .pinNumber = 9,
139  .mask = 1 << (9),
140  .irq = GPIO1_Combined_0_15_IRQn,
141  .portNumber = GPIO1_NUM};
143  .pinNumber = 9,
144  .mask = 1 << (9),
145  .irq = GPIO1_Combined_0_15_IRQn,
146  .portNumber = GPIO1_NUM};
148  .pinNumber = 9,
149  .mask = 1 << (9),
150  .irq = GPIO1_Combined_0_15_IRQn,
151  .portNumber = GPIO1_NUM};
152 
153 // i.MXRT1050 EVK Combo Sensor Pin Definitions
155  .pinNumber = 10,
156  .mask = 1 << (10),
157  .irq = GPIO1_Combined_0_15_IRQn,
158  .portNumber = GPIO1_NUM};
160  .pinNumber = 11,
161  .mask = 1 << (11),
162  .irq = GPIO1_Combined_0_15_IRQn,
163  .portNumber = GPIO1_NUM};
164 
165 
166 /*
167  * Execute the instrument to enter low power.
168  */
169 static void stop(void)
170 {
171  SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
172  __asm("WFI");
173 }
174 
175 /*!
176  * @brief Configures the system to WAIT power mode.
177  * API name used from Kinetis family to maintain compatibility.
178  *
179  * @param Power peripheral base address (dummy).
180  * @return Configuration error code.
181  */
182 status_t SMC_SetPowerModeWait(void *arg)
183 {
184  CLOCK_SetMode(kCLOCK_ModeWait);
185  stop();
186 
187  return kStatus_Success;
188 }
189 
190 /*!
191  * @brief Configures the system to VLPR power mode.
192  * API name used from Kinetis family to maintain compatibility.
193  *
194  * @param Power peripheral base address (dummy).
195  * @return Configuration error code.
196  */
197 status_t SMC_SetPowerModeVlpr(void *arg)
198 {
199  CLOCK_SetMode(kCLOCK_ModeWait);
200  stop();
201 
202  return kStatus_Success;
203 }
204 
205 /*! @brief Determines the Clock Frequency feature.
206  * @details The Clock Frequecny computation API required by fsl_uart_cmsis.c.
207  * @param[in] void
208  * @Constraints None
209  * @Reentrant Yes
210  * @return uint32_t Returns the clock frequency .
211  */
212 uint32_t LPUART1_GetFreq(void)
213 {
214  return CLOCK_GetFreq((clock_name_t) kCLOCK_Lpuart1);
215 }
216 
217 /*! @brief Determines the Clock Frequency feature.
218  * @details The Clock Frequecny computation API required by fsl_i2c_cmsis.c.
219  * @param[in] void
220  * @Constraints None
221  * @Reentrant Yes
222  * @return uint32_t Returns the clock frequency .
223  */
224 uint32_t LPI2C1_GetFreq(void)
225 {
226  return CLOCK_GetFreq((clock_name_t) kCLOCK_Lpi2c1);
227 }
228 
229 /*! @brief Determines the Clock Frequency feature.
230  * @details The Clock Frequecny computation API required by fsl_spi_cmsis.c.
231  * @param[in] void
232  * @Constraints None
233  * @Reentrant Yes
234  * @return uint32_t Returns the clock frequency .
235  */
236 uint32_t LPSPI1_GetFreq(void)
237 {
238  return CLOCK_GetFreq((clock_name_t) kCLOCK_Lpspi1);
239 }
status_t SMC_SetPowerModeVlpr(void *arg)
Configures the system to VLPR power mode. API name used from Kinetis family to maintain compatibility...
uint32_t LPI2C1_GetFreq(void)
Determines the Clock Frequency feature.
gpioHandleiMXSDK_t D2
Definition: evkbimxrt1050.c:94
gpioHandleiMXSDK_t A1
Definition: evkbimxrt1050.c:79
gpioHandleiMXSDK_t D7
gpioHandleiMXSDK_t D15
Definition: evkbimxrt1050.c:16
gpioHandleiMXSDK_t D4
gpioHandleiMXSDK_t RED_LED
gpioHandleiMXSDK_t D11
Definition: evkbimxrt1050.c:50
gpioHandleiMXSDK_t D0
Definition: evkbimxrt1050.c:62
gpioHandleiMXSDK_t D3
Definition: evkbimxrt1050.c:99
gpioHandleiMXSDK_t A2
Definition: evkbimxrt1050.c:84
gpioHandleiMXSDK_t D10
Definition: evkbimxrt1050.c:55
gpioHandleiMXSDK_t D6
gpioHandleiMXSDK_t A5
Definition: evkbimxrt1050.c:28
uint32_t LPUART1_GetFreq(void)
Determines the Clock Frequency feature.
gpioHandleiMXSDK_t BLUE_LED
gpioHandleiMXSDK_t D5
gpioHandleiMXSDK_t D12
Definition: evkbimxrt1050.c:45
gpioHandleiMXSDK_t A3
Definition: evkbimxrt1050.c:89
gpioHandleiMXSDK_t D8
gpioHandleiMXSDK_t A0
Definition: evkbimxrt1050.c:74
gpioHandleiMXSDK_t D1
Definition: evkbimxrt1050.c:67
The GPIO pin handle for i.MX SDK.
Definition: gpio_driver.h:49
gpioHandleiMXSDK_t A4
Definition: evkbimxrt1050.c:33
status_t SMC_SetPowerModeWait(void *arg)
Configures the system to WAIT power mode. API name used from Kinetis family to maintain compatibility...
GPIO_Type * base
Definition: gpio_driver.h:51
gpioHandleiMXSDK_t GREEN_LED
uint32_t LPSPI1_GetFreq(void)
Determines the Clock Frequency feature.
gpioHandleiMXSDK_t INT1
The evkbimxrt1050.h file defines GPIO pin mappings for evkbimxrt1050 board.
gpioHandleiMXSDK_t D13
Definition: evkbimxrt1050.c:40
gpioHandleiMXSDK_t INT2
gpioHandleiMXSDK_t D9
gpioHandleiMXSDK_t D14
Definition: evkbimxrt1050.c:21