S32 SDK
sim_hal_S32K144.c
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2013 - 2014, Freescale Semiconductor, Inc.
3  * Copyright 2016 NXP
4  * All rights reserved.
5  *
6  * THIS SOFTWARE IS PROVIDED BY NXP "AS IS" AND ANY EXPRESSED OR
7  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
8  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
9  * IN NO EVENT SHALL NXP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
10  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
11  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
12  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
13  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
14  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
15  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
16  * THE POSSIBILITY OF SUCH DAMAGE.
17  */
18 
19 #include "device_registers.h"
20 #include "sim_hal.h"
21 
22 /*******************************************************************************
23  * Definitions
24  ******************************************************************************/
25 
26 /* @brief LPO fixed clock frequency. */
27 #define LPO_128K_FREQUENCY 128000
28 #define LPO_32K_FREQUENCY 32000
29 #define LPO_1K_FREQUENCY 1000
30 
31 /*******************************************************************************
32  * APIs
33  ******************************************************************************/
34 
35 /*FUNCTION*********************************************************************
36  *
37  * Function Name : SIM_HAL_GetClkoutDefaultConfig
38  * Description : This function gets the default SIM CLKOUT configuration.
39  *
40  * Implements SIM_HAL_GetClkoutDefaultConfig_Activity
41  *END*************************************************************************/
43 {
44  DEV_ASSERT(config != NULL);
45 
46  config->initialize = true;
47  config->enable = false;
49  config->divider = SIM_CLKOUT_DIV_BY_1;
50 }
51 
52 /*FUNCTION*********************************************************************
53  *
54  * Function Name : SIM_HAL_GetClkoutDefaultConfig
55  * Description : This function gets the default SIM CLKOUT configuration.
56  *
57  * Implements SIM_HAL_GetClkoutConfig_Activity
58  *END*************************************************************************/
60 {
61  uint32_t value;
62  DEV_ASSERT(config != NULL);
63 
64  value = base->CHIPCTL;
65 
66  config->enable = (((value & SIM_CHIPCTL_CLKOUTEN_MASK) >> SIM_CHIPCTL_CLKOUTEN_SHIFT) == 0U) ? false : true;
67 
69  {
70  case 14U:
72  break;
73  case 12U:
75  break;
76  case 10U:
78  break;
79  case 8U:
81  break;
82  case 6U:
84  break;
85  case 4U:
87  break;
88  case 2U:
90  break;
91  case 0U:
92  /* Pass-though */
93  default:
95  break;
96  }
97 
99  {
100  case 7U:
101  config->divider = SIM_CLKOUT_DIV_BY_8;
102  break;
103  case 6U:
104  config->divider = SIM_CLKOUT_DIV_BY_7;
105  break;
106  case 5U:
107  config->divider = SIM_CLKOUT_DIV_BY_6;
108  break;
109  case 4U:
110  config->divider = SIM_CLKOUT_DIV_BY_5;
111  break;
112  case 3U:
113  config->divider = SIM_CLKOUT_DIV_BY_4;
114  break;
115  case 2U:
116  config->divider = SIM_CLKOUT_DIV_BY_3;
117  break;
118  case 1U:
119  config->divider = SIM_CLKOUT_DIV_BY_2;
120  break;
121  case 0U:
122  /* Pass-though */
123  default:
124  config->divider = SIM_CLKOUT_DIV_BY_1;
125  break;
126  }
127 }
128 /*FUNCTION*********************************************************************
129  *
130  * Function Name : SIM_HAL_InitClkout
131  * Description : This function enables the SIM CLKOUT according to the configuration.
132  * @note This function ignores initialize member
133  *
134  * Implements SIM_HAL_InitClkout_Activity
135  *END*************************************************************************/
137 {
138  uint32_t regValue;
139  DEV_ASSERT(config != NULL);
140 
141  /* Read current configuration. */
142  regValue = base->CHIPCTL;
143 
144  /* Clear previous values. */
145  regValue &= ~( SIM_CHIPCTL_CLKOUTEN_MASK |
148 
149  /* Configure based on configuration*/
150  regValue |= SIM_CHIPCTL_CLKOUTEN(config->enable ? 1UL : 0UL);
151  regValue |= SIM_CHIPCTL_CLKOUTSEL(config->source);
152  regValue |= SIM_CHIPCTL_CLKOUTDIV(config->divider);
153 
154  /* Write value to register. */
155  base->CHIPCTL = regValue;
156 }
157 
158 
159 /*FUNCTION**********************************************************************
160  *
161  * Function Name : SIM_HAL_SetFtmExternalClkPinMode
162  * Description : Set FlexTimer x external clock pin select setting
163  * This function will select the source of FTMx external clock pin select
164  *
165  * Implements SIM_HAL_SetFtmExternalClkPinMode_Activity
166  *END**************************************************************************/
168  uint32_t instance,
169  sim_ftm_clk_sel_t select)
170 {
171  uint32_t regValue = base->FTMOPT0;
172  uint32_t selectValue = (uint32_t)select;
173  DEV_ASSERT(instance < FTM_INSTANCE_COUNT);
174 
175  switch (instance)
176  {
177  case 0U:
178  regValue &= ~(SIM_FTMOPT0_FTM0CLKSEL_MASK);
179  regValue |= SIM_FTMOPT0_FTM0CLKSEL(selectValue);
180  break;
181  case 1U:
182  regValue &= ~(SIM_FTMOPT0_FTM1CLKSEL_MASK);
183  regValue |= SIM_FTMOPT0_FTM1CLKSEL(selectValue);
184  break;
185  case 2U:
186  regValue &= ~(SIM_FTMOPT0_FTM2CLKSEL_MASK);
187  regValue |= SIM_FTMOPT0_FTM2CLKSEL(selectValue);
188  break;
189  case 3U:
190  regValue &= ~(SIM_FTMOPT0_FTM3CLKSEL_MASK);
191  regValue |= SIM_FTMOPT0_FTM3CLKSEL(selectValue);
192  break;
193 #if FTM_INSTANCE_COUNT > 4U
194  case 4U:
195  regValue &= ~(SIM_FTMOPT0_FTM4CLKSEL_MASK);
196  regValue |= SIM_FTMOPT0_FTM4CLKSEL(selectValue);
197  break;
198 #endif
199 #if FTM_INSTANCE_COUNT > 5U
200  case 5U:
201  regValue &= ~(SIM_FTMOPT0_FTM5CLKSEL_MASK);
202  regValue |= SIM_FTMOPT0_FTM5CLKSEL(selectValue);
203  break;
204 #endif
205 #if FTM_INSTANCE_COUNT > 6U
206  case 6U:
207  regValue &= ~(SIM_FTMOPT0_FTM6CLKSEL_MASK);
208  regValue |= SIM_FTMOPT0_FTM6CLKSEL(selectValue);
209  break;
210 #endif
211 #if FTM_INSTANCE_COUNT > 7U
212  case 7U:
213  regValue &= ~(SIM_FTMOPT0_FTM7CLKSEL_MASK);
214  regValue |= SIM_FTMOPT0_FTM7CLKSEL(selectValue);
215  break;
216 #endif
217  default:
218  /* Nothing to do, error is caught by DEV_ASSERT(instance < FTM_INSTANCE_COUNT) */
219  break;
220  }
221  base->FTMOPT0 = regValue;
222 }
223 
224 /*FUNCTION**********************************************************************
225  *
226  * Function Name : SIM_HAL_GetFtmExternalClkPinMode
227  * Description : Get FlexTimer x external clock pin select setting
228  * This function will get FlexTimer x external clock pin select setting.
229  *
230  * Implements SIM_HAL_GetFtmExternalClkPinMode_Activity
231  *END**************************************************************************/
233  uint32_t instance)
234 {
235  sim_ftm_clk_sel_t retValue;
236  uint32_t regValue = base->FTMOPT0;
237  DEV_ASSERT(instance < FTM_INSTANCE_COUNT);
238 
239  switch (instance)
240  {
241  case 0U:
243  break;
244  case 1U:
246  break;
247  case 2U:
249  break;
250  case 3U:
252  break;
253 #if FTM_INSTANCE_COUNT > 4U
254  case 4U:
255  regValue = (regValue & SIM_FTMOPT0_FTM4CLKSEL_MASK) >> SIM_FTMOPT0_FTM4CLKSEL_SHIFT;
256  break;
257 #endif
258 #if FTM_INSTANCE_COUNT > 5U
259  case 5U:
260  regValue = (regValue & SIM_FTMOPT0_FTM5CLKSEL_MASK) >> SIM_FTMOPT0_FTM5CLKSEL_SHIFT;
261  break;
262 #endif
263 #if FTM_INSTANCE_COUNT > 6U
264  case 6U:
265  regValue = (regValue & SIM_FTMOPT0_FTM6CLKSEL_MASK) >> SIM_FTMOPT0_FTM6CLKSEL_SHIFT;
266  break;
267 #endif
268 #if FTM_INSTANCE_COUNT > 7U
269  case 7U:
270  regValue = (regValue & SIM_FTMOPT0_FTM7CLKSEL_MASK) >> SIM_FTMOPT0_FTM7CLKSEL_SHIFT;
271  break;
272 #endif
273  default:
274  regValue = 0U;
275  break;
276  }
277 
278  switch(regValue)
279  {
280  case 3U:
281  retValue = SIM_FTM_CLK_SEL_11;
282  break;
283  case 2U:
284  retValue = SIM_FTM_CLK_SEL_10;
285  break;
286  case 1U:
287  retValue = SIM_FTM_CLK_SEL_01;
288  break;
289  case 0U:
290  /* Pass-through */
291  default:
292  retValue = SIM_FTM_CLK_SEL_00;
293  break;
294  }
295 
296  return retValue;
297 }
298 
299 /*FUNCTION**********************************************************************
300  *
301  * Function Name : SIM_HAL_SetFtmFaultSelMode
302  * Description : Set FlexTimer x faults select settings
303  * This function will set the FlexTimer x faults select settings.
304  *
305  * Implements SIM_HAL_SetFtmFaultSelMode_Activity
306  *END**************************************************************************/
308  uint32_t instance,
309  uint8_t select)
310 {
311  uint32_t regValue;
312  DEV_ASSERT(instance < FTM_INSTANCE_COUNT);
314 
315  /* TODO: verify that all SIM_FTMOPT0_FTM1FLTxSEL_WIDTH are equal */
316 
317  switch (instance)
318  {
319  case 0U:
320  regValue = base->FTMOPT0;
321  regValue &= ~(SIM_FTMOPT0_FTM0FLTxSEL_MASK);
322  regValue |= SIM_FTMOPT0_FTM0FLTxSEL(select);
323  base->FTMOPT0 = regValue;
324  break;
325  case 1U:
326  regValue = base->FTMOPT0;
327  regValue &= ~(SIM_FTMOPT0_FTM1FLTxSEL_MASK);
328  regValue |= SIM_FTMOPT0_FTM1FLTxSEL(select);
329  base->FTMOPT0 = regValue;
330  break;
331  case 2U:
332  regValue = base->FTMOPT0;
333  regValue &= ~(SIM_FTMOPT0_FTM2FLTxSEL_MASK);
334  regValue |= SIM_FTMOPT0_FTM2FLTxSEL(select);
335  base->FTMOPT0 = regValue;
336  break;
337  case 3U:
338  regValue = base->FTMOPT0;
339  regValue &= ~(SIM_FTMOPT0_FTM3FLTxSEL_MASK);
340  regValue |= SIM_FTMOPT0_FTM3FLTxSEL(select);
341  base->FTMOPT0 = regValue;
342  break;
343  default:
344  /* Instance invalid value, this error is caught by DEV_ASSERT(instance < ADC_INSTANCE_COUNT) */
345  break;
346  }
347 }
348 
349 /*FUNCTION**********************************************************************
350  *
351  * Function Name : SIM_HAL_GetFtmFaultSelMode
352  * Description : Get FlexTimer x faults select settings
353  * This function will get FlexTimer x faults select settings.
354  *
355  * Implements SIM_HAL_GetFtmFaultSelMode_Activity
356  *END**************************************************************************/
358  uint32_t instance)
359 {
360  uint8_t retValue;
361 
362  DEV_ASSERT(instance < FTM_INSTANCE_COUNT);
363 
364  switch (instance)
365  {
366  case 0U:
367  retValue = (uint8_t)((base->FTMOPT0 & SIM_FTMOPT0_FTM0FLTxSEL_MASK) >> SIM_FTMOPT0_FTM0FLTxSEL_SHIFT);
368  break;
369  case 1U:
370  retValue = (uint8_t)((base->FTMOPT0 & SIM_FTMOPT0_FTM1FLTxSEL_MASK) >> SIM_FTMOPT0_FTM1FLTxSEL_SHIFT);
371  break;
372  case 2U:
373  retValue = (uint8_t)((base->FTMOPT0 & SIM_FTMOPT0_FTM2FLTxSEL_MASK) >> SIM_FTMOPT0_FTM2FLTxSEL_SHIFT);
374  break;
375  case 3U:
376  retValue = (uint8_t)((base->FTMOPT0 & SIM_FTMOPT0_FTM3FLTxSEL_MASK) >> SIM_FTMOPT0_FTM3FLTxSEL_SHIFT);
377  break;
378  default:
379  /* Instance invalid value, this error is caught by DEV_ASSERT(instance < ADC_INSTANCE_COUNT) */
380  retValue = 0U;
381  break;
382  }
383 
384  return retValue;
385 }
386 
387 /*FUNCTION*********************************************************************
388  *
389  * Function Name : SIM_HAL_GetLpoFreq
390  * Description : Get SIM LPO 1KHz clock frequency (LPO_CLOCK).
391  *
392  * Implements SIM_HAL_GetLpoFreq_Activity
393  *END*************************************************************************/
394 uint32_t SIM_HAL_GetLpoFreq(const SIM_Type * base)
395 {
396  uint32_t freq = 0U;
397 
399  {
400  case 0U: /* SIM_LPO_CLK_SEL_LPO_128K */
401  freq = LPO_128K_FREQUENCY;
402  break;
403  case 1U: /* SIM_LPO_CLK_SEL_NO_CLOCK: */
404  freq = 0U;
405  break;
406  case 2U: /* SIM_LPO_CLK_SEL_LPO_32K: */
407  freq = SIM_HAL_GetLpo32KFreq(base);
408  break;
409  case 3U: /* SIM_LPO_CLK_SEL_LPO_1K: */
410  freq = SIM_HAL_GetLpo1KFreq(base);
411  break;
412  default:
413  /* Invalid LPOCLKSEL selection.*/
414  DEV_ASSERT(false);
415  break;
416  }
417 
418  return freq;
419 }
420 
421 /*FUNCTION*********************************************************************
422  *
423  * Function Name : SIM_HAL_GetLpo128KFreq
424  * Description : Get SIM LPO 128KHz clock frequency (LPO_128K_CLOCK).
425  *
426  * Implements SIM_HAL_GetLpo128KFreq_Activity
427  *END*************************************************************************/
428 uint32_t SIM_HAL_GetLpo128KFreq(const SIM_Type * base)
429 {
430  (void)base;
431  return LPO_128K_FREQUENCY;
432 }
433 
434 /*FUNCTION*********************************************************************
435  *
436  * Function Name : SIM_HAL_GetLpo32KFreq
437  * Description : Get SIM LPO 32KHz clock frequency (LPO_32K_CLOCK).
438  *
439  * Implements SIM_HAL_GetLpo32KFreq_Activity
440  *END*************************************************************************/
441 uint32_t SIM_HAL_GetLpo32KFreq(const SIM_Type * base)
442 {
443  uint32_t retValue = 0U;
445  retValue = LPO_32K_FREQUENCY;
446  }
447  return retValue;
448 }
449 
450 /*FUNCTION*********************************************************************
451  *
452  * Function Name : SIM_HAL_GetLpo1KFreq
453  * Description : Get SIM LPO 1KHz clock frequency (LPO_1K_CLOCK).
454  *
455  * Implements SIM_HAL_GetLpo1KFreq_Activity
456  *END*************************************************************************/
457 uint32_t SIM_HAL_GetLpo1KFreq(const SIM_Type * base)
458 {
459  uint32_t retValue = 0U;
461  retValue = LPO_1K_FREQUENCY;
462  }
463  return retValue;
464 }
465 
466  /*FUNCTION**********************************************************************
467  *
468  * Function Name : SIM_HAL_SetAdcPreTriggerMode
469  * Description : Set ADCx pre-trigger select setting
470  * This function will select the ADCx pre-trigger source
471  *
472  * Implements SIM_HAL_SetAdcPreTriggerMode_Activity
473  *END**************************************************************************/
475  uint32_t instance,
476  sim_adc_pretrg_sel_t select)
477 {
478  DEV_ASSERT(instance < ADC_INSTANCE_COUNT);
479 
480  switch (instance)
481  {
482  case 0U:
484  break;
485  case 1U:
487  break;
488  default:
489  /* Instance invalid value, this error is caught by DEV_ASSERT(instance < ADC_INSTANCE_COUNT) */
490  break;
491  }
492 }
493 
494 /*FUNCTION**********************************************************************
495  *
496  * Function Name : SIM_HAL_GetAdcPreTriggerMode
497  * Description : Get ADCx pre-trigger select setting
498  * This function will get ADCx pre-trigger select setting.
499  *
500  * Implements SIM_HAL_GetAdcPreTriggerMode_Activity
501  *END**************************************************************************/
503  uint32_t instance)
504 {
505  sim_adc_pretrg_sel_t retValue;
506  uint32_t value;
507 
508  DEV_ASSERT(instance < ADC_INSTANCE_COUNT);
509 
510  switch (instance)
511  {
512  case 0U:
514  break;
515  case 1U:
517  break;
518  default:
519  /* Instance invalid value, this error is caught by DEV_ASSERT(instance < ADC_INSTANCE_COUNT) */
520  value = 0U;
521  break;
522  }
523 
524  switch(value)
525  {
526  case 0U:
527  retValue = SIM_ADC_PRETRG_SEL_PDB;
528  break;
529  case 1U:
530  retValue = SIM_ADC_PRETRG_SEL_TRGMUX;
531  break;
532  case 2U:
533  retValue = SIM_ADC_PRETRG_SEL_SOFTWARE;
534  break;
535  case 3U:
536  /* Pass-through */
537  default:
538  retValue = SIM_ADC_PRETRG_SEL_RESERVED;
539  break;
540  }
541 
542  return retValue;
543 }
544 
545  /*FUNCTION**********************************************************************
546  *
547  * Function Name : SIM_HAL_SetAdcSwPreTriggerMode
548  * Description : Set ADCx software pre-trigger select setting
549  * This function will select the ADCx software pre-trigger source
550  *
551  * Implements SIM_HAL_SetAdcSwPreTriggerMode_Activity
552  *END**************************************************************************/
554  uint32_t instance,
556 {
557  uint32_t regValue;
558  DEV_ASSERT(instance < ADC_INSTANCE_COUNT);
559 
560  regValue = base->ADCOPT;
561  switch (instance)
562  {
563  case 0U:
564  regValue &= ~(SIM_ADCOPT_ADC0SWPRETRG_MASK);
565  regValue |= SIM_ADCOPT_ADC0SWPRETRG(select);
566  break;
567  case 1U:
568  regValue &= ~(SIM_ADCOPT_ADC1SWPRETRG_MASK);
569  regValue |= SIM_ADCOPT_ADC1SWPRETRG(select);
570  break;
571  default:
572  /* Instance invalid value, this error is caught by DEV_ASSERT(instance < ADC_INSTANCE_COUNT) */
573  break;
574  }
575  base->ADCOPT = regValue;
576 }
577 
578 /*FUNCTION**********************************************************************
579  *
580  * Function Name : SIM_HAL_GetAdcSwPreTriggerMode
581  * Description : Get ADCx software pre-trigger select setting
582  * This function will get ADCx software pre-trigger select setting.
583  *
584  * Implements SIM_HAL_GetAdcSwPreTriggerMode_Activity
585  *END**************************************************************************/
587  uint32_t instance)
588 {
589  sim_adc_sw_pretrg_sel_t retValue;
590  uint32_t regValue = base->ADCOPT;
591 
592  DEV_ASSERT(instance < ADC_INSTANCE_COUNT);
593 
594  switch (instance)
595  {
596  case 0U:
598  break;
599  case 1U:
601  break;
602  default:
603  /* Instance invalid value, this error is caught by DEV_ASSERT(instance < ADC_INSTANCE_COUNT) */
604  break;
605  }
606 
607  switch(regValue)
608  {
609  case 7U:
610  retValue = SIM_ADC_SW_PRETRG_SEL_3;
611  break;
612  case 6U:
613  retValue = SIM_ADC_SW_PRETRG_SEL_2;
614  break;
615  case 5U:
616  retValue = SIM_ADC_SW_PRETRG_SEL_1;
617  break;
618  case 4U:
619  retValue = SIM_ADC_SW_PRETRG_SEL_0;
620  break;
621  case 3U:
623  break;
624  case 2U:
626  break;
627  case 1U:
629  break;
630  case 0U:
631  /* Pass-through */
632  default:
634  break;
635  }
636  return retValue;
637 }
638 
639 /*FUNCTION**********************************************************************
640  *
641  * Function Name : SIM_HAL_SetAdcTriggerMode
642  * Description : Set ADCx trigger select setting
643  * This function will select the ADCx trigger source
644  *
645  * Implements SIM_HAL_SetAdcTriggerMode_Activity
646  *END**************************************************************************/
648  uint32_t instance,
649  sim_adc_trg_sel_t select)
650 {
651  uint32_t regValue, selectValue;
652  DEV_ASSERT(instance < ADC_INSTANCE_COUNT);
653 
654  switch(select)
655  {
657  selectValue = 1U;
658  break;
659  case SIM_ADC_TRG_SEL_PDB:
660  /* Pass through */
661  default:
662  selectValue = 0U;
663  break;
664  }
665 
666 
667  regValue = (uint32_t)base->ADCOPT;
668 
669  switch (instance)
670  {
671  case 0:
672  regValue &= (uint32_t)(~(SIM_ADCOPT_ADC0TRGSEL_MASK));
673  regValue |= SIM_ADCOPT_ADC0TRGSEL(selectValue);
674  break;
675  case 1:
676  regValue &= (uint32_t)(~(SIM_ADCOPT_ADC1TRGSEL_MASK));
677  regValue |= SIM_ADCOPT_ADC1TRGSEL(selectValue);
678  break;
679  default:
680  /* Instance invalid value, this error is caught by DEV_ASSERT(instance < ADC_INSTANCE_COUNT) */
681  break;
682  }
683 
684  base->ADCOPT = (uint32_t)regValue;
685 }
686 
687 /*FUNCTION**********************************************************************
688  *
689  * Function Name : SIM_HAL_GetAdcTriggerMode
690  * Description : Get ADCx trigger select setting
691  * This function will get ADCx trigger select setting.
692  *
693  * Implements SIM_HAL_GetAdcTriggerMode_Activity
694  *END**************************************************************************/
695 sim_adc_trg_sel_t SIM_HAL_GetAdcTriggerMode(const SIM_Type * base, uint32_t instance)
696 {
697  sim_adc_trg_sel_t retValue;
698  uint32_t regValue = (uint32_t)base->ADCOPT;
699 
700  DEV_ASSERT(instance < ADC_INSTANCE_COUNT);
701 
702  switch (instance)
703  {
704  case 0:
705  regValue = (regValue & SIM_ADCOPT_ADC0TRGSEL_MASK) >> SIM_ADCOPT_ADC0TRGSEL_SHIFT;
706  break;
707  case 1:
708  regValue = (regValue & SIM_ADCOPT_ADC1TRGSEL_MASK) >> SIM_ADCOPT_ADC1TRGSEL_SHIFT;
709  break;
710  default:
711  /* Instance invalid value, this error is caught by DEV_ASSERT(instance < ADC_INSTANCE_COUNT) */
712  break;
713  }
714 
715  switch(regValue)
716  {
717  case 1U:
718  retValue = SIM_ADC_TRG_SEL_TRGMUX;
719  break;
720  case 0U:
721  /* Pass-through */
722  default:
723  retValue = SIM_ADC_TRG_SEL_PDB;
724  break;
725  }
726  return retValue;
727 }
728 
729 
730 /*FUNCTION**********************************************************************
731  *
732  * Function Name : FTM_CH_OUT_SRC_MASK
733  * Description : Internal function for FTMxOCHySRC
734  *END**************************************************************************/
735 static inline uint32_t FTM_CH_OUT_SRC_MASK(uint32_t instance,
736  uint8_t channel)
737 {
738  return 1UL << ((((instance)>>1U)*8U) + channel + 16U);
739 }
740 
741 /*FUNCTION**********************************************************************
742  *
743  * Function Name : SIM_HAL_SetFtmChOutSrcMode
744  * Description : FlexTimer x channel y output source select setting.
745  * This function will select FlexTimer x channel y output source
746  *
747  * Implements SIM_HAL_SetFtmChOutSrcMode_Activity
748  *END**************************************************************************/
750  uint32_t instance,
751  uint8_t channel,
752  sim_ftm_ch_out_src_t select)
753 {
754  DEV_ASSERT((0U==instance) || (3U==instance));
756 
757  switch(select)
758  {
760  base->FTMOPT1 = base->FTMOPT1 & ~(FTM_CH_OUT_SRC_MASK(instance, channel));
761  break;
763  base->FTMOPT1 = base->FTMOPT1 | (FTM_CH_OUT_SRC_MASK(instance, channel));
764  break;
765  default:
766  /* invalid select value */
767  DEV_ASSERT(false);
768  break;
769  }
770 }
771 
772 /*FUNCTION**********************************************************************
773  *
774  * Function Name : SIM_HAL_GetFtmChOutSrcMode
775  * Description : Get FlexTimer x channel y output source select setting
776  * This function will get FlexTimer x channel y output source select
777  * setting.
778  *
779  * Implements SIM_HAL_GetFtmChOutSrcMode_Activity
780  *END**************************************************************************/
782  uint32_t instance,
783  uint8_t channel)
784 {
785  sim_ftm_ch_out_src_t retValue;
786 
787  DEV_ASSERT((0U==instance) || (3U==instance));
789 
790  if ((base->FTMOPT1 & FTM_CH_OUT_SRC_MASK(instance, channel)) != 0U)
791  {
792  retValue = SIM_FTM_CH_OUT_SRC_1;
793  }
794  else
795  {
796  retValue = SIM_FTM_CH_OUT_SRC_0;
797  }
798  return retValue;
799 }
800 
801 /*FUNCTION**********************************************************************
802  *
803  * Function Name : SIM_HAL_SetFtmChSrcMode
804  * Description : FlexTimer x channel y input source select setting
805  * This function will select FlexTimer x channel y input source
806  *
807  * Implements SIM_HAL_SetFtmChSrcMode_Activity
808  *END**************************************************************************/
810  uint32_t instance,
811  uint8_t channel,
812  sim_ftm_ch_src_t select)
813 {
814  uint32_t regValue = base->FTMOPT1;
815  DEV_ASSERT(instance < FTM_INSTANCE_COUNT);
816  DEV_ASSERT((instance == 2U) && (((uint8_t)select) > SIM_FTMOPT1_FTM2CH1SEL_WIDTH));
817 
818  switch (instance)
819  {
820  case 1:
821  switch (channel)
822  {
823  case 0:
824  regValue &= ~(SIM_FTMOPT1_FTM1CH0SEL_MASK);
825  regValue |= SIM_FTMOPT1_FTM1CH0SEL(select);
826  break;
827  default:
828  /* Invalid channel value */
829  DEV_ASSERT(false);
830  break;
831  }
832  break;
833  case 2:
834  switch (channel)
835  {
836  case 0:
837  regValue &= ~(SIM_FTMOPT1_FTM2CH0SEL_MASK);
838  regValue |= SIM_FTMOPT1_FTM2CH0SEL(select);
839  break;
840  case 1:
841  regValue &= ~(SIM_FTMOPT1_FTM2CH1SEL_MASK);
842  regValue |= SIM_FTMOPT1_FTM2CH1SEL(select);
843  break;
844  default:
845  /* Invalid channel value */
846  DEV_ASSERT(false);
847  break;
848  }
849  break;
850  default:
851  /* Invalid instance value, this error is caught by development checking: DEV_ASSERT(instance < FTM_INSTANCE_COUNT) */
852  break;
853  }
854  base->FTMOPT1 = regValue;
855 }
856 
857 /*FUNCTION**********************************************************************
858  *
859  * Function Name : SIM_HAL_GetFtmChSrcMode
860  * Description : Get FlexTimer x channel y input source select setting
861  * This function will get FlexTimer x channel y input source select
862  * setting.
863  *
864  * Implements SIM_HAL_GetFtmChSrcMode_Activity
865  *END**************************************************************************/
867  uint32_t instance,
868  uint8_t channel)
869 {
870  sim_ftm_ch_src_t retValue;
871  uint32_t regValue;
872 
873  DEV_ASSERT(instance < FTM_INSTANCE_COUNT);
874 
875  regValue = base->FTMOPT1;
876  switch (instance)
877  {
878  case 1:
879  switch (channel)
880  {
881  case 0:
883  break;
884  default:
885  /* Invalid channel value */
886  DEV_ASSERT(false);
887  break;
888  }
889  break;
890  case 2:
891  switch (channel)
892  {
893  case 0:
895  break;
896  case 1:
898  break;
899  default:
900  /* Invalid channel value */
901  DEV_ASSERT(false);
902  break;
903  }
904  break;
905  default:
906  /* Nothing to do, error is caught by DEV_ASSERT(instance < FTM_INSTANCE_COUNT) */
907  break;
908  }
909 
910  switch(regValue)
911  {
912  case 3U:
913  retValue = SIM_FTM_CH_SRC_3;
914  break;
915  case 2U:
916  retValue = SIM_FTM_CH_SRC_2;
917  break;
918  case 1U:
919  retValue = SIM_FTM_CH_SRC_1;
920  break;
921  case 0U:
922  /* Pass-through */
923  default:
924  retValue = SIM_FTM_CH_SRC_0;
925  break;
926  }
927  return retValue;
928 }
929 
930  /*FUNCTION**********************************************************************
931  *
932  * Function Name : SIM_HAL_SetFtmSyncCmd
933  * Description : Set FTMxSYNCBIT
934  * This function sets FlexTimer x hardware trigger 0 software synchronization.
935  *
936  * Implements SIM_HAL_SetFtmSyncCmd_Activity
937  *END**************************************************************************/
938 void SIM_HAL_SetFtmSyncCmd(SIM_Type * base, uint32_t instance, bool sync)
939 {
940  uint32_t syncValue = (sync == false) ? 0UL : 1UL;
941  uint32_t regValue = base->FTMOPT1;
942  DEV_ASSERT(instance < FTM_INSTANCE_COUNT);
943 
944  switch (instance)
945  {
946  case 0U:
947  regValue &= ~(SIM_FTMOPT1_FTM0SYNCBIT_MASK);
948  regValue |= SIM_FTMOPT1_FTM0SYNCBIT(syncValue);
949  break;
950  case 1U:
951  regValue &= ~(SIM_FTMOPT1_FTM1SYNCBIT_MASK);
952  regValue |= SIM_FTMOPT1_FTM1SYNCBIT(syncValue);
953  break;
954  case 2U:
955  regValue &= ~(SIM_FTMOPT1_FTM2SYNCBIT_MASK);
956  regValue |= SIM_FTMOPT1_FTM2SYNCBIT(syncValue);
957  break;
958  case 3U:
959  regValue &= ~(SIM_FTMOPT1_FTM3SYNCBIT_MASK);
960  regValue |= SIM_FTMOPT1_FTM3SYNCBIT(syncValue);
961  break;
962 #if FTM_INSTANCE_COUNT > 4U
963  case 4U:
964  regValue &= ~(SIM_FTMOPT1_FTM4SYNCBIT_MASK);
965  regValue |= SIM_FTMOPT1_FTM4SYNCBIT(syncValue);
966  break;
967 #endif
968 #if FTM_INSTANCE_COUNT > 5U
969  case 5U:
970  regValue &= ~(SIM_FTMOPT1_FTM5SYNCBIT_MASK);
971  regValue |= SIM_FTMOPT1_FTM5SYNCBIT(syncValue);
972  break;
973 #endif
974 #if FTM_INSTANCE_COUNT > 6U
975  case 6U:
976  regValue &= ~(SIM_FTMOPT1_FTM6SYNCBIT_MASK);
977  regValue |= SIM_FTMOPT1_FTM6SYNCBIT(syncValue);
978  break;
979 #endif
980 #if FTM_INSTANCE_COUNT > 7U
981  case 7U:
982  regValue &= ~(SIM_FTMOPT1_FTM7SYNCBIT_MASK);
983  regValue |= SIM_FTMOPT1_FTM7SYNCBIT(syncValue);
984  break;
985 #endif
986  default:
987  /* Nothing to do, error is caught by DEV_ASSERT(instance < FTM_INSTANCE_COUNT) */
988  break;
989  }
990  base->FTMOPT1 = regValue;
991 }
992 
993 /*FUNCTION*********************************************************************
994  *
995  * Function Name : SIM_HAL_GetTraceClockDefaultConfig
996  * Description : This function gets the default Debug Trace Clock configuration.
997  *
998  * Implements SIM_HAL_GetTraceClockDefaultConfig_Activity
999  *END*************************************************************************/
1001 {
1002  DEV_ASSERT(config != NULL);
1003 
1004  config->initialize = true;
1005  config->divEnable = true;
1006  config->source = CLOCK_TRACE_SRC_CORE_CLK;
1007  config->divider = 0U;
1008  config->divFraction = false;
1009 }
1010 
1011 /*FUNCTION*********************************************************************
1012  *
1013  * Function Name : SIM_HAL_InitTraceClock
1014  * Description : This function enables the SIM Debug Trace clock according
1015  * to the configuration.
1016  * @note This function ignores initialize member
1017  *
1018  * Implements SIM_HAL_InitTraceClock_Activity
1019  *END*************************************************************************/
1021  const sim_trace_clock_config_t *config)
1022 {
1023  uint32_t regValue;
1024  DEV_ASSERT(config != NULL);
1025 
1026  /* Disable divider. */
1027  base->CLKDIV4 &= (uint32_t)(~(SIM_CLKDIV4_TRACEDIVEN_MASK));
1028 
1029  /* Configure source. */
1030  regValue = (uint32_t)base->CHIPCTL;
1031  regValue &= (uint32_t)(~(SIM_CHIPCTL_TRACECLK_SEL_MASK));
1032  regValue |= SIM_CHIPCTL_TRACECLK_SEL(config->source);
1033  base->CHIPCTL = (uint32_t)regValue;
1034 
1035  /* Configure divider. */
1036  regValue = base->CLKDIV4;
1037  regValue &= ~(SIM_CLKDIV4_TRACEDIV_MASK);
1038  regValue |= SIM_CLKDIV4_TRACEDIV(config->divider);
1039  base->CLKDIV4 = regValue;
1040 
1041  /* Configure fraction. */
1042  regValue = (uint32_t)base->CLKDIV4;
1043  regValue &= (uint32_t)(~(SIM_CLKDIV4_TRACEFRAC_MASK));
1044  regValue |= SIM_CLKDIV4_TRACEFRAC(config->divFraction ? 1UL : 0UL);
1045  base->CLKDIV4 = (uint32_t)regValue;
1046 
1047  /* Configure divider enable. */
1048  regValue = (uint32_t)base->CLKDIV4;
1049  regValue &= (uint32_t)(~(SIM_CLKDIV4_TRACEDIVEN_MASK));
1050  regValue |= SIM_CLKDIV4_TRACEDIVEN(config->divEnable ? 1UL : 0UL);
1051  base->CLKDIV4 = (uint32_t)regValue;
1052 }
1053 
1054 
1055 /*******************************************************************************
1056  * EOF
1057  ******************************************************************************/
1058 
sim_adc_sw_pretrg_sel_t SIM_HAL_GetAdcSwPreTriggerMode(const SIM_Type *base, uint32_t instance)
Gets the ADCx software pre-trigger select setting.
void SIM_HAL_SetAdcTriggerMode(SIM_Type *base, uint32_t instance, sim_adc_trg_sel_t select)
Sets the ADCx trigger select setting.
uint32_t SIM_HAL_GetLpo1KFreq(const SIM_Type *base)
Get SIM LPO 1KHz clock frequency (LPO_1K_CLOCK).
__IO uint32_t LPOCLKS
Definition: S32K144.h:10711
sim_adc_pretrg_sel_t SIM_HAL_GetAdcPreTriggerMode(const SIM_Type *base, uint32_t instance)
Gets the ADCx pre-trigger select setting.
#define SIM_FTMOPT0_FTM2CLKSEL_SHIFT
Definition: S32K144.h:10821
sim_ftm_ch_src_t
SIM FlexTimer x channel y input source select Implements sim_ftm_ch_src_t_Class.
#define SIM_FTMOPT0_FTM2CLKSEL(x)
Definition: S32K144.h:10823
__IO uint32_t FTMOPT1
Definition: S32K144.h:10714
#define SIM_CHIPCTL_CLKOUTSEL_MASK
Definition: S32K144.h:10759
#define SIM_FTMOPT0_FTM0CLKSEL(x)
Definition: S32K144.h:10815
#define SIM_FTMOPT0_FTM0CLKSEL_SHIFT
Definition: S32K144.h:10813
#define SIM_LPOCLKS_LPO1KCLKEN_SHIFT
Definition: S32K144.h:10830
sim_ftm_clk_sel_t
SIM FlexTimer external clock select Implements sim_ftm_clk_sel_t_Class.
void SIM_HAL_GetTraceClockDefaultConfig(sim_trace_clock_config_t *config)
Get the default Debug Trace clock configuration.
#define SIM_ADCOPT_ADC0TRGSEL_SHIFT
Definition: S32K144.h:10847
#define SIM_ADCOPT_ADC1TRGSEL_MASK
Definition: S32K144.h:10858
#define SIM_FTMOPT0_FTM2FLTxSEL_MASK
Definition: S32K144.h:10804
#define SIM_ADCOPT_ADC1PRETRGSEL(x)
Definition: S32K144.h:10869
#define SIM_CLKDIV4_TRACEDIVEN_MASK
Definition: S32K144.h:11016
#define SIM_FTMOPT1_FTM1SYNCBIT(x)
Definition: S32K144.h:10878
#define SIM_FTMOPT1_FTM3_OUTSEL_WIDTH
Definition: S32K144.h:10909
sim_ftm_clk_sel_t SIM_HAL_GetFtmExternalClkPinMode(const SIM_Type *base, uint32_t instance)
Gets the FlexTimer x external clock pin select setting.
#define SIM_FTMOPT0_FTM2FLTxSEL(x)
Definition: S32K144.h:10807
void SIM_HAL_GetClkoutConfig(const SIM_Type *base, sim_clock_out_config_t *config)
Get the SIM CLKOUT clock configuration.
#define SIM_ADCOPT_ADC0SWPRETRG_SHIFT
Definition: S32K144.h:10851
void SIM_HAL_SetAdcPreTriggerMode(SIM_Type *base, uint32_t instance, sim_adc_pretrg_sel_t select)
Sets the ADCx pre-trigger select setting.
#define REG_RMW32(address, mask, value)
32 bit clear bits and set with new value
Definition: S32K144.h:246
#define SIM_ADCOPT_ADC1SWPRETRG_SHIFT
Definition: S32K144.h:10863
#define SIM_FTMOPT1_FTM0SYNCBIT(x)
Definition: S32K144.h:10874
#define SIM_CHIPCTL_CLKOUTSEL(x)
Definition: S32K144.h:10762
#define SIM_FTMOPT0_FTM1FLTxSEL_SHIFT
Definition: S32K144.h:10801
#define SIM_CHIPCTL_CLKOUTEN_SHIFT
Definition: S32K144.h:10768
#define SIM_FTMOPT0_FTM3CLKSEL(x)
Definition: S32K144.h:10827
#define SIM_FTMOPT0_FTM3FLTxSEL(x)
Definition: S32K144.h:10811
void SIM_HAL_SetFtmChSrcMode(SIM_Type *base, uint32_t instance, uint8_t channel, sim_ftm_ch_src_t select)
Sets the FlexTimer x channel y input source select setting.
sim_adc_sw_pretrg_sel_t
SIM ADCx software pre-trigger select Implements sim_adc_sw_pretrg_sel_t_Class.
#define SIM_FTMOPT1_FTM2SYNCBIT(x)
Definition: S32K144.h:10882
#define SIM_CLKDIV4_TRACEDIV_MASK
Definition: S32K144.h:11012
sim_clkout_div_t divider
#define SIM_CHIPCTL_CLKOUTDIV(x)
Definition: S32K144.h:10766
#define SIM_ADCOPT_ADC0SWPRETRG_MASK
Definition: S32K144.h:10850
#define SIM_FTMOPT0_FTM3CLKSEL_SHIFT
Definition: S32K144.h:10825
#define SIM_FTMOPT1_FTM0SYNCBIT_MASK
Definition: S32K144.h:10871
sim_adc_trg_sel_t SIM_HAL_GetAdcTriggerMode(const SIM_Type *base, uint32_t instance)
Gets the ADCx trigger select setting.
#define SIM_FTMOPT0_FTM1CLKSEL_MASK
Definition: S32K144.h:10816
uint32_t SIM_HAL_GetLpoFreq(const SIM_Type *base)
Get SIM LPO clock frequency (LPO_CLOCK).
#define DEV_ASSERT(x)
Definition: devassert.h:78
#define LPO_32K_FREQUENCY
#define SIM_FTMOPT1_FTM3SYNCBIT(x)
Definition: S32K144.h:10886
uint8_t SIM_HAL_GetFtmFaultSelMode(const SIM_Type *base, uint32_t instance)
Gets the FlexTimer x faults select settings.
#define SIM_FTMOPT0_FTM0FLTxSEL(x)
Definition: S32K144.h:10799
void SIM_HAL_SetAdcSwPreTriggerMode(SIM_Type *base, uint32_t instance, sim_adc_sw_pretrg_sel_t select)
Sets the ADCx software pre-trigger select setting.
sim_adc_trg_sel_t
SIM ADCx trigger select Implements sim_adc_trg_sel_t_Class.
#define SIM_FTMOPT1_FTM3SYNCBIT_MASK
Definition: S32K144.h:10883
#define SIM_FTMOPT0_FTM1FLTxSEL(x)
Definition: S32K144.h:10803
#define SIM_ADCOPT_ADC1TRGSEL_SHIFT
Definition: S32K144.h:10859
#define SIM_FTMOPT0_FTM0FLTxSEL_MASK
Definition: S32K144.h:10796
#define SIM_CHIPCTL_CLKOUTSEL_SHIFT
Definition: S32K144.h:10760
#define SIM_FTMOPT1_FTM1CH0SEL(x)
Definition: S32K144.h:10890
#define SIM_ADCOPT_ADC1TRGSEL(x)
Definition: S32K144.h:10861
#define SIM_ADCOPT_ADC1PRETRGSEL_SHIFT
Definition: S32K144.h:10867
#define SIM_ADCOPT_ADC0TRGSEL_MASK
Definition: S32K144.h:10846
#define SIM_ADCOPT_ADC0PRETRGSEL_SHIFT
Definition: S32K144.h:10855
sim_clkout_src_t source
#define SIM_CLKDIV4_TRACEDIV(x)
Definition: S32K144.h:11015
#define SIM_LPOCLKS_LPO1KCLKEN_MASK
Definition: S32K144.h:10829
#define SIM_FTMOPT0_FTM2FLTxSEL_SHIFT
Definition: S32K144.h:10805
#define SIM_FTMOPT1_FTM2SYNCBIT_MASK
Definition: S32K144.h:10879
__IO uint32_t CHIPCTL
Definition: S32K144.h:10708
#define SIM_FTMOPT0_FTM0CLKSEL_MASK
Definition: S32K144.h:10812
static uint32_t FTM_CH_OUT_SRC_MASK(uint32_t instance, uint8_t channel)
#define SIM_FTMOPT0_FTM1CLKSEL(x)
Definition: S32K144.h:10819
#define SIM_FTMOPT0_FTM1FLTxSEL_MASK
Definition: S32K144.h:10800
#define LPO_128K_FREQUENCY
#define SIM_CHIPCTL_CLKOUTEN(x)
Definition: S32K144.h:10770
#define SIM_FTMOPT0_FTM0FLTxSEL_SHIFT
Definition: S32K144.h:10797
#define SIM_CHIPCTL_TRACECLK_SEL(x)
Definition: S32K144.h:10774
#define FTM_INSTANCE_COUNT
Definition: S32K144.h:4021
void SIM_HAL_SetFtmSyncCmd(SIM_Type *base, uint32_t instance, bool sync)
Set FlexTimer x hardware trigger 0 software synchronization.
#define SIM_ADCOPT_ADC1SWPRETRG(x)
Definition: S32K144.h:10865
#define SIM_CLKDIV4_TRACEDIVEN(x)
Definition: S32K144.h:11019
#define SIM_ADCOPT_ADC1PRETRGSEL_MASK
Definition: S32K144.h:10866
#define SIM_FTMOPT0_FTM3FLTxSEL_SHIFT
Definition: S32K144.h:10809
__IO uint32_t CLKDIV4
Definition: S32K144.h:10727
#define ADC_INSTANCE_COUNT
Definition: S32K144.h:441
#define SIM_FTMOPT1_FTM2CH0SEL_MASK
Definition: S32K144.h:10891
#define SIM_CHIPCTL_CLKOUTDIV_SHIFT
Definition: S32K144.h:10764
#define SIM_LPOCLKS_LPOCLKSEL_SHIFT
Definition: S32K144.h:10838
uint32_t SIM_HAL_GetLpo128KFreq(const SIM_Type *base)
Get SIM LPO 128KHz clock frequency (LPO_128K_CLOCK).
#define SIM_FTMOPT0_FTM3CLKSEL_MASK
Definition: S32K144.h:10824
#define SIM_FTMOPT1_FTM2CH1SEL(x)
Definition: S32K144.h:10898
#define SIM_FTMOPT1_FTM2CH0SEL_SHIFT
Definition: S32K144.h:10892
#define SIM_ADCOPT_ADC1SWPRETRG_MASK
Definition: S32K144.h:10862
#define SIM_FTMOPT1_FTM2CH1SEL_MASK
Definition: S32K144.h:10895
sim_ftm_ch_out_src_t SIM_HAL_GetFtmChOutSrcMode(const SIM_Type *base, uint32_t instance, uint8_t channel)
Gets the FlexTimer x channel y output source select setting.
#define SIM_ADCOPT_ADC0TRGSEL(x)
Definition: S32K144.h:10849
sim_ftm_ch_src_t SIM_HAL_GetFtmChSrcMode(const SIM_Type *base, uint32_t instance, uint8_t channel)
Gets the FlexTimer x channel y input source select setting.
void SIM_HAL_SetFtmExternalClkPinMode(SIM_Type *base, uint32_t instance, sim_ftm_clk_sel_t select)
Sets the FlexTimer x external clock pin select setting.
SIM ClockOut configuration. Implements sim_clock_out_config_t_Class.
void SIM_HAL_SetFtmFaultSelMode(SIM_Type *base, uint32_t instance, uint8_t select)
Sets the FlexTimer x faults select settings.
#define SIM_FTMOPT0_FTM2CLKSEL_MASK
Definition: S32K144.h:10820
void SIM_HAL_InitTraceClock(SIM_Type *base, const sim_trace_clock_config_t *config)
Initialize SIM Debug Trace.
#define SIM_LPOCLKS_LPOCLKSEL_MASK
Definition: S32K144.h:10837
#define SIM_ADCOPT_ADC0SWPRETRG(x)
Definition: S32K144.h:10853
#define SIM_CHIPCTL_CLKOUTEN_MASK
Definition: S32K144.h:10767
#define SIM_CLKDIV4_TRACEFRAC_MASK
Definition: S32K144.h:11008
#define SIM_LPOCLKS_LPO32KCLKEN_SHIFT
Definition: S32K144.h:10834
#define SIM_CHIPCTL_CLKOUTDIV_MASK
Definition: S32K144.h:10763
clock_trace_src_t source
#define SIM_FTMOPT1_FTM2CH0SEL(x)
Definition: S32K144.h:10894
void SIM_HAL_SetFtmChOutSrcMode(SIM_Type *base, uint32_t instance, uint8_t channel, sim_ftm_ch_out_src_t select)
Sets the FlexTimer x channel y output source select setting.
#define SIM_LPOCLKS_LPO32KCLKEN_MASK
Definition: S32K144.h:10833
#define SIM_FTMOPT0_FTM1CLKSEL_SHIFT
Definition: S32K144.h:10817
#define SIM_FTMOPT1_FTM1CH0SEL_SHIFT
Definition: S32K144.h:10888
__IO uint32_t ADCOPT
Definition: S32K144.h:10713
#define SIM_FTMOPT1_FTM1SYNCBIT_MASK
Definition: S32K144.h:10875
#define SIM_FTMOPT1_FTM1CH0SEL_MASK
Definition: S32K144.h:10887
#define SIM_FTMOPT0_FTM3FLTxSEL_MASK
Definition: S32K144.h:10808
#define SIM_ADCOPT_ADC0PRETRGSEL_MASK
Definition: S32K144.h:10854
#define SIM_CLKDIV4_TRACEFRAC(x)
Definition: S32K144.h:11011
#define SIM_CHIPCTL_TRACECLK_SEL_MASK
Definition: S32K144.h:10771
uint32_t SIM_HAL_GetLpo32KFreq(const SIM_Type *base)
Get SIM LPO 32KHz clock frequency (LPO_32K_CLOCK).
#define SIM_ADCOPT_ADC0PRETRGSEL(x)
Definition: S32K144.h:10857
void SIM_HAL_GetClkoutDefaultConfig(sim_clock_out_config_t *config)
Get the default SIM CLKOUT clock configuration.
void SIM_HAL_InitClkout(SIM_Type *base, const sim_clock_out_config_t *config)
Initialize SIM CLKOUT.
#define SIM_FTMOPT0_FTM0FLTxSEL_WIDTH
Definition: S32K144.h:10798
#define LPO_1K_FREQUENCY
__IO uint32_t FTMOPT0
Definition: S32K144.h:10710
sim_ftm_ch_out_src_t
SIM FlexTimer x channel y output source select Implements sim_ftm_ch_out_src_t_Class.
#define SIM_FTMOPT1_FTM2CH1SEL_SHIFT
Definition: S32K144.h:10896
#define SIM_FTMOPT1_FTM2CH1SEL_WIDTH
Definition: S32K144.h:10897
SIM Debug Trace clock configuration. Implements sim_trace_clock_config_t_Class.
sim_adc_pretrg_sel_t
SIM ADCx pre-trigger select Implements sim_adc_pretrg_sel_t_Class.