12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- /*
- * Copyright (c) 2011-2014, The Linux Foundation. All rights reserved.
- * Copyright (c) 2014,2015, Linaro Ltd.
- */
- #ifndef __SPM_H__
- #define __SPM_H__
- #include <linux/cpuidle.h>
- #define MAX_PMIC_DATA 2
- #define MAX_SEQ_DATA 64
- enum pm_sleep_mode {
- PM_SLEEP_MODE_STBY,
- PM_SLEEP_MODE_RET,
- PM_SLEEP_MODE_SPC,
- PM_SLEEP_MODE_PC,
- PM_SLEEP_MODE_NR,
- };
- struct spm_reg_data {
- const u16 *reg_offset;
- u32 spm_cfg;
- u32 spm_dly;
- u32 pmic_dly;
- u32 pmic_data[MAX_PMIC_DATA];
- u32 avs_ctl;
- u32 avs_limit;
- u8 seq[MAX_SEQ_DATA];
- u8 start_index[PM_SLEEP_MODE_NR];
- };
- struct spm_driver_data {
- void __iomem *reg_base;
- const struct spm_reg_data *reg_data;
- };
- void spm_set_low_power_mode(struct spm_driver_data *drv,
- enum pm_sleep_mode mode);
- #endif /* __SPM_H__ */
|