All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
LLWU: Low-Leakage Wakeup Unit Driver

## Overview

The KSDK provides a Peripheral driver for the Low-Leakage Wakeup Unit (LLWU) module of Kinetis devices. The LLWU module allows the user to select external pin sources and internal modules as a wake-up source from low-leakage power modes.

# External wakeup pins configurations

Configures the external wakeup pins' working modes, gets and clears the wake pin flags. External wakeup pins are accessed by `pinIndex` which is started from 1. Numbers of external pins depend on the SoC configuration.

# Internal wakeup modules configurations

Enables/disables the internal wakeup modules, and gets the modules flags. Internal modules are accessed by `moduleIndex` which is started from 1. Numbers of external pins depend the on SoC configuration.

# Digital pin filter for external wakeup pin configurations

Configures the digital pin filter of the external wakeup pins' working modes, gets and clears the pin filter flags. Digital pins filters are accessed by `filterIndex` which is started from 1. Numbers of external pins depends on the SoC configuration.

## Data Structures

struct | llwu_external_pin_filter_mode_t
| External input pin filter control structure. More...

## Enumerations

enum | llwu_external_pin_mode_t { kLLWU_ExternalPinDisable = 0U, kLLWU_ExternalPinRisingEdge = 1U, kLLWU_ExternalPinFallingEdge = 2U, kLLWU_ExternalPinAnyEdge = 3U }
| External input pin control modes. More...
enum | llwu_pin_filter_mode_t { kLLWU_PinFilterDisable = 0U, kLLWU_PinFilterRisingEdge = 1U, kLLWU_PinFilterFallingEdge = 2U, kLLWU_PinFilterAnyEdge = 3U }
| Digital filter control modes. More...

## Driver version

#define | FSL_LLWU_DRIVER_VERSION (MAKE_VERSION(2, 0, 1))
| LLWU driver version 2.0.1. More...

## Low-Leakage Wakeup Unit Control APIs

void | LLWU_SetExternalWakeupPinMode (LLWU_Type *base, uint32_t pinIndex, llwu_external_pin_mode_t pinMode)
| Sets the external input pin source mode. More...
bool | LLWU_GetExternalWakeupPinFlag (LLWU_Type *base, uint32_t pinIndex)
| Gets the external wakeup source flag. More...
void | LLWU_ClearExternalWakeupPinFlag (LLWU_Type *base, uint32_t pinIndex)
| Clears the external wakeup source flag. More...
void | LLWU_SetPinFilterMode (LLWU_Type *base, uint32_t filterIndex, llwu_external_pin_filter_mode_t filterMode)
| Sets the pin filter configuration. More...
bool | LLWU_GetPinFilterFlag (LLWU_Type *base, uint32_t filterIndex)
| Gets the pin filter configuration. More...
void | LLWU_ClearPinFilterFlag (LLWU_Type *base, uint32_t filterIndex)
| Clear the pin filter configuration. More...

## Data Structure Documentation

struct llwu_external_pin_filter_mode_t

### Data Fields

uint32_t | pinIndex
| Pin number.
llwu_pin_filter_mode_t | filterMode
| Filter mode.

## Macro Definition Documentation

#define FSL_LLWU_DRIVER_VERSION (MAKE_VERSION(2, 0, 1))

## Enumeration Type Documentation

enum llwu_external_pin_mode_t

Enumerator
kLLWU_ExternalPinDisable | Pin disabled as wakeup input.
kLLWU_ExternalPinRisingEdge | Pin enabled with rising edge detection.
kLLWU_ExternalPinFallingEdge | Pin enabled with falling edge detection.
kLLWU_ExternalPinAnyEdge | Pin enabled with any change detection.

enum llwu_pin_filter_mode_t

Enumerator
kLLWU_PinFilterDisable | Filter disabled.
kLLWU_PinFilterRisingEdge | Filter positive edge detection.
kLLWU_PinFilterFallingEdge | Filter negative edge detection.
kLLWU_PinFilterAnyEdge | Filter any edge detection.

## Function Documentation

void LLWU_SetExternalWakeupPinMode | ( | LLWU_Type * | base,
|  | uint32_t | pinIndex,
|  | llwu_external_pin_mode_t | pinMode
| ) |  |

This function sets the external input pin source mode that is used as a wake up source.

Parameters

  base | LLWU peripheral base address.
  pinIndex | pin index which to be enabled as external wakeup source, start from 1.
  pinMode | pin configuration mode defined in llwu_external_pin_modes_t

bool LLWU_GetExternalWakeupPinFlag | ( | LLWU_Type * | base,
|  | uint32_t | pinIndex
| ) |  |

This function checks the external pin flag to detect whether the MCU is woke up by the specific pin.

Parameters

  base | LLWU peripheral base address.
  pinIndex | pin index, start from 1.

Returns
  true if the specific pin is wake up source.

void LLWU_ClearExternalWakeupPinFlag | ( | LLWU_Type * | base,
|  | uint32_t | pinIndex
| ) |  |

This function clears the external wakeup source flag for a specific pin.

Parameters

  base | LLWU peripheral base address.
  pinIndex | pin index, start from 1.

void LLWU_SetPinFilterMode | ( | LLWU_Type * | base,
|  | uint32_t | filterIndex,
|  | llwu_external_pin_filter_mode_t | filterMode
| ) |  |

This function sets the pin filter configuration.

Parameters

  base | LLWU peripheral base address.
  filterIndex | pin filter index which used to enable/disable the digital filter, start from 1.
  filterMode | filter mode configuration

bool LLWU_GetPinFilterFlag | ( | LLWU_Type * | base,
|  | uint32_t | filterIndex
| ) |  |

This function gets the pin filter flag.

Parameters

  base | LLWU peripheral base address.
  filterIndex | pin filter index, start from 1.

Returns
  true if the flag is a source of existing a low-leakage power mode.

void LLWU_ClearPinFilterFlag | ( | LLWU_Type * | base,
|  | uint32_t | filterIndex
| ) |  |

This function clear the pin filter flag.

Parameters

  base | LLWU peripheral base address.
  filterIndex | pin filter index which to be clear the flag, start from 1.