SmartSnippets DA1459x SDK
Data Structures | Macros | Enumerations | Functions

Definition of API for the Wakeup Controller Low Level Driver. More...

#include <stdbool.h>
#include <stdint.h>
#include "sdk_defs.h"
#include "hw_gpio.h"

Go to the source code of this file.

Data Structures

struct  wkup_config
 Wakeup Controller configuration. More...
 

Macros

#define HW_WKUP_REG_FIELD_MASK(reg, field)   (WAKEUP_WKUP_##reg##_REG_##field##_Msk)
 Get the mask of a field of an WKUP register. More...
 
#define HW_WKUP_REG_FIELD_POS(reg, field)   (WAKEUP_WKUP_##reg##_REG_##field##_Pos)
 Get the bit position of a field of an WKUP register. More...
 
#define HW_WKUP_REG_GETF(reg, field)   ((WAKEUP->WKUP_##reg##_REG & (WAKEUP_WKUP_##reg##_REG_##field##_Msk)) >> (WAKEUP_WKUP_##reg##_REG_##field##_Pos))
 Get the value of a field of an WKUP register. More...
 
#define HW_WKUP_REG_SETF(reg, field, new_val)
 Set the value of a field of an WKUP register. More...
 

Enumerations

enum  HW_WKUP_TRIGGER {
  HW_WKUP_TRIG_DISABLED, HW_WKUP_TRIG_LEVEL_HI_DEB, HW_WKUP_TRIG_LEVEL_LO_DEB, HW_WKUP_TRIG_LEVEL_HI,
  HW_WKUP_TRIG_LEVEL_LO, HW_WKUP_TRIG_EDGE_HI, HW_WKUP_TRIG_EDGE_LO
}
 Key and gpio trigger types. More...
 
enum  HW_WKUP_HIBERN_PIN { HW_WKUP_HIBERN_PIN_NONE = 0, HW_WKUP_HIBERN_P0_14_ONLY, HW_WKUP_HIBERN_P1_04_ONLY, HW_WKUP_HIBERN_BOTH_PINS }
 Wake up from hibernation controller pin settings. More...
 
enum  HW_WKUP_HIBERN_POLARITY { HW_WKUP_HIBERN_BOTH_PINS_ACTIVE_HIGH = 0, HW_WKUP_HIBERN_P0_14_ACTIVE_LOW_ONLY, HW_WKUP_HIBERN_P1_04_ACTIVE_LOW_ONLY, HW_WKUP_HIBERN_BOTH_PINS_ACTIVE_LOW }
 Wake up from hibernation pin polarity settings. More...
 

Functions

void hw_wkup_configure_hibernation (HW_WKUP_HIBERN_PIN pin, HW_WKUP_HIBERN_POLARITY pol)
 Configure wake up from hibernation block. More...
 
void hw_wkup_init (const wkup_config *cfg)
 Initialize peripheral. More...
 
void hw_wkup_configure (const wkup_config *cfg)
 Configure peripheral. More...
 
void hw_wkup_register_key_interrupt (hw_wkup_interrupt_cb cb, uint32_t prio)
 Register KEY interrupt handler. More...
 
void hw_wkup_register_gpio_p0_interrupt (hw_wkup_interrupt_cb cb, uint32_t prio)
 Register GPIO P0 interrupt handler. More...
 
void hw_wkup_register_gpio_p1_interrupt (hw_wkup_interrupt_cb cb, uint32_t prio)
 Register GPIO P1 interrupt handler. More...
 
void hw_wkup_unregister_interrupts (void)
 Unregister interrupt handlers. More...
 
__STATIC_INLINE void hw_wkup_reset_key_interrupt (void)
 Reset key interrupt. More...
 
void hw_wkup_handler (void)
 Interrupt handler. More...
 
__STATIC_INLINE void hw_wkup_set_key_debounce_time (uint8_t time_ms)
 Set debounce time. More...
 
__STATIC_INLINE uint8_t hw_wkup_get_key_debounce_time (void)
 Get current debounce time. More...
 
void hw_wkup_set_trigger (HW_GPIO_PORT port, HW_GPIO_PIN pin, HW_WKUP_TRIGGER trigger)
 Configure a gpio or key trigger event. More...
 
__STATIC_INLINE HW_WKUP_TRIGGER hw_wkup_get_trigger (HW_GPIO_PORT port, HW_GPIO_PIN pin)
 Get gpio or key trigger configuration. More...
 
__STATIC_INLINE void hw_wkup_emulate_key_hit (void)
 Emulate key hit. More...
 
__STATIC_INLINE void hw_wkup_enable_key_irq (void)
 Enable WKUP Key interrupts. More...
 
__STATIC_INLINE void hw_wkup_disable_key_irq (void)
 Disable WKUP interrupts. More...
 
__STATIC_INLINE void hw_wkup_freeze_key_timer (void)
 Freeze wakeup timer. More...
 
__STATIC_INLINE void hw_wkup_unfreeze_key_timer (void)
 Unfreeze wakeup controller timer. More...
 
__STATIC_INLINE uint32_t hw_wkup_get_gpio_status (HW_GPIO_PORT port)
 Get port status on last wake up. More...
 
__STATIC_INLINE void hw_wkup_clear_gpio_status (HW_GPIO_PORT port, uint32_t status)
 Clear latch status. More...
 

Detailed Description

Definition of API for the Wakeup Controller Low Level Driver.

Copyright (C) 2015-2023 Renesas Electronics Corporation and/or its affiliates. All rights reserved. Confidential Information.

This software ("Software") is supplied by Renesas Electronics Corporation and/or its affiliates ("Renesas"). Renesas grants you a personal, non-exclusive, non-transferable, revocable, non-sub-licensable right and license to use the Software, solely if used in or together with Renesas products. You may make copies of this Software, provided this copyright notice and disclaimer ("Notice") is included in all such copies. Renesas reserves the right to change or discontinue the Software at any time without notice.

THE SOFTWARE IS PROVIDED "AS IS". RENESAS DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. TO THE MAXIMUM EXTENT PERMITTED UNDER LAW, IN NO EVENT SHALL RENESAS BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE, EVEN IF RENESAS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. USE OF THIS SOFTWARE MAY BE SUBJECT TO TERMS AND CONDITIONS CONTAINED IN AN ADDITIONAL AGREEMENT BETWEEN YOU AND RENESAS. IN CASE OF CONFLICT BETWEEN THE TERMS OF THIS NOTICE AND ANY SUCH ADDITIONAL LICENSE AGREEMENT, THE TERMS OF THE AGREEMENT SHALL TAKE PRECEDENCE. BY CONTINUING TO USE THIS SOFTWARE, YOU AGREE TO THE TERMS OF THIS NOTICE.IF YOU DO NOT AGREE TO THESE TERMS, YOU ARE NOT PERMITTED TO USE THIS SOFTWARE.