Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1424549AbdD1Hqz (ORCPT ); Fri, 28 Apr 2017 03:46:55 -0400 Received: from mail-it0-f48.google.com ([209.85.214.48]:34838 "EHLO mail-it0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1164840AbdD1Hqv (ORCPT ); Fri, 28 Apr 2017 03:46:51 -0400 MIME-Version: 1.0 In-Reply-To: <1493131461.4826.66.camel@rf-debian.wolfsonmicro.main> References: <1493050124-5970-1-git-send-email-rf@opensource.wolfsonmicro.com> <1493050124-5970-13-git-send-email-rf@opensource.wolfsonmicro.com> <1493131461.4826.66.camel@rf-debian.wolfsonmicro.main> From: Linus Walleij Date: Fri, 28 Apr 2017 09:46:49 +0200 Message-ID: Subject: Re: [PATCH v2 12/18] gpio: madera: Support Cirrus Logic Madera class codecs To: Richard Fitzgerald Cc: Lee Jones , Mark Brown , Alexandre Courbot , Rob Herring , Thomas Gleixner , Jason Cooper , "alsa-devel@alsa-project.org" , "open list:WOLFSON MICROELECTRONICS DRIVERS" , "linux-gpio@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" 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: 2335 Lines: 59 On Tue, Apr 25, 2017 at 4:44 PM, Richard Fitzgerald wrote: > On Tue, 2017-04-25 at 16:13 +0200, Linus Walleij wrote: >> On Mon, Apr 24, 2017 at 6:08 PM, Richard Fitzgerald >> wrote: >> >> > This adds support for the GPIOs on Cirrus Logic Madera class codecs. >> > Any pins not used for special functions (see the pinctrl driver) can be >> > used as general single-bit input or output lines. The number of available >> > GPIOs varies between codecs. >> > >> > Signed-off-by: Nariman Poushin >> > Signed-off-by: Richard Fitzgerald >> > Signed-off-by: Charles Keepax >> > --- >> > Changes from V1: >> > - dt bindings moved to a separate patch >> > - dependent on pinctrl driver instead of parent MFD >> > - added get_direction function >> > - added .request / .free / .set_config to work with pinctrl driver >> > - register range with pinctrl driver >> >> Nice, but... >> >> > + ret = gpiochip_add_pin_range(&madera_gpio->gpio_chip, "madera-pinctrl", >> > + 0, 0, madera_gpio->gpio_chip.ngpio); >> > + if (ret) { >> > + dev_warn(&pdev->dev, "Failed to add pin range (%d)\n", ret); >> > + return ret; >> > + } >> >> This is all fine, but we have generic code for adding ranges from >> the device tree, see >> Documentation/devicetree/bindings/gpio/gpio.txt >> > > The range of gpio pins is a fixed property of the chip, and so is the > combination of gpio+pinctrl drivers. Well so is the IRQ number, but we still put that in the device tree. > I think the general principle of the DT maintainers is that DT should be > used for things that the drivers don't already know and can't figure > out. It's a grayzone. People use ranges in the device tree for example when there are several instances of the same GPIO block with different ranges into a single pin controller and then it makes sense. But in this case you have your separate chip with one instance so it doesn't make sense, keep it like this. Also it is necessary to proble from boardfiles as you explained in the pinctrl patch. Good job, it's a nice driver. Also the pinctrl driver is very nice. Yours, Linus Walleij