Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752723AbcD1XkF (ORCPT ); Thu, 28 Apr 2016 19:40:05 -0400 Received: from mail-wm0-f65.google.com ([74.125.82.65]:36498 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752346AbcD1XkB convert rfc822-to-8bit (ORCPT ); Thu, 28 Apr 2016 19:40:01 -0400 From: Christian Lamparter To: Andy Shevchenko Cc: "linux-gpio@vger.kernel.org" , devicetree , "linux-kernel@vger.kernel.org" , linux-arm Mailing List , =?ISO-8859-1?Q?=C1lvaro_Fern=E1ndez?= Rojas , Kumar Gala , Alexander Shiyan , Ian Campbell , Mark Rutland , Pawel Moll , Rob Herring , Alexandre Courbot , Linus Walleij Subject: Re: [RFC v4 3/8] gpio: generic: add DT support for generic memory-mapped GPIOs Date: Fri, 29 Apr 2016 01:39:55 +0200 Message-ID: <3841493.Kd66QyCgCc@debian64> User-Agent: KMail/4.14.10 (Linux/4.6.0-rc4-wt+; KDE/4.14.14; x86_64; ; ) In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8BIT Content-Type: text/plain; charset="iso-8859-1" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2080 Lines: 56 On Thursday, April 28, 2016 12:58:03 PM Andy Shevchenko wrote: > On Thu, Apr 28, 2016 at 12:05 PM, Christian Lamparter > wrote: > > From: ?lvaro Fern?ndez Rojas > > > > This patch adds support for defining memory-mapped GPIOs > > which provide a compatible interface for the existing > > generic-gpio driver. Thanks for your comments! I've prepared a new series which I'm going to post tomorrow. I've incorporated most of the remarks, but there's something I have to say about: > > +static inline void set_resource_address(struct resource *res, > > + resource_size_t start, > > + resource_size_t len) > > +{ > > + res->start = start; > > + res->end = start + len - 1; > > +} > > It might make sense to put this in the generic (resource related, e.g. > ioport.h) header. There are plenty users of such already and who knows > how many will come. I looked around and found plenty of code in drivers/ alone doing the same song and dance around it: acpi/pci_root.c acpi/resource.c bus/mvebu-mbus.c i2c/busses/i2c-i801.c irqchip/irq-mips-gic.c memory/omap-gpmc.c mfd/janz-cmodio.c mfd/lpc_ich.c mfd/sm501.c mtd/devices/ms02-nv.c nvdimm/namespace_devs.c of/address.c parisc/ccio-dma.c parisc/dino.c parisc/lba_pci.c pci/hotplug/ibmphp_res.c pci/bus.c pci/iov.c pci/setup-res.c pci/setup-bus.c pci/hotplug/ibmphp_res.c pcmcia/rsrc_mgr.c pcmcia/pcmcia_resource.c pnp/manager.c platform/x86/intel_pmc_ipc.c pinctrl/sh-pfc/core.c etc... I think arch/ will have a few more. If anything this will require help from coccinelle and more stuff. For now I'll convert the code to do the same thing as everybody else. And after the "linux,gpio-mmio" has been successfully mainlined I can worry about how to write the perfect set_resource_address or set_resource_range (needs to handle over- and underflows, etc...) and setup the automatic tools to convert the whole tree. So, unless someone else beats me to this, this would be my plan. Regards, Christian