summaryrefslogtreecommitdiff
path: root/src/soc/intel/cannonlake
diff options
context:
space:
mode:
authorMaulik V Vaghela <maulik.v.vaghela@intel.com>2022-05-06 10:27:50 +0530
committerWerner Zeh <werner.zeh@siemens.com>2022-05-16 04:57:45 +0000
commitafe840957cc3e5df47e7a91815fac5ae95af52e1 (patch)
tree4fe94dd4bd986550395c6ccf8a7c9c6de90949f5 /src/soc/intel/cannonlake
parent37ffdf3d5ccf6601b68811ff233bb377d4417838 (diff)
soc/inte/*/gpio; Add GPE_EN and GPE_STS register definition
coreboot needs to set GPE_EN bit for the GPIOs which are wake capable from s0ix/sleep. Due to GPIO locking mechanism, coreboot/OS will not be able to write GPE_EN register post GPIO has been locked. This patch adds support in SoC code to provide correct offset for GPE_EN and GPE_STS registers to the common code. Plan is to use this offsets to set GPE_EN bits before GPIO locking in coreboot which will be part of subsequent CL. BUG=b:222375516 BRANCH=firmware-brya-14505.B TEST=Check if code compiles for Brya and correct offset values are printed. Change-Id: I6b813b30b8b360f8eccbf539b57387310e380560 Signed-off-by: Maulik V Vaghela <maulik.v.vaghela@intel.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/64088 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Frank Wu <frank_wu@compal.corp-partner.google.com> Reviewed-by: Subrata Banik <subratabanik@google.com> Reviewed-by: Eric Lai <eric_lai@quanta.corp-partner.google.com>
Diffstat (limited to 'src/soc/intel/cannonlake')
-rw-r--r--src/soc/intel/cannonlake/gpio.c10
-rw-r--r--src/soc/intel/cannonlake/include/soc/gpio_defs.h2
2 files changed, 12 insertions, 0 deletions
diff --git a/src/soc/intel/cannonlake/gpio.c b/src/soc/intel/cannonlake/gpio.c
index 90efacc3f3..0e8c4f1bf5 100644
--- a/src/soc/intel/cannonlake/gpio.c
+++ b/src/soc/intel/cannonlake/gpio.c
@@ -74,6 +74,8 @@ static const struct pad_community cnl_communities[TOTAL_GPIO_COMM] = {
.host_own_reg_0 = HOSTSW_OWN_REG_0,
.gpi_int_sts_reg_0 = GPI_INT_STS_0,
.gpi_int_en_reg_0 = GPI_INT_EN_0,
+ .gpi_gpe_sts_reg_0 = GPI_GPE_STS_0,
+ .gpi_gpe_en_reg_0 = GPI_GPE_EN_0,
.gpi_smi_sts_reg_0 = GPI_SMI_STS_0,
.gpi_smi_en_reg_0 = GPI_SMI_EN_0,
.gpi_nmi_sts_reg_0 = GPI_NMI_STS_0,
@@ -96,6 +98,8 @@ static const struct pad_community cnl_communities[TOTAL_GPIO_COMM] = {
.host_own_reg_0 = HOSTSW_OWN_REG_0,
.gpi_int_sts_reg_0 = GPI_INT_STS_0,
.gpi_int_en_reg_0 = GPI_INT_EN_0,
+ .gpi_gpe_sts_reg_0 = GPI_GPE_STS_0,
+ .gpi_gpe_en_reg_0 = GPI_GPE_EN_0,
.gpi_smi_sts_reg_0 = GPI_SMI_STS_0,
.gpi_smi_en_reg_0 = GPI_SMI_EN_0,
.gpi_nmi_sts_reg_0 = GPI_NMI_STS_0,
@@ -118,6 +122,8 @@ static const struct pad_community cnl_communities[TOTAL_GPIO_COMM] = {
.host_own_reg_0 = HOSTSW_OWN_REG_0,
.gpi_int_sts_reg_0 = GPI_INT_STS_0,
.gpi_int_en_reg_0 = GPI_INT_EN_0,
+ .gpi_gpe_sts_reg_0 = GPI_GPE_STS_0,
+ .gpi_gpe_en_reg_0 = GPI_GPE_EN_0,
.gpi_smi_sts_reg_0 = GPI_SMI_STS_0,
.gpi_smi_en_reg_0 = GPI_SMI_EN_0,
.gpi_nmi_sts_reg_0 = GPI_NMI_STS_0,
@@ -140,6 +146,8 @@ static const struct pad_community cnl_communities[TOTAL_GPIO_COMM] = {
.host_own_reg_0 = HOSTSW_OWN_REG_0,
.gpi_int_sts_reg_0 = GPI_INT_STS_0,
.gpi_int_en_reg_0 = GPI_INT_EN_0,
+ .gpi_gpe_sts_reg_0 = GPI_GPE_STS_0,
+ .gpi_gpe_en_reg_0 = GPI_GPE_EN_0,
.gpi_smi_sts_reg_0 = GPI_SMI_STS_0,
.gpi_smi_en_reg_0 = GPI_SMI_EN_0,
.gpi_nmi_sts_reg_0 = GPI_NMI_STS_0,
@@ -162,6 +170,8 @@ static const struct pad_community cnl_communities[TOTAL_GPIO_COMM] = {
.host_own_reg_0 = HOSTSW_OWN_REG_0,
.gpi_int_sts_reg_0 = GPI_INT_STS_0,
.gpi_int_en_reg_0 = GPI_INT_EN_0,
+ .gpi_gpe_sts_reg_0 = GPI_GPE_STS_0,
+ .gpi_gpe_en_reg_0 = GPI_GPE_EN_0,
.gpi_smi_sts_reg_0 = GPI_SMI_STS_0,
.gpi_smi_en_reg_0 = GPI_SMI_EN_0,
.gpi_nmi_sts_reg_0 = GPI_NMI_STS_0,
diff --git a/src/soc/intel/cannonlake/include/soc/gpio_defs.h b/src/soc/intel/cannonlake/include/soc/gpio_defs.h
index c96a67d69d..2ee078d54a 100644
--- a/src/soc/intel/cannonlake/include/soc/gpio_defs.h
+++ b/src/soc/intel/cannonlake/include/soc/gpio_defs.h
@@ -234,6 +234,8 @@
#define HOSTSW_OWN_REG_0 0xb0
#define GPI_INT_STS_0 0x100
#define GPI_INT_EN_0 0x120
+#define GPI_GPE_STS_0 0x140
+#define GPI_GPE_EN_0 0x160
#define GPI_SMI_STS_0 0x180
#define GPI_SMI_EN_0 0x1A0
#define GPI_NMI_STS_0 0x1c0