Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
 1/* SPDX-License-Identifier: GPL-2.0-only */
 2/*
 3 * Copyright (c) 2011-2014, The Linux Foundation. All rights reserved.
 4 * Copyright (c) 2014,2015, Linaro Ltd.
 5 */
 6
 7#ifndef __SPM_H__
 8#define __SPM_H__
 9
10#include <linux/cpuidle.h>
11
12#define MAX_PMIC_DATA		2
13#define MAX_SEQ_DATA		64
14
15enum pm_sleep_mode {
16	PM_SLEEP_MODE_STBY,
17	PM_SLEEP_MODE_RET,
18	PM_SLEEP_MODE_SPC,
19	PM_SLEEP_MODE_PC,
20	PM_SLEEP_MODE_NR,
21};
22
23struct spm_reg_data {
24	const u16 *reg_offset;
25	u32 spm_cfg;
26	u32 spm_dly;
27	u32 pmic_dly;
28	u32 pmic_data[MAX_PMIC_DATA];
29	u32 avs_ctl;
30	u32 avs_limit;
31	u8 seq[MAX_SEQ_DATA];
32	u8 start_index[PM_SLEEP_MODE_NR];
33};
34
35struct spm_driver_data {
36	void __iomem *reg_base;
37	const struct spm_reg_data *reg_data;
38};
39
40void spm_set_low_power_mode(struct spm_driver_data *drv,
41			    enum pm_sleep_mode mode);
42
43#endif /* __SPM_H__ */