From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Westerberg Subject: Re: [RFC] ACPI: Add GPIO-signaled event simulator. Date: Tue, 12 Aug 2014 13:01:11 +0300 Message-ID: <20140812100111.GV1657@lahna.fi.intel.com> References: <1406217076-17150-1-git-send-email-tomasz.nowicki@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org To: Linus Walleij Cc: Tomasz Nowicki , "Rafael J. Wysocki" , Alexandre Courbot , ACPI Devel Maling List , "linux-kernel@vger.kernel.org" , "linaro-acpi@lists.linaro.org" List-Id: linux-acpi@vger.kernel.org On Fri, Aug 08, 2014 at 02:36:02PM +0200, Linus Walleij wrote: > On Thu, Jul 24, 2014 at 5:51 PM, Tomasz Nowicki > wrote: > > > GPIO signaled events is quite new thing in Linux kernel. > > AFAIK, there are not many board which can take advantage of it. > > However, GPIO events are very useful feature during work on ACPI > > subsystems. > > Overall this seems like a pretty nice debug feature. > > > This commit emulates GPIO h/w behaviour and consists on read/write > > operation to debugfs file. GPIO device instance is still required in DSDT > > table along with _AEI resources and event methods. > > > > Reading from file provides pin to GPIO device map e.g. : > > $ cat /sys/kernel/debug/acpi/gpio_event > > GPIO device name: /__SB.GPI0 > > Available GPIO pin map: > > /__SB.GPI0 <-> pin 0x100 > > > > Based on that, user can trigger method corresponding to device pin number: > > $ echo "/__SB.GPI0 0x100" > /sys/kernel/debug/acpi/gpio_event > > I need input from Rafael and Mika as to whether this is a > good interface. Maybe it would make sense to move this into drivers/gpio/gpiolib-acpi.c and hide it behind some Kconfig entry? Since you already need to have DSDT/SSDT table for this to provide the GPIO device, _AEI and the event methods, I would rather make it so that acpi_gpiochip_request_interrupt() will add debugfs entry for each GPIO it finds in _AEI, like: /sys/kernel/debug/acpi/events//n And you could trigger it by writing '1' or something like that to that file.