From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752833AbbC3JxG (ORCPT ); Mon, 30 Mar 2015 05:53:06 -0400 Received: from mga14.intel.com ([192.55.52.115]:24894 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752757AbbC3JxE (ORCPT ); Mon, 30 Mar 2015 05:53:04 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.11,493,1422950400"; d="scan'208";a="700033905" Date: Mon, 30 Mar 2015 12:52:54 +0300 From: Mika Westerberg To: Linus Walleij Cc: Octavian Purdila , Lars-Peter Clausen , Robert Dolca , Robert Dolca , "linux-iio@vger.kernel.org" , Jonathan Cameron , "linux-kernel@vger.kernel.org" , Hartmut Knaack , Peter Meerwald , Denis CIOCCA Subject: Re: [PATCH] IIO: Adds ACPI support for ST gyroscopes Message-ID: <20150330095254.GB1524@lahna.fi.intel.com> References: <20150326101616.GD1878@lahna.fi.intel.com> <20150326140430.GM1878@lahna.fi.intel.com> <20150326144753.GO1878@lahna.fi.intel.com> <20150327100627.GW1878@lahna.fi.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 27, 2015 at 11:36:25AM +0100, Linus Walleij wrote: > On Fri, Mar 27, 2015 at 11:06 AM, Mika Westerberg > wrote: > > On Thu, Mar 26, 2015 at 06:28:19PM +0200, Octavian Purdila wrote: > > >> For the sleep case I think the GPIO controller needs to do the pin > >> enable and set input direction operation in it's irq_bus_sync_unlock. > > > > I wonder how DT handles all this? Is it the boot firmware that sets up > > the pins accordingly or is there something we are missing? > > DT systems mostly do not have firmware for power usecases, they > handle it all using pin control. I would more say that is a feature of > all-SW systems without power-firmware ideas, without ACPI and > without PSCI (well PSCI systems do not care about much more > than CPU power down in firmware anyway...) OK, thanks. In case of ACPI (where firmware does lot more) it is supposed to configure pins based on what is connected, if the firmware knows that. Due to bugs in the boot firmware that obviously does not happen in all cases (like this one). If we want to support requesting IRQ directly through irqchip interface on ACPI systems there needs to be some way the GPIO/pinctrl core can use to turn the pin as input, GPIO mode. Octavian's patch does that but not sure if it is good idea for non-ACPI systems as they already work. We could also do the same in GPIO/irqchip drivers but there is no guarantee for the caller that it is done. IMHO safest option is to explictly request the GPIO, turn it input and then convert the GPIO to interrupt. That way we know the pin is configured just like we expect.