From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web12.9378.1589531561865831571 for ; Fri, 15 May 2020 01:32:42 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: ard.biesheuvel@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 717B02F; Fri, 15 May 2020 01:32:40 -0700 (PDT) Received: from e123331-lin.nice.arm.com (unknown [10.37.8.255]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 4E7DB3F68F; Fri, 15 May 2020 01:32:39 -0700 (PDT) From: "Ard Biesheuvel" To: devel@edk2.groups.io Cc: leif@nuviainc.com, andrey.warkentin@gmail.com, Ard Biesheuvel Subject: [PATCH edk2-platforms 1/1] Silicon/Socionext/SynQuacer: use Generic Event Device for power button Date: Fri, 15 May 2020 10:32:35 +0200 Message-Id: <20200515083235.13415-1-ard.biesheuvel@arm.com> X-Mailer: git-send-email 2.17.1 Drop the description of the interrupt handling part of the GPIO controller, and use a ACPI0013 Generic Event device instead to handle the power button event. This way, an OS can handle these events without the need for a SoC specific driver. Signed-off-by: Ard Biesheuvel --- Silicon/Socionext/SynQuacer/AcpiTables/Dsdt.asl | 52 ++++++++++++-------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/Silicon/Socionext/SynQuacer/AcpiTables/Dsdt.asl b/Silicon/Socionext/SynQuacer/AcpiTables/Dsdt.asl index f6ff3988aa91..3cfd025fbc16 100644 --- a/Silicon/Socionext/SynQuacer/AcpiTables/Dsdt.asl +++ b/Silicon/Socionext/SynQuacer/AcpiTables/Dsdt.asl @@ -196,18 +196,40 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 1, "SNI", "SYNQUACR", }) } - Device (EXIU) { - Name (_HID, "SCX0008") + Device (GED0) { + Name (_HID, "ACPI0013") Name (_UID, Zero) Name (_CRS, ResourceTemplate () { - Memory32Fixed (ReadWrite, SYNQUACER_EXIU_BASE, SYNQUACER_EXIU_SIZE) - }) - Name (_DSD, Package () { - ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), - Package () { - Package () { "socionext,spi-base", 112 }, - } + Interrupt (ResourceConsumer, Edge, ActiveHigh, ExclusiveAndWake) { 152 } }) + OperationRegion (EXIU, SystemMemory, SYNQUACER_EXIU_BASE, 0x20) + Field (EXIU, DWordAcc, NoLock, Preserve) + { + MASK, 32, + SRCS, 32, + REQS, 32, + RAWR, 32, + REQC, 32, + LEVL, 32, + EDGC, 32, + SWIR, 32, + } + + Method (_INI) { + REQC = 0xffffffff + MASK = 0xffffffff + + /* enable the power button on line 8 as edge active low */ + LEVL &= ~0x100 + EDGC |= 0x100 + REQC = 0x100 + MASK = 0xfffffeff + } + + Method (_EVT) { + REQC = 0x100 + Notify (\_SB.PWRB, 0x80) + } } Device (GPIO) { @@ -215,9 +237,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 1, "SNI", "SYNQUACR", Name (_UID, Zero) Name (_CRS, ResourceTemplate () { Memory32Fixed (ReadWrite, SYNQUACER_GPIO_BASE, SYNQUACER_GPIO_SIZE) - Interrupt (ResourceConsumer, Edge, ActiveLow, ExclusiveAndWake, 0, "\\_SB.EXIU") { - 8, - } }) Name (_DSD, Package () { ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), @@ -237,15 +256,6 @@ DefinitionBlock ("DsdtTable.aml", "DSDT", 1, "SNI", "SYNQUACR", } } }) - Name (_AEI, ResourceTemplate () { - GpioInt (Edge, ActiveLow, ExclusiveAndWake, PullDefault, 0, "\\_SB.GPIO") - { - 8 - } - }) - Method (_E08) { - Notify (\_SB.PWRB, 0x80) - } } Device (PWRB) { -- 2.17.1