|  | /* | 
|  | * Copyright (c) 2019 Centaur Analytics, Inc | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | #ifndef ZEPHYR_DRIVERS_WATCHDOG_WWDG_STM32_H_ | 
|  | #define ZEPHYR_DRIVERS_WATCHDOG_WWDG_STM32_H_ | 
|  |  | 
|  | #include <zephyr/types.h> | 
|  | #include <zephyr/drivers/clock_control/stm32_clock_control.h> | 
|  | #include <zephyr/drivers/clock_control.h> | 
|  |  | 
|  | /** | 
|  | * @brief Driver for System Window Watchdog (WWDG) for STM32 MCUs | 
|  | * | 
|  | * The driver targets all STM32 SoCs. For details please refer to | 
|  | * an appropriate reference manual and look for chapter called: | 
|  | * | 
|  | *   System window watchdog (WWDG) | 
|  | * | 
|  | */ | 
|  |  | 
|  | /* driver configuration */ | 
|  | struct wwdg_stm32_config { | 
|  | struct stm32_pclken pclken; | 
|  | WWDG_TypeDef *Instance; | 
|  | }; | 
|  |  | 
|  | /* driver data */ | 
|  | struct wwdg_stm32_data { | 
|  | /* WWDG reset counter */ | 
|  | uint8_t counter; | 
|  |  | 
|  | /* WWDG user defined callback on EWI */ | 
|  | wdt_callback_t callback; | 
|  | }; | 
|  |  | 
|  | #define WWDG_STM32_CFG(dev) \ | 
|  | ((const struct wwdg_stm32_config *const)(dev)->config) | 
|  |  | 
|  | #define WWDG_STM32_DATA(dev) \ | 
|  | ((struct wwdg_stm32_data *const)(dev)->data) | 
|  |  | 
|  | #define WWDG_STM32_STRUCT(dev) \ | 
|  | ((WWDG_TypeDef *)(WWDG_STM32_CFG(dev))->Instance) | 
|  |  | 
|  | #endif  /* ZEPHYR_DRIVERS_WATCHDOG_WWDG_STM32_H_ */ |