rusEFI
The most advanced open source ECU
Data Structures | Functions | Variables
GPT

Data Structures

struct  GPTConfig
 Driver configuration structure. More...
 
struct  GPTDriver
 Structure representing a GPT driver. More...
 

Functions

static void gpt_lld_serve_interrupt (GPTDriver *gptp)
 Shared IRQ handler. More...
 
 OSAL_IRQ_HANDLER (KINETIS_PIT0_IRQ_VECTOR)
 PIT1 interrupt handler. More...
 
 OSAL_IRQ_HANDLER (KINETIS_PIT1_IRQ_VECTOR)
 PIT1 interrupt handler. More...
 
 OSAL_IRQ_HANDLER (KINETIS_PIT2_IRQ_VECTOR)
 PIT2 interrupt handler. More...
 
 OSAL_IRQ_HANDLER (KINETIS_PIT3_IRQ_VECTOR)
 PIT3 interrupt handler. More...
 
 OSAL_IRQ_HANDLER (KINETIS_PIT_IRQ_VECTOR)
 Common PIT interrupt handler. More...
 

Variables

GPTDriver GPTD1
 GPTD1 driver identifier. More...
 
GPTDriver GPTD2
 GPTD2 driver identifier. More...
 
GPTDriver GPTD3
 GPTD3 driver identifier. More...
 
GPTDriver GPTD4
 GPTD4 driver identifier. More...
 
static uint8_t active_channels = 0
 
static const uint32_t tif_flags [] = { LPIT_MSR_TIF0(1), LPIT_MSR_TIF1(1), LPIT_MSR_TIF2(1), LPIT_MSR_TIF3(1) }
 
static const uint32_t mier_flags [] = { LPIT_MIER_TIE0(1), LPIT_MIER_TIE1(1), LPIT_MIER_TIE2(1), LPIT_MIER_TIE3(1) }
 
gptfreq_t GPTConfig::frequency
 Timer clock in Hz. More...
 
gptcallback_t GPTConfig::callback
 Timer callback pointer. More...
 
uint32_t GPTConfig::cr2
 TIM CR2 register initialization data. More...
 
uint32_t GPTConfig::dier
 TIM DIER register initialization data. More...
 
gptstate_t GPTDriver::state
 Driver state. More...
 
const GPTConfigGPTDriver::config
 Current configuration data. More...
 
GPT_DRIVER_EXT_FIELDS uint32_t GPTDriver::clock
 Timer base clock. More...
 
int32_t GPTDriver::channelIndex
 Channel index. More...
 
struct PIT_CHANNEL * GPTDriver::channel
 Channel structure in PIT registers block. More...
 

Configuration options

typedef uint32_t gptfreq_t
 GPT frequency type. More...
 
typedef uint32_t gptcnt_t
 GPT counter type. More...
 
GPTDriver GPTD1
 GPTD1 driver identifier. More...
 
GPTDriver GPTD2
 GPTD2 driver identifier. More...
 
GPTDriver GPTD3
 GPTD3 driver identifier. More...
 
GPTDriver GPTD4
 GPTD4 driver identifier. More...
 
void gpt_lld_init (void)
 Low level GPT driver initialization. More...
 
void gpt_lld_start (GPTDriver *gptp)
 Configures and activates the GPT peripheral. More...
 
void gpt_lld_stop (GPTDriver *gptp)
 Deactivates the GPT peripheral. More...
 
void gpt_lld_start_timer (GPTDriver *gptp, gptcnt_t interval)
 Starts the timer in continuous mode. More...
 
void gpt_lld_stop_timer (GPTDriver *gptp)
 Stops the timer. More...
 
void gpt_lld_polled_delay (GPTDriver *gptp, gptcnt_t interval)
 Starts the timer in one shot mode and waits for completion. More...
 

Detailed Description

Typedef Documentation

◆ gptcnt_t

typedef uint32_t gptcnt_t

