ISSDK  1.7
IoT Sensing Software Development Kit
frdm_k22f.c
Go to the documentation of this file.
1 /*
2  * The Clear BSD License
3  * Copyright (c) 2016, Freescale Semiconductor, Inc.
4  * Copyright 2016-2017 NXP
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without modification,
8  * are permitted (subject to the limitations in the disclaimer below) provided
9  * that the following conditions are met:
10  *
11  * o Redistributions of source code must retain the above copyright notice, this list
12  * of conditions and the following disclaimer.
13  *
14  * o Redistributions in binary form must reproduce the above copyright notice, this
15  * list of conditions and the following disclaimer in the documentation and/or
16  * other materials provided with the distribution.
17  *
18  * o Neither the name of the copyright holder nor the names of its
19  * contributors may be used to endorse or promote products derived from this
20  * software without specific prior written permission.
21  *
22  * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE.
23  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
24  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
25  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
27  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
30  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
32  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33  */
34 
35 /*! \file frdm_k22f.c
36  \brief The frdm_k22f.c file defines GPIO pins for FRDM-K22F board
37 */
38 
39 #include "frdm_k22f.h"
40 
41 // I2C0 Handle
42 gpioHandleKSDK_t A5 = {.base = GPIOB,
43  .portBase = PORTB,
44  .pinNumber = 2,
45  .mask = 1 << (2),
46  .irq = PORTB_IRQn,
47  .clockName = kCLOCK_PortB,
48  .portNumber = PORTB_NUM};
49 gpioHandleKSDK_t A4 = {.base = GPIOB,
50  .portBase = PORTB,
51  .pinNumber = 3,
52  .mask = 1 << (3),
53  .irq = PORTB_IRQn,
54  .clockName = kCLOCK_PortB,
55  .portNumber = PORTB_NUM};
56 
57 // SPI1 Handle
59  .portBase = PORTD,
60  .pinNumber = 5,
61  .mask = 1 << (5),
62  .irq = PORTD_IRQn,
63  .clockName = kCLOCK_PortD,
64  .portNumber = PORTD_NUM};
66  .portBase = PORTD,
67  .pinNumber = 6,
68  .mask = 1 << (6),
69  .irq = PORTD_IRQn,
70  .clockName = kCLOCK_PortD,
71  .portNumber = PORTD_NUM};
73  .portBase = PORTD,
74  .pinNumber = 7,
75  .mask = 1 << (7),
76  .irq = PORTD_IRQn,
77  .clockName = kCLOCK_PortD,
78  .portNumber = PORTD_NUM};
79 
80 // UART1 Handle
82  .portBase = PORTE,
83  .pinNumber = 0,
84  .mask = 1 << (0),
85  .irq = PORTE_IRQn,
86  .clockName = kCLOCK_PortE,
87  .portNumber = PORTE_NUM};
89  .portBase = PORTE,
90  .pinNumber = 1,
91  .mask = 1 << (1),
92  .irq = PORTE_IRQn,
93  .clockName = kCLOCK_PortE,
94  .portNumber = PORTE_NUM};
95 
96 // FRDM-K22F Arduino Connector Pin Defintion
97 gpioHandleKSDK_t A0 = {.base = GPIOB,
98  .portBase = PORTB,
99  .pinNumber = 0,
100  .mask = 1 << (0),
101  .irq = PORTB_IRQn,
102  .clockName = kCLOCK_PortB,
103  .portNumber = PORTB_NUM};
105  .portBase = PORTB,
106  .pinNumber = 1,
107  .mask = 1 << (1),
108  .irq = PORTB_IRQn,
109  .clockName = kCLOCK_PortB,
110  .portNumber = PORTB_NUM};
112  .portBase = PORTC,
113  .pinNumber = 1,
114  .mask = 1 << (1),
115  .irq = PORTC_IRQn,
116  .clockName = kCLOCK_PortC,
117  .portNumber = PORTC_NUM};
119  .portBase = PORTC,
120  .pinNumber = 2,
121  .mask = 1 << (2),
122  .irq = PORTC_IRQn,
123  .clockName = kCLOCK_PortC,
124  .portNumber = PORTC_NUM};
125 
126 // UART2 Handle
128  .portBase = PORTD,
129  .pinNumber = 2,
130  .mask = 1 << (2),
131  .irq = PORTD_IRQn,
132  .clockName = kCLOCK_PortD,
133  .portNumber = PORTD_NUM};
135  .portBase = PORTD,
136  .pinNumber = 3,
137  .mask = 1 << (3),
138  .irq = PORTD_IRQn,
139  .clockName = kCLOCK_PortD,
140  .portNumber = PORTD_NUM};
141 
143  .portBase = PORTB,
144  .pinNumber = 16,
145  .mask = 1 << (16),
146  .irq = PORTB_IRQn,
147  .clockName = kCLOCK_PortB,
148  .portNumber = PORTB_NUM};
150  .portBase = PORTA,
151  .pinNumber = 2,
152  .mask = 1 << (2),
153  .irq = PORTA_IRQn,
154  .clockName = kCLOCK_PortA,
155  .portNumber = PORTA_NUM};
157  .portBase = PORTA,
158  .pinNumber = 4,
159  .mask = 1 << (4),
160  .irq = PORTA_IRQn,
161  .clockName = kCLOCK_PortA,
162  .portNumber = PORTA_NUM};
164  .portBase = PORTB,
165  .pinNumber = 18,
166  .mask = 1 << (18),
167  .irq = PORTB_IRQn,
168  .clockName = kCLOCK_PortB,
169  .portNumber = PORTB_NUM};
171  .portBase = PORTC,
172  .pinNumber = 3,
173  .mask = 1 << (3),
174  .irq = PORTC_IRQn,
175  .clockName = kCLOCK_PortC,
176  .portNumber = PORTC_NUM};
178  .portBase = PORTC,
179  .pinNumber = 6,
180  .mask = 1 << (6),
181  .irq = PORTC_IRQn,
182  .clockName = kCLOCK_PortC,
183  .portNumber = PORTC_NUM};
185  .portBase = PORTB,
186  .pinNumber = 19,
187  .mask = 1 << (19),
188  .irq = PORTB_IRQn,
189  .clockName = kCLOCK_PortB,
190  .portNumber = PORTB_NUM};
192  .portBase = PORTA,
193  .pinNumber = 1,
194  .mask = 1 << (1),
195  .irq = PORTA_IRQn,
196  .clockName = kCLOCK_PortA,
197  .portNumber = PORTA_NUM};
199  .portBase = PORTD,
200  .pinNumber = 4,
201  .mask = 1 << (4),
202  .irq = PORTD_IRQn,
203  .clockName = kCLOCK_PortD,
204  .portNumber = PORTD_NUM};
205 
206 // FRDM-K22F RGB LED Pin Definitions
208  .portBase = PORTA,
209  .pinNumber = 1,
210  .mask = 1 << (1),
211  .irq = PORTA_IRQn,
212  .clockName = kCLOCK_PortA,
213  .portNumber = PORTA_NUM};
215  .portBase = PORTA,
216  .pinNumber = 2,
217  .mask = 1 << (2),
218  .irq = PORTA_IRQn,
219  .clockName = kCLOCK_PortA,
220  .portNumber = PORTA_NUM};
222  .portBase = PORTD,
223  .pinNumber = 5,
224  .mask = 1 << (5),
225  .irq = PORTD_IRQn,
226  .clockName = kCLOCK_PortD,
227  .portNumber = PORTD_NUM};
228 
229 // FRDM-K22F I2C Inertial Sensor Pin Definitions
231  .portBase = PORTD,
232  .pinNumber = 0,
233  .mask = 1 << (0),
234  .irq = PORTD_IRQn,
235  .clockName = kCLOCK_PortD,
236  .portNumber = PORTD_NUM};
238  .portBase = PORTD,
239  .pinNumber = 1,
240  .mask = 1 << (1),
241  .irq = PORTD_IRQn,
242  .clockName = kCLOCK_PortD,
243  .portNumber = PORTD_NUM};
244 
245 /*! @brief Determines the Clock Frequency feature.
246  * @details The Clock Frequecny computation API required by fsl_uart_cmsis.c.
247  * @param[in] void
248  * @Constraints None
249  * @Reentrant Yes
250  * @return uint32_t Returns the clock frequency .
251  */
252 uint32_t UART0_GetFreq(void)
253 {
254  return CLOCK_GetFreq(UART0_CLK_SRC);
255 }
256 
257 /*! @brief Determines the Clock Frequency feature.
258  * @details The Clock Frequecny computation API required by fsl_uart_cmsis.c.
259  * @param[in] void
260  * @Constraints None
261  * @Reentrant Yes
262  * @return uint32_t Returns the clock frequency .
263  */
264 uint32_t UART1_GetFreq(void)
265 {
266  return CLOCK_GetFreq(UART1_CLK_SRC);
267 }
268 
269 /*! @brief Determines the Clock Frequency feature.
270  * @details The Clock Frequecny computation API required by fsl_uart_cmsis.c.
271  * @param[in] void
272  * @Constraints None
273  * @Reentrant Yes
274  * @return uint32_t Returns the clock frequency .
275  */
276 uint32_t UART2_GetFreq(void)
277 {
278  return CLOCK_GetFreq(UART2_CLK_SRC);
279 }
280 
281 /*! @brief Determines the Clock Frequency feature.
282  * @details The Clock Frequecny computation API required by fsl_i2c_cmsis.c.
283  * @param[in] void
284  * @Constraints None
285  * @Reentrant Yes
286  * @return uint32_t Returns the clock frequency .
287  */
288 uint32_t I2C0_GetFreq(void)
289 {
290  return CLOCK_GetFreq(I2C0_CLK_SRC);
291 }
292 
293 /*! @brief Determines the Clock Frequency feature.
294  * @details The Clock Frequecny computation API required by fsl_i2c_cmsis.c.
295  * @param[in] void
296  * @Constraints None
297  * @Reentrant Yes
298  * @return uint32_t Returns the clock frequency .
299  */
300 uint32_t I2C1_GetFreq(void)
301 {
302  return CLOCK_GetFreq(I2C1_CLK_SRC);
303 }
304 
305 /*! @brief Determines the Clock Frequency feature.
306  * @details The Clock Frequecny computation API required by fsl_spi_cmsis.c.
307  * @param[in] void
308  * @Constraints None
309  * @Reentrant Yes
310  * @return uint32_t Returns the clock frequency .
311  */
312 uint32_t DSPI0_GetFreq(void)
313 {
314  return CLOCK_GetBusClkFreq();
315 }
316 
317 /*! @brief Determines the Clock Frequency feature.
318  * @details The Clock Frequecny computation API required by fsl_spi_cmsis.c.
319  * @param[in] void
320  * @Constraints None
321  * @Reentrant Yes
322  * @return uint32_t Returns the clock frequency .
323  */
324 uint32_t DSPI1_GetFreq(void)
325 {
326  return CLOCK_GetBusClkFreq();
327 }
gpioHandleKSDK_t D1
Definition: frdm_k22f.c:134
gpioHandleKSDK_t RED_LED
Definition: frdm_k22f.c:207
uint32_t DSPI0_GetFreq(void)
Determines the Clock Frequency feature.
Definition: frdm_k22f.c:312
The GPIO pin handle for KSDK.
Definition: gpio_driver.h:75
gpioHandleKSDK_t D10
Definition: frdm_k22f.c:198
uint32_t UART2_GetFreq(void)
Determines the Clock Frequency feature.
Definition: frdm_k22f.c:276
gpioHandleKSDK_t D8
Definition: frdm_k22f.c:184
The frdm_k22f.h file defines GPIO pins for FRDM-K22F board.
gpioHandleKSDK_t D3
Definition: frdm_k22f.c:149
gpioHandleKSDK_t D14
Definition: frdm_k22f.c:81
gpioHandleKSDK_t D6
Definition: frdm_k22f.c:170
gpioHandleKSDK_t GREEN_LED
Definition: frdm_k22f.c:214
gpioHandleKSDK_t A2
Definition: frdm_k22f.c:111
gpioHandleKSDK_t D9
Definition: frdm_k22f.c:191
gpioHandleKSDK_t D0
Definition: frdm_k22f.c:127
gpioHandleKSDK_t A0
Definition: frdm_k22f.c:97
gpioHandleKSDK_t A4
Definition: frdm_k22f.c:49
gpioHandleKSDK_t D15
Definition: frdm_k22f.c:88
gpioHandleKSDK_t D12
Definition: frdm_k22f.c:72
gpioHandleKSDK_t INT2
Definition: frdm_k22f.c:237
uint32_t I2C1_GetFreq(void)
Determines the Clock Frequency feature.
Definition: frdm_k22f.c:300
uint32_t UART1_GetFreq(void)
Determines the Clock Frequency feature.
Definition: frdm_k22f.c:264
gpioHandleKSDK_t D7
Definition: frdm_k22f.c:177
gpioHandleKSDK_t D4
Definition: frdm_k22f.c:156
uint32_t I2C0_GetFreq(void)
Determines the Clock Frequency feature.
Definition: frdm_k22f.c:288
gpioHandleKSDK_t A5
Definition: frdm_k22f.c:42
gpioHandleKSDK_t D2
Definition: frdm_k22f.c:142
gpioHandleKSDK_t INT1
Definition: frdm_k22f.c:230
gpioHandleKSDK_t A3
Definition: frdm_k22f.c:118
gpioHandleKSDK_t D13
Definition: frdm_k22f.c:58
gpioHandleKSDK_t BLUE_LED
Definition: frdm_k22f.c:221
GPIO_Type * base
Definition: gpio_driver.h:77
uint32_t DSPI1_GetFreq(void)
Determines the Clock Frequency feature.
Definition: frdm_k22f.c:324
gpioHandleKSDK_t A1
Definition: frdm_k22f.c:104
gpioHandleKSDK_t D5
Definition: frdm_k22f.c:163
gpioHandleKSDK_t D11
Definition: frdm_k22f.c:65
uint32_t UART0_GetFreq(void)
Determines the Clock Frequency feature.
Definition: frdm_k22f.c:252