Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp237678imm; Wed, 3 Oct 2018 15:15:11 -0700 (PDT) X-Google-Smtp-Source: ACcGV62M2hcGdFlz4tc95lVMZDc+xkgBJ7Yvo7YOT6TSPO8pVs7ZXtXxzezohfV+iA9e9caPs2/L X-Received: by 2002:a63:ff46:: with SMTP id s6-v6mr3086538pgk.241.1538604911369; Wed, 03 Oct 2018 15:15:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538604911; cv=none; d=google.com; s=arc-20160816; b=E+Q5b1JIyETfVlWQYBnF8ZFDYEQk7fjY3KIFO00Sr+wZzrJMmlLFp0SbSQKZzBBHqT 7yxmJJLk0qj6BIItkdpbiJpQFU2pgV9Fj8OuGAK7t8QqruKVtH5otnuqR5l0maoGq253 P0dSaVuItLCeufPZL8Nn36kD+gP+zv4mTTMovEePE1PbXeMrJQJq1xA4O3feyc/A/iga kHv0aZ+RhbLlAWAO91CAtjFbwiim7Ps2WfZuN+DirGtj4vVOHCURT0L26BFu3XSfSAqn I07rt6gBJnoLNdFvvgZCtVl1uFZ24MQPIjdCwQBE/Nv61Eo30iJhRnCxyyuIVNPTrQw6 vAMQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date; bh=CdmelhSG5+tz7xMLeaEmdbodJWbYmugu5zbIL/GjLpQ=; b=CXhYpXE61JLw+LF5hrpB1u76E8mn5hm8SE81WG/fkvUP1RsdxQlbtGuH3kerSBE4ka o9Ml9sQ0TmQ5RMc0V0DDra0IJfGu/MvC1jvyS6ydirYmtuDc55BElr4y/9dqev7HEWUt cCQbSmjj5N6mI0FNwJRkDIVtvbdNIYq8oNjAjdZqqlwVMeyVa0i/pae+qUEAPiqH3ppS jGK9JKU4KMzf5e+c8bvnigR0IO9rPC+WMWGaLZy8lRTaHevx52XIuuDdE31rig5wIwHo /TFcYXCuklIKeuS7owY4bZmsDzhbsyxH79DEjr+D+QOk6rd0t7MFD5hK3HdNBvKS9eYU qZ4g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n9-v6si2356633pgt.267.2018.10.03.15.14.25; Wed, 03 Oct 2018 15:15:11 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727030AbeJDFEf (ORCPT + 99 others); Thu, 4 Oct 2018 01:04:35 -0400 Received: from mail.bootlin.com ([62.4.15.54]:50306 "EHLO mail.bootlin.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725723AbeJDFEf (ORCPT ); Thu, 4 Oct 2018 01:04:35 -0400 Received: by mail.bootlin.com (Postfix, from userid 110) id 85A0C207CC; Thu, 4 Oct 2018 00:14:15 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mail.bootlin.com X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT shortcircuit=ham autolearn=disabled version=3.4.0 Received: from bbrezillon (91-160-177-164.subs.proxad.net [91.160.177.164]) by mail.bootlin.com (Postfix) with ESMTPSA id 43E0E2071E; Thu, 4 Oct 2018 00:14:15 +0200 (CEST) Date: Thu, 4 Oct 2018 00:14:15 +0200 From: Boris Brezillon To: Ricardo Ribalda Delgado Cc: David Woodhouse , Brian Norris , Marek Vasut , Richard Weinberger , Zhouyang Jia , linux-mtd@lists.infradead.org, LKML , devicetree@vger.kernel.org Subject: Re: [PATCH v5 7/8] dt-binding: mtd: Document gpio-addr-flash Message-ID: <20181004001415.224d53fe@bbrezillon> In-Reply-To: References: <20181003193859.23928-1-ricardo.ribalda@gmail.com> <20181003193859.23928-7-ricardo.ribalda@gmail.com> <20181003232702.4c18e725@bbrezillon> X-Mailer: Claws Mail 3.15.0-dirty (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 3 Oct 2018 23:53:27 +0200 Ricardo Ribalda Delgado wrote: > Hi Boris > On Wed, Oct 3, 2018 at 11:27 PM Boris Brezillon > wrote: > > > > On Wed, 3 Oct 2018 21:38:58 +0200 > > Ricardo Ribalda Delgado wrote: > > > > > Add documentation for gpio-addr-flash. This binding allow creating > > > flash devices that are paged using GPIOs. > > > > > > Cc: devicetree@vger.kernel.org > > > Reviewed-by: Rob Herring > > > Signed-off-by: Ricardo Ribalda Delgado > > > --- > > > .../bindings/mtd/gpio-addr-flash.txt | 54 +++++++++++++++++++ > > > 1 file changed, 54 insertions(+) > > > create mode 100644 Documentation/devicetree/bindings/mtd/gpio-addr-flash.txt > > > > > > diff --git a/Documentation/devicetree/bindings/mtd/gpio-addr-flash.txt b/Documentation/devicetree/bindings/mtd/gpio-addr-flash.txt > > > new file mode 100644 > > > index 000000000000..5006a26e1753 > > > --- /dev/null > > > +++ b/Documentation/devicetree/bindings/mtd/gpio-addr-flash.txt > > > @@ -0,0 +1,54 @@ > > > +Memory Mapped flash with some address lines addressed using GPIOs > > > + > > > +Handle the case where a flash device is mostly addressed using physical > > > +line and supplemented by GPIOs. This way you can hook up say a 8MiB flash > > > +to a 2MiB memory range and use the GPIOs to select a particular range. > > > + > > > + - compatible : "cfi-gpio-addr-flash" > > > + - reg : Address range of the mtd chip that is memory mapped, this is, > > > + on the previous example 2MiB. > > > + - bank-width : Width (in bytes) of the bank. Equal to the > > > + device width times the number of interleaved chips. > > > + - gpios: List of GPIO specifiers that will be used to address the MSBs address > > > + lines. The order goes from LSB to MSB. > > > + - probe-type : (optional) "cfi_probe", "jedec_probe". How the mtd chip > > > + is going to be probed. If omitted, assumed to be equal to "cfi_probe". > > > > Looks like other bindings are encoding the probe type in the > > compatible [1][2], and we should probably follow what's been done by > > others. > > If I understood it right, they are special cases of physmap_of_core.c > https://elixir.bootlin.com/linux/v4.18.11/source/drivers/mtd/maps/physmap_of_core.c#L242 > > The driver that handles the compatible is physmap_of_core.c, and afaik > multiple drivers with the same > compatible string is a very bad idea. Yes, I know. > > We can convert the driver to something like Versatile or gemini, but > then we will not support platform devices > > btw, the binding that I am used is used by: > https://elixir.bootlin.com/linux/v4.18.11/source/drivers/mtd/maps/physmap_of_core.c#L91 Actually, the more I think about it the more I realize this should somehow be integrated to the physmap core logic. I mean, there's nothing controller/platform specific in what the gpio-physmap driver does. We could basically add the msb_addr_gpios related fields to map_info, let physmap.c and physmap_of_core.c call devm_gpiod_get_array_optional() and, based on the returned value, call simple_map_init() (when the pointer is NULL) or gpio_addr_map_init() (when the pointer is valid). gpio_addr_map_init() would still be implemented in gpio-addr-flash.c so that we can still enable/disable support for this feature (providing dummy wrappers when it's disabled). By doing that, we also keep a single driver which matches a generic compatible string. We also stay compatible with .c based board files.