12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*
- * Copyright (C) 2016-2020 Marvell International Ltd.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- * https://spdx.org/licenses
- */
- #ifndef A3700_PM_H
- #define A3700_PM_H
- #include <stdint.h>
- /* supported wake up sources */
- enum pm_wake_up_src_type {
- WAKE_UP_SRC_GPIO,
- /* FOLLOWING SRC NOT SUPPORTED YET */
- WAKE_UP_SRC_TIMER,
- WAKE_UP_SRC_UART0,
- WAKE_UP_SRC_UART1,
- WAKE_UP_SRC_MAX,
- };
- struct pm_gpio_data {
- /*
- * bank 0: North bridge GPIO
- * bank 1: South bridge GPIO
- */
- uint32_t bank_num;
- uint32_t gpio_num;
- };
- union pm_wake_up_src_data {
- struct pm_gpio_data gpio_data;
- /* delay in seconds */
- uint32_t timer_delay;
- };
- struct pm_wake_up_src {
- enum pm_wake_up_src_type wake_up_src_type;
- union pm_wake_up_src_data wake_up_data;
- };
- struct pm_wake_up_src_config {
- uint32_t wake_up_src_num;
- struct pm_wake_up_src wake_up_src[WAKE_UP_SRC_MAX];
- };
- struct pm_wake_up_src_config *mv_wake_up_src_config_get(void);
- void a3700_pm_ack_irq(void);
- void cm3_system_reset(void);
- #endif /* A3700_PM_H */
|