summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/intel/cannonlake/acpi/gpio.asl20
-rw-r--r--src/soc/intel/cannonlake/acpi/gpio_cnp_h.asl13
-rw-r--r--src/soc/intel/cannonlake/gpio.c2
3 files changed, 11 insertions, 24 deletions
diff --git a/src/soc/intel/cannonlake/acpi/gpio.asl b/src/soc/intel/cannonlake/acpi/gpio.asl
index 8a990b3c61..e05cb68642 100644
--- a/src/soc/intel/cannonlake/acpi/gpio.asl
+++ b/src/soc/intel/cannonlake/acpi/gpio.asl
@@ -28,13 +28,16 @@ Device (GPIO)
{
Memory32Fixed (ReadWrite, 0, 0, COM0)
Memory32Fixed (ReadWrite, 0, 0, COM1)
- Memory32Fixed (ReadWrite, 0, 0, COM2)
- Memory32Fixed (ReadWrite, 0, 0, COM3)
Memory32Fixed (ReadWrite, 0, 0, COM4)
Interrupt (ResourceConsumer, Level, ActiveLow, Shared,,, GIRQ)
{ GPIO_IRQ14 }
})
+ /*
+ * GPIO communities 0, 1, and 4 are exported for the OS.
+ * This is based on the Linux kernel provided community map at
+ * drivers/pinctrl/intel/pinctrl-cannonlake.c:cnllp_communities[]
+ */
Method (_CRS, 0, NotSerialized)
{
/* GPIO Community 0 */
@@ -49,19 +52,6 @@ Device (GPIO)
Store (^^PCRB (PID_GPIOCOM1), BAS1)
Store (GPIO_BASE_SIZE, LEN1)
- /* GPIO Community 2 */
- CreateDWordField (^RBUF, ^COM2._BAS, BAS2)
- CreateDWordField (^RBUF, ^COM2._LEN, LEN2)
- Store (^^PCRB (PID_GPIOCOM2), BAS2)
- Store (GPIO_BASE_SIZE, LEN2)
-
- /* GPIO Community 3 */
- CreateDWordField (^RBUF, ^COM3._BAS, BAS3)
- CreateDWordField (^RBUF, ^COM3._LEN, LEN3)
- Store (^^PCRB (PID_GPIOCOM3), BAS3)
- Store (GPIO_BASE_SIZE, LEN3)
-
-
/* GPIO Community 4 */
CreateDWordField (^RBUF, ^COM4._BAS, BAS4)
CreateDWordField (^RBUF, ^COM4._LEN, LEN4)
diff --git a/src/soc/intel/cannonlake/acpi/gpio_cnp_h.asl b/src/soc/intel/cannonlake/acpi/gpio_cnp_h.asl
index 6e6eccf361..e872b09dd0 100644
--- a/src/soc/intel/cannonlake/acpi/gpio_cnp_h.asl
+++ b/src/soc/intel/cannonlake/acpi/gpio_cnp_h.asl
@@ -27,13 +27,17 @@ Device (GPIO)
{
Memory32Fixed (ReadWrite, 0, 0, COM0)
Memory32Fixed (ReadWrite, 0, 0, COM1)
- Memory32Fixed (ReadWrite, 0, 0, COM2)
Memory32Fixed (ReadWrite, 0, 0, COM3)
Memory32Fixed (ReadWrite, 0, 0, COM4)
Interrupt (ResourceConsumer, Level, ActiveLow, Shared,,, GIRQ)
{ GPIO_IRQ14 }
})
+ /*
+ * GPIO communities 0, 1, 3, and 4 are exported for the OS.
+ * This is based on the Linux kernel provided community map at
+ * drivers/pinctrl/intel/pinctrl-cannonlake.c:cnhl_communities[]
+ */
Method (_CRS, 0, NotSerialized)
{
/* GPIO Community 0 */
@@ -48,19 +52,12 @@ Device (GPIO)
Store (^^PCRB (PID_GPIOCOM1), BAS1)
Store (GPIO_BASE_SIZE, LEN1)
- /* GPIO Community 2 */
- CreateDWordField (^RBUF, ^COM2._BAS, BAS2)
- CreateDWordField (^RBUF, ^COM2._LEN, LEN2)
- Store (^^PCRB (PID_GPIOCOM2), BAS2)
- Store (GPIO_BASE_SIZE, LEN2)
-
/* GPIO Community 3 */
CreateDWordField (^RBUF, ^COM3._BAS, BAS3)
CreateDWordField (^RBUF, ^COM3._LEN, LEN3)
Store (^^PCRB (PID_GPIOCOM3), BAS3)
Store (GPIO_BASE_SIZE, LEN3)
-
/* GPIO Community 4 */
CreateDWordField (^RBUF, ^COM4._BAS, BAS4)
CreateDWordField (^RBUF, ^COM4._LEN, LEN4)
diff --git a/src/soc/intel/cannonlake/gpio.c b/src/soc/intel/cannonlake/gpio.c
index 0befba0b02..2705bcf144 100644
--- a/src/soc/intel/cannonlake/gpio.c
+++ b/src/soc/intel/cannonlake/gpio.c
@@ -43,7 +43,7 @@ static const struct pad_group cnl_community1_groups[] = {
INTEL_GPP(GPP_D0, GPP_D0, GPIO_RSVD_12), /* GPP_D */
INTEL_GPP(GPP_D0, GPP_F0, GPP_F23), /* GPP_F */
INTEL_GPP(GPP_D0, GPP_H0, GPP_H23), /* GPP_H */
- INTEL_GPP(GPP_D0, GPIO_RSVD_12, GPIO_RSVD_52), /* VGPIO */
+ INTEL_GPP(GPP_D0, GPIO_RSVD_13, GPIO_RSVD_52), /* VGPIO */
};
static const struct pad_group cnl_community2_groups[] = {