Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755539AbdDFQKn (ORCPT ); Thu, 6 Apr 2017 12:10:43 -0400 Received: from mail-qt0-f177.google.com ([209.85.216.177]:35553 "EHLO mail-qt0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751251AbdDFQKk (ORCPT ); Thu, 6 Apr 2017 12:10:40 -0400 MIME-Version: 1.0 In-Reply-To: <1491485752-28030-1-git-send-email-ldewangan@nvidia.com> References: <1491485752-28030-1-git-send-email-ldewangan@nvidia.com> From: Andy Shevchenko Date: Thu, 6 Apr 2017 19:10:38 +0300 Message-ID: Subject: Re: [PATCH 1/1] gpio: core: Decouple open drain/source flag with active low/high To: Laxman Dewangan Cc: Linus Walleij , Alexandre Courbot , Rob Herring , Mark Rutland , Frank Rowand , "linux-gpio@vger.kernel.org" , "linux-kernel@vger.kernel.org" , devicetree Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1222 Lines: 33 On Thu, Apr 6, 2017 at 4:35 PM, Laxman Dewangan wrote: > Currently, the GPIO interface is said to Open Drain if it is Single > Ended and active LOW. Similarly, it is said as Open Source if it is > Single Ended and active HIGH. > > The active HIGH/LOW is used in the interface for setting the pin > state to HIGH or LOW when enabling/disabling the interface. > > In Open Drain interface, pin is set to HIGH by putting pin in > high impedance and LOW by driving to the LOW. > > In Open Source interface, pin is set to HIGH by driving pin to > HIGH and set to LOW by putting pin in high impedance. > > With above, the Open Drain/Source is unrelated to the active LOW/HIGH > in interface. There is interface where the enable/disable of interface > is ether active LOW or HIGH but it is Open Drain type. > > Hence decouple the Open Drain with Single Ended + Active LOW and > Open Source with Single Ended + Active HIGH. > > Adding different flag for the Open Drain/Open Source which is valid > only when Single ended flag is enabled. > if (single_ended) { > - if (active_low) > + if (open_drain) This breaks ACPI case, right? -- With Best Regards, Andy Shevchenko