GPT counter type.

Definition at line 201 of file hal_gpt_lld.h.

◆ gptfreq_t

typedef uint32_t gptfreq_t

GPT frequency type.

Definition at line 196 of file hal_gpt_lld.h.

Function Documentation

◆ gpt_lld_init()

void gpt_lld_init ( void  )

Low level GPT driver initialization.

@notapi

Definition at line 220 of file hal_gpt_lld.c.

220  {
221 
222 #if KINETIS_GPT_USE_PIT0
223  /* Driver initialization.*/
224 #ifdef KE1xF
225  GPTD1.channelIndex = 0;
226 #else
227  GPTD1.channel = &PIT->CHANNEL[0];
228 #endif
229  gptObjectInit(&GPTD1);
230 #endif
231 
232 #if KINETIS_GPT_USE_PIT1
233  /* Driver initialization.*/
234 #ifdef KE1xF
235  GPTD2.channelIndex = 1;
236 #else
237  GPTD2.channel = &PIT->CHANNEL[1];
238 #endif
239  gptObjectInit(&GPTD2);
240 #endif
241 
242 #if KINETIS_GPT_USE_PIT2
243  /* Driver initialization.*/
244 #ifdef KE1xF
245  GPTD3.channelIndex = 2;
246 #else
247  GPTD3.channel = &PIT->CHANNEL[2];
248 #endif
249  gptObjectInit(&GPTD3);
250 #endif
251 
252 #if KINETIS_GPT_USE_PIT3
253  /* Driver initialization.*/
254 #ifdef KE1xF
255  GPTD4.channelIndex = 3;
256 #else
257  GPTD4.channel = &PIT->CHANNEL[3];
258 #endif
259  gptObjectInit(&GPTD4);
260 #endif
261 }
struct PIT_CHANNEL * channel
Channel structure in PIT registers block.
Definition: hal_gpt_lld.h:266
GPTDriver GPTD1
GPTD1 driver identifier.
Definition: hal_gpt_lld.c:43
GPTDriver GPTD3
GPTD3 driver identifier.
Definition: hal_gpt_lld.c:59
GPTDriver GPTD2
GPTD2 driver identifier.
Definition: hal_gpt_lld.c:51
GPTDriver GPTD4
GPTD4 driver identifier.
Definition: hal_gpt_lld.c:67
int32_t channelIndex
Channel index.
Definition: hal_gpt_lld.h:261

◆ gpt_lld_polled_delay()

void gpt_lld_polled_delay ( GPTDriver gptp,
gptcnt_t  interval 
)

Starts the timer in one shot mode and waits for completion.

This function specifically polls the timer waiting for completion in order to not have extra delays caused by interrupt servicing, this function is only recommended for short delays.

Parameters
[in]gptppointer to the GPTDriver object
[in]intervaltime interval in ticks

@notapi

Definition at line 449 of file hal_gpt_lld.c.

