Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755262AbdCWTqa (ORCPT ); Thu, 23 Mar 2017 15:46:30 -0400 Received: from mga14.intel.com ([192.55.52.115]:26508 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751365AbdCWTqZ (ORCPT ); Thu, 23 Mar 2017 15:46:25 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,211,1486454400"; d="scan'208";a="239672807" From: Andy Shevchenko To: Linus Walleij , Alexandre Courbot , linux-gpio@vger.kernel.org, Dmitry Torokhov , Hans de Goede , linux-kernel@vger.kernel.org, Mika Westerberg , Jarkko Nikula , linux-acpi@vger.kernel.org Cc: Andy Shevchenko Subject: [PATCH v1 0/8] gpio: acpi: Make it working Date: Thu, 23 Mar 2017 21:46:10 +0200 Message-Id: <20170323194618.26548-1-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.11.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1654 Lines: 38 Currently GPIO ACPI library provides an API to get a GPIO resources (IO or interrupt) from ACPI tables for the individual drivers. This library has few flaws which makes some devices not working: - the library allows to abuse ACPI by using a _CRS fallback mechanism - the library neglects flags of the resource In this series: - the _CRS fallback is forbidden - the pin configuration follows what firmware wants to - the documentation is updated in order to clarify corner cases After this series it's possible to use GPIO pins for input (interrupt) which were configured as output by BIOS by some reason. It's a crucial functionality for IoT open connected boards where user may choose any of available pin for almost any of available function, including GPIO input (interrupt). Current bad behaviour was first reported by Jarkko Nikula few months ago. Andy Shevchenko (8): gpiolib: Export gpiod_configure_flags() to internal users gpio: acpi: Align acpi_find_gpio() with DT version gpio: acpi: Do sanity check for GpioInt in acpi_find_gpio() gpio: acpi: Even more tighten up ACPI GPIO lookups gpio: acpi: Synchronize acpi_find_gpio() and acpi_gpio_count() gpio: acpi: Explain how to get GPIO descriptors in ACPI case gpio: acpi: Factor out acpi_gpio_to_gpiod_flags() helper gpio: acpi: Override GPIO initialization flags Documentation/acpi/gpio-properties.txt | 60 ++++++++++++ drivers/gpio/gpiolib-acpi.c | 162 +++++++++++++++++++-------------- drivers/gpio/gpiolib.c | 10 +- drivers/gpio/gpiolib.h | 17 +++- 4 files changed, 176 insertions(+), 73 deletions(-) -- 2.11.0