Line data Source code
1 0 : /*
2 : * Copyright (c) 2025 ITE Corporation. All Rights Reserved
3 : *
4 : * SPDX-License-Identifier: Apache-2.0
5 : */
6 :
7 : #ifndef ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_IT51XXX_WUC_H_
8 : #define ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_IT51XXX_WUC_H_
9 :
10 : #include <zephyr/device.h>
11 :
12 : /**
13 : * @name wakeup controller flags
14 : * @{
15 : */
16 : /** WUC rising edge trigger mode */
17 1 : #define WUC_TYPE_EDGE_RISING BIT(0)
18 : /** WUC falling edge trigger mode */
19 1 : #define WUC_TYPE_EDGE_FALLING BIT(1)
20 : /** WUC both edge trigger mode */
21 1 : #define WUC_TYPE_EDGE_BOTH (WUC_TYPE_EDGE_RISING | WUC_TYPE_EDGE_FALLING)
22 :
23 0 : #define WUC_TYPE_LEVEL_TRIG BIT(2)
24 : /** WUC level high trigger mode */
25 1 : #define WUC_TYPE_LEVEL_HIGH BIT(3)
26 : /** WUC level low trigger mode */
27 1 : #define WUC_TYPE_LEVEL_LOW BIT(4)
28 :
29 : /** @} */
30 :
31 : /**
32 : * @brief A trigger condition on the corresponding input generates
33 : * a wake-up signal to the power management control of EC
34 : *
35 : * @param dev Pointer to the device structure for the driver instance
36 : * @param mask Pin mask of WUC group
37 : */
38 1 : void it51xxx_wuc_enable(const struct device *dev, uint8_t mask);
39 :
40 : /**
41 : * @brief A trigger condition on the corresponding input doesn't
42 : * assert the wake-up signal (canceled not pending)
43 : *
44 : * @param dev Pointer to the device structure for the driver instance
45 : * @param mask Pin mask of WUC group
46 : */
47 1 : void it51xxx_wuc_disable(const struct device *dev, uint8_t mask);
48 :
49 : /**
50 : * @brief Write-1-clear a trigger condition that occurs on the
51 : * corresponding input
52 : *
53 : * @param dev Pointer to the device structure for the driver instance
54 : * @param mask Pin mask of WUC group
55 : */
56 1 : void it51xxx_wuc_clear_status(const struct device *dev, uint8_t mask);
57 :
58 : /**
59 : * @brief Select the trigger edge mode on the corresponding input
60 : *
61 : * @param dev Pointer to the device structure for the driver instance
62 : * @param mask Pin mask of WUC group
63 : * @param flags Select the trigger edge mode
64 : */
65 1 : void it51xxx_wuc_set_polarity(const struct device *dev, uint8_t mask, uint32_t flags);
66 :
67 : #endif /* ZEPHYR_DRIVERS_INTERRUPT_CONTROLLER_IT51XXX_WUC_H_ */
|