449  {
450 #ifdef KE1xF
451  /* Disable timer and disable interrupts */
452  PIT->CHANNEL[gptp->channelIndex].TCTRL = 0;
453 
454  PIT->MSR |= tif_flags[gptp->channelIndex];
455 
456  /* Set the interval */
457  PIT->CHANNEL[gptp->channelIndex].TVAL = (gptp->clock / gptp->config->frequency) * interval;
458 
459  PIT->CHANNEL[gptp->channelIndex].TCTRL = LPIT_TCTRL_T_EN(1);
460 
461  while (!(PIT->MSR & tif_flags[gptp->channelIndex]))
462  ;
463  /* Disable timer and disable interrupts */
464  PIT->CHANNEL[gptp->channelIndex].TCTRL = 0;
465 #else
466  struct PIT_CHANNEL *channel = gptp->channel;
467 
468  /* Disable timer and disable interrupts */
469  channel->TCTRL = 0;
470 
471  /* Clear the interrupt flag */
472  channel->TFLG |= PIT_TFLGn_TIF;
473 
474  /* Set the interval */
475  channel->LDVAL = (gptp->clock / gptp->config->frequency) * interval;
476 
477  /* Enable Timer but keep interrupts disabled */
478  channel->TCTRL = PIT_TCTRLn_TEN;
479 
480  /* Wait for the interrupt flag to be set */
481  while (!(channel->TFLG & PIT_TFLGn_TIF))
482  ;
483  /* Disable timer and disable interrupts */
484  channel->TCTRL = 0;
485 #endif
486 }
const GPTConfig * config
Current configuration data.
Definition: hal_gpt_lld.h:247
gptfreq_t frequency
Timer clock in Hz.
Definition: hal_gpt_lld.h:213
static const uint32_t tif_flags[]
Definition: hal_gpt_lld.c:79
GPT_DRIVER_EXT_FIELDS uint32_t clock
Timer base clock.
Definition: hal_gpt_lld.h:255

◆ gpt_lld_serve_interrupt()

static void gpt_lld_serve_interrupt ( GPTDriver gptp)
static

Shared IRQ handler.

Parameters
[in]gptppointer to a GPTDriver object

Definition at line 92 of file hal_gpt_lld.c.

92  {
93 
94  /* Clear the interrupt */
95 #ifdef KE1xF
96  PIT->MSR |= tif_flags[gptp->channelIndex];
97 #else
98  gptp->channel->TFLG |= PIT_TFLGn_TIF;
99 #endif
100 
101  if (gptp->state == GPT_ONESHOT) {
102  gptp->state = GPT_READY; /* Back in GPT_READY state. */
103  gpt_lld_stop_timer(gptp); /* Timer automatically stopped. */
104  }
105  gptp->config->callback(gptp);
106 }
void gpt_lld_stop_timer(GPTDriver *gptp)
Stops the timer.
Definition: hal_gpt_lld.c:428
gptstate_t state
Driver state.
Definition: hal_gpt_lld.h:243
gptcallback_t callback
Timer callback pointer.
Definition: hal_gpt_lld.h:220

Referenced by OSAL_IRQ_HANDLER().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gpt_lld_start()

void gpt_lld_start ( GPTDriver gptp)

Configures and activates the GPT peripheral.

Parameters
[in]gptppointer to the GPTDriver object

@notapi

Definition at line 270 of file hal_gpt_lld.c.

