]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
x86: apl: Add power-management definitions
authorSimon Glass <sjg@chromium.org>
Tue, 22 Sep 2020 18:45:06 +0000 (12:45 -0600)
committerBin Meng <bmeng.cn@gmail.com>
Fri, 25 Sep 2020 03:27:16 +0000 (11:27 +0800)
Add SCI and power-state definitions required by ACPI tables. Fix the
license to match the original source file.

Als update the guard on acpi_pmc.h to avoid an error when buiding ASL.

Signed-off-by: Simon Glass <sjg@chromium.org>
arch/x86/include/asm/arch-apollolake/pm.h
include/power/acpi_pmc.h

index 6718290c4fec0c0920768b6fe765a2b2051c421b..9a8d971e91085da97ab364f8073e0a56c3b9d62f 100644 (file)
@@ -1,12 +1,15 @@
-/* SPDX-License-Identifier: GPL-2.0 */
+/* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * Copyright (C) 2015-2016 Intel Corp.
  * (Written by Lance Zhao <lijian.zhao@intel.com> for Intel Corp.)
+ * Copyright 2019 Google LLC
  */
 
 #ifndef _ASM_ARCH_PM_H
 #define _ASM_ARCH_PM_H
 
+#include <power/acpi_pmc.h>
+
 #define PMC_GPE_SW_31_0        0
 #define PMC_GPE_SW_63_32       1
 #define PMC_GPE_NW_31_0        3
 #define PMC_GPE_N_63_32        7
 #define PMC_GPE_W_31_0         9
 
+#define IRQ_REG                        0x106c
+#define SCI_IRQ_SHIFT          24
+#define SCI_IRQ_MASK           (0xff << SCI_IRQ_SHIFT)
+#define SCIS_IRQ9              9
+#define SCIS_IRQ10             10
+#define SCIS_IRQ11             11
+#define SCIS_IRQ20             20
+#define SCIS_IRQ21             21
+#define SCIS_IRQ22             22
+#define SCIS_IRQ23             23
+
+/* P-state configuration */
+#define PSS_MAX_ENTRIES                8
+#define PSS_RATIO_STEP         2
+#define PSS_LATENCY_TRANSITION 10
+#define PSS_LATENCY_BUSMASTER  10
+
+#ifndef __ASSEMBLY__
+/* Track power state from reset to log events */
+struct __packed chipset_power_state {
+       u16 pm1_sts;
+       u16 pm1_en;
+       u32 pm1_cnt;
+       u32 gpe0_sts[GPE0_REG_MAX];
+       u32 gpe0_en[GPE0_REG_MAX];
+       u16 tco1_sts;
+       u16 tco2_sts;
+       u32 prsts;
+       u32 gen_pmcon1;
+       u32 gen_pmcon2;
+       u32 gen_pmcon3;
+       u32 prev_sleep_state;
+};
+#endif /* !__ASSEMBLY__ */
+
 #endif
index 5fbf7451369e4eec4afe56641411f44430688c88..222288b71a41f29925c8e99693a97ca759cb165e 100644 (file)
@@ -6,7 +6,7 @@
 #ifndef __ACPI_PMC_H
 #define __ACPI_PMC_H
 
-#ifndef __ACPI__
+#ifndef __ASSEMBLY__
 
 enum {
        GPE0_REG_MAX    = 4,
@@ -194,6 +194,6 @@ void pmc_dump_info(struct udevice *dev);
  */
 int pmc_gpe_init(struct udevice *dev);
 
-#endif /* !__ACPI__ */
+#endif /* !__ASSEMBLY__ */
 
 #endif