1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (C) 2015-2016 Intel Corp.
4  * (Written by Lance Zhao <lijian.zhao@intel.com> for Intel Corp.)
5  * Copyright 2019 Google LLC
6  */
7 
8 #ifndef _ASM_ARCH_PM_H
9 #define _ASM_ARCH_PM_H
10 
11 #include <power/acpi_pmc.h>
12 
13 #define PMC_GPE_SW_31_0	0
14 #define PMC_GPE_SW_63_32	1
15 #define PMC_GPE_NW_31_0	3
16 #define PMC_GPE_NW_63_32	4
17 #define PMC_GPE_NW_95_64	5
18 #define PMC_GPE_N_31_0		6
19 #define PMC_GPE_N_63_32	7
20 #define PMC_GPE_W_31_0		9
21 
22 #define IRQ_REG			0x106c
23 #define SCI_IRQ_SHIFT		24
24 #define SCI_IRQ_MASK		(0xff << SCI_IRQ_SHIFT)
25 #define SCIS_IRQ9		9
26 #define SCIS_IRQ10		10
27 #define SCIS_IRQ11		11
28 #define SCIS_IRQ20		20
29 #define SCIS_IRQ21		21
30 #define SCIS_IRQ22		22
31 #define SCIS_IRQ23		23
32 
33 /* P-state configuration */
34 #define PSS_MAX_ENTRIES		8
35 #define PSS_RATIO_STEP		2
36 #define PSS_LATENCY_TRANSITION	10
37 #define PSS_LATENCY_BUSMASTER	10
38 
39 #ifndef __ASSEMBLY__
40 /* Track power state from reset to log events */
41 struct __packed chipset_power_state {
42 	u16 pm1_sts;
43 	u16 pm1_en;
44 	u32 pm1_cnt;
45 	u32 gpe0_sts[GPE0_REG_MAX];
46 	u32 gpe0_en[GPE0_REG_MAX];
47 	u16 tco1_sts;
48 	u16 tco2_sts;
49 	u32 prsts;
50 	u32 gen_pmcon1;
51 	u32 gen_pmcon2;
52 	u32 gen_pmcon3;
53 	u32 prev_sleep_state;
54 };
55 #endif /* !__ASSEMBLY__ */
56 
57 #endif
58