270  {
271  uint16_t psc;
272 
273  if (gptp->state == GPT_STOP) {
274 #ifdef KE1xF
275  /* Clock activation.*/
276  PCC->CLKCFG[PCC_LPIT0_INDEX] |= PCC_CLKCFG_CGC(1);
277  //SCG->FIRCDIV = SCG_FIRCDIV_FIRCDIV2(1) | SCG_FIRCDIV_FIRCDIV1(1);
278  PCC->CLKCFG[PCC_LPIT0_INDEX] = (PCC->CLKCFG[PCC_LPIT0_INDEX] & ~PCC_CLKCFG_PCS_MASK) | PCC_CLKCFG_PCS(6/*SCGPCLK System PLL clock*/);
279 #else
280  /* Clock activation.*/
281  SIM->SCGC6 |= SIM_SCGC6_PIT;
282 #endif
283  gptp->clock = KINETIS_SPLL_DIV2_FREQENCY/*KINETIS_SYSCLK_FREQUENCY*/;
284 
285 #if !KINETIS_HAS_PIT_COMMON_IRQ
286 
287 #if KINETIS_GPT_USE_PIT0
288  if (&GPTD1 == gptp) {
289  nvicEnableVector(PITChannel0_IRQn, KINETIS_GPT_PIT0_IRQ_PRIORITY);
290  }
291 #endif
292 #if KINETIS_GPT_USE_PIT1
293  if (&GPTD2 == gptp) {
294  nvicEnableVector(PITChannel1_IRQn, KINETIS_GPT_PIT1_IRQ_PRIORITY);
295  }
296 #endif
297 #if KINETIS_GPT_USE_PIT2
298  if (&GPTD3 == gptp) {
299  nvicEnableVector(PITChannel2_IRQn, KINETIS_GPT_PIT2_IRQ_PRIORITY);
300  }
301 #endif
302 #if KINETIS_GPT_USE_PIT3
303  if (&GPTD4 == gptp) {
304  nvicEnableVector(PITChannel3_IRQn, KINETIS_GPT_PIT3_IRQ_PRIORITY);
305  }
306 #endif
307 
308 #else /* !KINETIS_HAS_PIT_COMMON_IRQ */
309  nvicEnableVector(PIT_IRQn, KINETIS_GPT_PIT_IRQ_PRIORITY);
310  active_channels++;
311 #endif /* !KINETIS_HAS_PIT_COMMON_IRQ */
312  }
313 
314  /* Prescaler value calculation.*/
315  psc = (uint16_t)((gptp->clock / gptp->config->frequency) - 1);
316  osalDbgAssert(((uint32_t)(psc + 1) * gptp->config->frequency) == gptp->clock,
317  "invalid frequency");
318 
319 #ifdef KE1xF
320  /* Enable the PIT */
321  PIT->MCR |= LPIT_MCR_M_CEN(1);
322 #else
323  /* Enable the PIT */
324  PIT->MCR = 0;
325 #endif
326 }
static uint8_t active_channels
Definition: hal_gpt_lld.c:75

◆ gpt_lld_start_timer()

void gpt_lld_start_timer ( GPTDriver gptp,
gptcnt_t  interval 
)

Starts the timer in continuous mode.

Parameters
[in]gptppointer to the GPTDriver object
[in]intervalperiod in ticks

@notapi

Definition at line 397 of file hal_gpt_lld.c.

397  {
398 #ifdef KE1xF
399  /* Clear pending interrupts */
400  PIT->MSR |= tif_flags[gptp->channelIndex];
401 
402  /* Set the interval */
403  gpt_lld_change_interval(gptp, interval);
404 
405  /* Enable interrupts */
406  PIT->MIER |= mier_flags[gptp->channelIndex];
407  /* Start the timer */
408  PIT->CHANNEL[gptp->channelIndex].TCTRL |= LPIT_TCTRL_T_EN(1);
409 #else
410  /* Clear pending interrupts */
411  gptp->channel->TFLG |= PIT_TFLGn_TIF;
412 
413  /* Set the interval */
414  gpt_lld_change_interval(gptp, interval);
415 
416  /* Start the timer */
417  gptp->channel->TCTRL |= PIT_TCTRLn_TIE | PIT_TCTRLn_TEN;
418 #endif
419 }
static const uint32_t mier_flags[]
Definition: hal_gpt_lld.c:80

◆ gpt_lld_stop()

void gpt_lld_stop ( GPTDriver gptp)

Deactivates the GPT peripheral.

Parameters
[in]gptppointer to the GPTDriver object

@notapi

Definition at line 335 of file hal_gpt_lld.c.

