cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

spm.h (821B)


      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__ */