335  {
336 
337  if (gptp->state == GPT_READY) {
338 #ifdef KE1xF
339  PCC->CLKCFG[PCC_LPIT0_INDEX] &= ~PCC_CLKCFG_CGC(1);
340 
341  /* Disable the channel */
342  PIT->CHANNEL[gptp->channelIndex].TCTRL = 0;
343 
344  /* Disable interrupts */
345  PIT->MIER &= ~mier_flags[gptp->channelIndex];
346 
347  /* Clear pending interrupts */
348  PIT->MSR |= tif_flags[gptp->channelIndex];
349 #else
350  SIM->SCGC6 &= ~SIM_SCGC6_PIT;
351 
352  /* Disable the channel */
353  gptp->channel->TCTRL = 0;
354 
355  /* Clear pending interrupts */
356  gptp->channel->TFLG |= PIT_TFLGn_TIF;
357 #endif
358 
359 #if !KINETIS_HAS_PIT_COMMON_IRQ
360 
361 #if KINETIS_GPT_USE_PIT0
362  if (&GPTD1 == gptp) {
363  nvicDisableVector(PITChannel0_IRQn);
364  }
365 #endif
366 #if KINETIS_GPT_USE_PIT1
367  if (&GPTD2 == gptp) {
368  nvicDisableVector(PITChannel1_IRQn);
369  }
370 #endif
371 #if KINETIS_GPT_USE_PIT2
372  if (&GPTD3 == gptp) {
373  nvicDisableVector(PITChannel2_IRQn);
374  }
375 #endif
376 #if KINETIS_GPT_USE_PIT3
377  if (&GPTD4 == gptp) {
378  nvicDisableVector(PITChannel3_IRQn);
379  }
380 #endif
381 
382 #else /* !KINETIS_HAS_PIT_COMMON_IRQ */
383  if(--active_channels == 0)
384  nvicDisableVector(PIT_IRQn);
385 #endif /* !KINETIS_HAS_PIT_COMMON_IRQ */
386  }
387 }

◆ gpt_lld_stop_timer()

void gpt_lld_stop_timer ( GPTDriver gptp)

Stops the timer.

Parameters
[in]gptppointer to the GPTDriver object

@notapi

Definition at line 428 of file hal_gpt_lld.c.

428  {
429 #ifdef KE1xF
430  /* Stop the timer */
431  PIT->CHANNEL[gptp->channelIndex].TCTRL = 0;
432 #else
433  /* Stop the timer */
434  gptp->channel->TCTRL = 0;
435 #endif
436 }

Referenced by gpt_lld_serve_interrupt().

Here is the caller graph for this function:

◆ OSAL_IRQ_HANDLER() [1/5]

OSAL_IRQ_HANDLER ( KINETIS_PIT0_IRQ_VECTOR  )

PIT1 interrupt handler.

@isr

Definition at line 120 of file hal_gpt_lld.c.

120  {
121  OSAL_IRQ_PROLOGUE();
123  OSAL_IRQ_EPILOGUE();
124 }
static void gpt_lld_serve_interrupt(GPTDriver *gptp)
Shared IRQ handler.
Definition: hal_gpt_lld.c:92
Here is the call graph for this function:

◆ OSAL_IRQ_HANDLER() [2/5]

OSAL_IRQ_HANDLER ( KINETIS_PIT1_IRQ_VECTOR  )

PIT1 interrupt handler.

@isr

Definition at line 133 of file hal_gpt_lld.c.

133  {
134  OSAL_IRQ_PROLOGUE();
136  OSAL_IRQ_EPILOGUE();
137 }
Here is the call graph for this function:

◆ OSAL_IRQ_HANDLER() [3/5]

OSAL_IRQ_HANDLER ( KINETIS_PIT2_IRQ_VECTOR  )

PIT2 interrupt handler.

@isr

Definition at line 146 of file hal_gpt_lld.c.

146  {
147  OSAL_IRQ_PROLOGUE();
149  OSAL_IRQ_EPILOGUE();
150 }
Here is the call graph for this function:

◆ OSAL_IRQ_HANDLER() [4/5]

OSAL_IRQ_HANDLER ( KINETIS_PIT3_IRQ_VECTOR  )

PIT3 interrupt handler.

@isr

Definition at line 159 of file hal_gpt_lld.c.

159  {
160  OSAL_IRQ_PROLOGUE();
162  OSAL_IRQ_EPILOGUE();
163 }
Here is the call graph for this function:

◆ OSAL_IRQ_HANDLER() [5/5]

OSAL_IRQ_HANDLER ( KINETIS_PIT_IRQ_VECTOR  )

Common PIT interrupt handler.

@isr

Definition at line 172 of file hal_gpt_lld.c.

172  {
173  OSAL_IRQ_PROLOGUE();
174 #if KINETIS_GPT_USE_PIT0
175 #ifdef KE1xF
176  if(PIT->MSR & LPIT_MSR_TIF0(1))
177 #else
178  if(GPTD1.channel->TFLG & PIT_TFLGn_TIF)
179 #endif
181 #endif /* KINETIS_GPT_USE_PIT0 */
182 #if KINETIS_GPT_USE_PIT1
183 #ifdef KE1xF
184  if(PIT->MSR & LPIT_MSR_TIF1(1))
185 #else
186  if(GPTD2.channel->TFLG & PIT_TFLGn_TIF)
187 #endif
189 #endif /* KINETIS_GPT_USE_PIT1 */
190 #if KINETIS_GPT_USE_PIT2
191 #ifdef KE1xF
192  if(PIT->MSR & LPIT_MSR_TIF2(1))
193 #else
194  if(GPTD3.channel->TFLG & PIT_TFLGn_TIF)
195 #endif
197 #endif /* KINETIS_GPT_USE_PIT2 */
198 #if KINETIS_GPT_USE_PIT3
199 #ifdef KE1xF
200  if(PIT->MSR & LPIT_MSR_TIF3(1))
201 #else
202  if(GPTD4.channel->TFLG & PIT_TFLGn_TIF)
203 #endif
205 #endif /* KINETIS_GPT_USE_PIT3 */
206  OSAL_IRQ_EPILOGUE();
207 }
Here is the call graph for this function:

Variable Documentation

◆ active_channels

uint8_t active_channels = 0
static

Definition at line 75 of file hal_gpt_lld.c.

Referenced by gpt_lld_start(), and gpt_lld_stop().

◆ callback

gptcallback_t GPTConfig::callback

Timer callback pointer.

Note
This callback is invoked on GPT counter events.
This callback can be set to NULL but in that case the one-shot mode cannot be used.

Definition at line 220 of file hal_gpt_lld.h.

Referenced by gpt_lld_serve_interrupt().

◆ channel

struct PIT_CHANNEL* GPTDriver::channel

Channel structure in PIT registers block.

Definition at line 266 of file hal_gpt_lld.h.

Referenced by gpt_lld_init(), gpt_lld_polled_delay(), gpt_lld_serve_interrupt(), gpt_lld_start_timer(), gpt_lld_stop(), gpt_lld_stop_timer(), and OSAL_IRQ_HANDLER().

◆ channelIndex

int32_t GPTDriver::channelIndex

◆ clock

GPT_DRIVER_EXT_FIELDS uint32_t GPTDriver::clock

Timer base clock.

Definition at line 255 of file hal_gpt_lld.h.

Referenced by gpt_lld_polled_delay(), and gpt_lld_start().

◆ config

const GPTConfig* GPTDriver::config

Current configuration data.

Definition at line 247 of file hal_gpt_lld.h.

Referenced by gpt_lld_polled_delay(), gpt_lld_serve_interrupt(), and gpt_lld_start().

◆ cr2

uint32_t GPTConfig::cr2

TIM CR2 register initialization data.

Note
The value of this field should normally be equal to zero.

Definition at line 227 of file hal_gpt_lld.h.

◆ dier

uint32_t GPTConfig::dier

TIM DIER register initialization data.

Note
The value of this field should normally be equal to zero.
Only the DMA-related bits can be specified in this field.

Definition at line 233 of file hal_gpt_lld.h.

◆ frequency

gptfreq_t GPTConfig::frequency

Timer clock in Hz.

Note
The low level can use assertions in order to catch invalid frequency specifications.

Definition at line 213 of file hal_gpt_lld.h.

Referenced by gpt_lld_polled_delay(), and gpt_lld_start().

◆ GPTD1 [1/2]

GPTDriver GPTD1

GPTD1 driver identifier.

Note
The driver GPTD1 allocates the complex timer PIT0 when enabled.

Definition at line 43 of file hal_gpt_lld.c.

Referenced by gpt_lld_init(), gpt_lld_start(), gpt_lld_stop(), and OSAL_IRQ_HANDLER().

◆ GPTD1 [2/2]

GPTDriver GPTD1
extern

GPTD1 driver identifier.

Note
The driver GPTD1 allocates the complex timer PIT0 when enabled.

Definition at line 43 of file hal_gpt_lld.c.

Referenced by gpt_lld_init(), gpt_lld_start(), gpt_lld_stop(), and OSAL_IRQ_HANDLER().

◆ GPTD2 [1/2]

GPTDriver GPTD2

GPTD2 driver identifier.

Note
The driver GPTD2 allocates the timer PIT1 when enabled.

Definition at line 51 of file hal_gpt_lld.c.

Referenced by gpt_lld_init(), gpt_lld_start(), gpt_lld_stop(), and OSAL_IRQ_HANDLER().

◆ GPTD2 [2/2]

GPTDriver GPTD2
extern

GPTD2 driver identifier.

Note
The driver GPTD2 allocates the timer PIT1 when enabled.

Definition at line 51 of file hal_gpt_lld.c.

Referenced by gpt_lld_init(), gpt_lld_start(), gpt_lld_stop(), and OSAL_IRQ_HANDLER().

◆ GPTD3 [1/2]

GPTDriver GPTD3

GPTD3 driver identifier.

Note
The driver GPTD3 allocates the timer PIT2 when enabled.

Definition at line 59 of file hal_gpt_lld.c.

Referenced by gpt_lld_init(), gpt_lld_start(), gpt_lld_stop(), OSAL_IRQ_HANDLER(), and readSlowAnalogInputs().

◆ GPTD3 [2/2]

GPTDriver GPTD3
extern

GPTD3 driver identifier.

Note
The driver GPTD3 allocates the timer PIT2 when enabled.

Definition at line 59 of file hal_gpt_lld.c.

Referenced by gpt_lld_init(), gpt_lld_start(), gpt_lld_stop(), OSAL_IRQ_HANDLER(), and readSlowAnalogInputs().

◆ GPTD4 [1/2]

GPTDriver GPTD4

GPTD4 driver identifier.

Note
The driver GPTD4 allocates the timer PIT3 when enabled.

Definition at line 67 of file hal_gpt_lld.c.

Referenced by gpt_lld_init(), gpt_lld_start(), gpt_lld_stop(), and OSAL_IRQ_HANDLER().

◆ GPTD4 [2/2]

GPTDriver GPTD4
extern

GPTD4 driver identifier.

Note
The driver GPTD4 allocates the timer PIT3 when enabled.

Definition at line 67 of file hal_gpt_lld.c.

Referenced by gpt_lld_init(), gpt_lld_start(), gpt_lld_stop(), and OSAL_IRQ_HANDLER().

◆ mier_flags

const uint32_t mier_flags[] = { LPIT_MIER_TIE0(1), LPIT_MIER_TIE1(1), LPIT_MIER_TIE2(1), LPIT_MIER_TIE3(1) }
static

Definition at line 80 of file hal_gpt_lld.c.

Referenced by gpt_lld_start_timer(), and gpt_lld_stop().

◆ state

gptstate_t GPTDriver::state

Driver state.

Definition at line 243 of file hal_gpt_lld.h.

Referenced by gpt_lld_serve_interrupt(), gpt_lld_start(), and gpt_lld_stop().

◆ tif_flags

const uint32_t tif_flags[] = { LPIT_MSR_TIF0(1), LPIT_MSR_TIF1(1), LPIT_MSR_TIF2(1), LPIT_MSR_TIF3(1) }
static