Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp6901538yba; Wed, 1 May 2019 23:56:35 -0700 (PDT) X-Google-Smtp-Source: APXvYqw7mBdeGyMAz67baSaEoyjQ5mBRjSg9bKru2uOMe5u6fMA+u86G9SNYoXKSjvH77WiSg0Br X-Received: by 2002:a62:5915:: with SMTP id n21mr2378164pfb.180.1556780195817; Wed, 01 May 2019 23:56:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556780195; cv=none; d=google.com; s=arc-20160816; b=KFsO1bBsbSLShdWgOrta4gWv9+z7PCemCyg4npfHSB4j7Eq8djC0R5IkjIUkPBEGHD A1es2seGMKhA0A4EhuxP6L1O05EG52XSzXE73Y6QMxwXEg9ouTTgAXIc23YnJLyjgiog OPkC6wTGZJBiITBOvSi2DeY6gA/YtbjTBS7bXQfngvmCknpspnd2IR5++Sm3q4YdHREb Qgh5SeFv49waGIXDYaZq8tReQt68stjD6lR2GAEoM/dbg6rEumKNKG/h4mueby8zMIfO tyd2HrGCJK0apz8FAS3AUJTrV+2BgdDADk+b7Sc+q3XgnC7KRXr6BFbB4YFTNvZ7L2L4 tZtQ== 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 :organization:references:in-reply-to:message-id:subject:cc:to:from :date; bh=Z8tE1bljxFutMRhCl6bBB7OpU4bE8r1mi/fZ24Ll+q8=; b=NqN93tU77dHonY/y5bwo0kgtVRMur+x3xXFnTTCDTjEhavkgnAs0Zw6YAXqAuqCAoE MFftQOIhPYoEXRZq0T/q66wh0i010D8OvCyLtbJqnzKkgTLmG3+AnTUvqtaOMmJQPNgP ySeiKx9KPq/YDKsvnHhoadGbUIq8Q4t+6kSnRl7ZStQgqhV6t9ujV+UglsvNjex5/SSq 8rG+SeuV9qabhAHELNRiDuQuWJQfI85Mo1wOg+QEw4PPw37/D907BByyA+cIpR4Dlrj2 aY3Aka7pFIDCvwwhIbberToo6EdUAGax9cw9ozT0R+dVT85HUSkS+OA7Nm60UKjiCsil g8OA== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o15si21082622pgb.393.2019.05.01.23.56.18; Wed, 01 May 2019 23:56:35 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726265AbfEBGzY convert rfc822-to-8bit (ORCPT + 99 others); Thu, 2 May 2019 02:55:24 -0400 Received: from bhuna.collabora.co.uk ([46.235.227.227]:38680 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725772AbfEBGzY (ORCPT ); Thu, 2 May 2019 02:55:24 -0400 Received: from localhost (unknown [IPv6:2a01:e0a:2c:6930:5cf4:84a1:2763:fe0d]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: bbrezillon) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 544E2261282; Thu, 2 May 2019 07:55:21 +0100 (BST) Date: Thu, 2 May 2019 08:55:18 +0200 From: Boris Brezillon To: Tomasz Figa Cc: Rob Herring , =?UTF-8?B?UGF3ZcWC?= Chmiel , Kyungmin Park , bbrezillon@kernel.org, miquel.raynal@bootlin.com, richard@nod.at, David Woodhouse , computersforpeace@gmail.com, marek.vasut@gmail.com, Mark Rutland , linux-mtd@lists.infradead.org, linux-kernel , devicetree Subject: Re: [PATCH 4/5] dt-binding: mtd: onenand/samsung: Add device tree support Message-ID: <20190502085518.5d248167@collabora.com> In-Reply-To: References: <20190426164224.11327-1-pawel.mikolaj.chmiel@gmail.com> <20190426164224.11327-5-pawel.mikolaj.chmiel@gmail.com> <20190502015408.GA11612@bogus> <20190502083632.0ec0fb4e@collabora.com> Organization: Collabora X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 2 May 2019 15:42:59 +0900 Tomasz Figa wrote: > 2019年5月2日(木) 15:36 Boris Brezillon : > > > > Hi Tomasz, > > > > On Thu, 2 May 2019 15:23:33 +0900 > > Tomasz Figa wrote: > > > > > 2019年5月2日(木) 10:54 Rob Herring : > > > > > > > > On Fri, Apr 26, 2019 at 06:42:23PM +0200, Paweł Chmiel wrote: > > > > > From: Tomasz Figa > > > > > > > > > > This patch adds dt-bindings for Samsung OneNAND driver. > > > > > > > > > > Signed-off-by: Tomasz Figa > > > > > Signed-off-by: Paweł Chmiel > > > > > --- > > > > > .../bindings/mtd/samsung-onenand.txt | 46 +++++++++++++++++++ > > > > > 1 file changed, 46 insertions(+) > > > > > create mode 100644 Documentation/devicetree/bindings/mtd/samsung-onenand.txt > > > > > > > > > > diff --git a/Documentation/devicetree/bindings/mtd/samsung-onenand.txt b/Documentation/devicetree/bindings/mtd/samsung-onenand.txt > > > > > new file mode 100644 > > > > > index 000000000000..341d97cc1513 > > > > > --- /dev/null > > > > > +++ b/Documentation/devicetree/bindings/mtd/samsung-onenand.txt > > > > > @@ -0,0 +1,46 @@ > > > > > +Device tree bindings for Samsung SoC OneNAND controller > > > > > + > > > > > +Required properties: > > > > > + - compatible : value should be either of the following. > > > > > + (a) "samsung,s3c6400-onenand" - for onenand controller compatible with > > > > > + S3C6400 SoC, > > > > > + (b) "samsung,s3c6410-onenand" - for onenand controller compatible with > > > > > + S3C6410 SoC, > > > > > + (c) "samsung,s5pc100-onenand" - for onenand controller compatible with > > > > > + S5PC100 SoC, > > > > > + (d) "samsung,s5pv210-onenand" - for onenand controller compatible with > > > > > + S5PC110/S5PV210 SoCs. > > > > > + > > > > > + - reg : two memory mapped register regions: > > > > > + - first entry: control registers. > > > > > + - second and next entries: memory windows of particular OneNAND chips; > > > > > + for variants a), b) and c) only one is allowed, in case of d) up to > > > > > + two chips can be supported. > > > > > + > > > > > + - interrupt-parent : phandle of interrupt controller to which the OneNAND > > > > > + controller is wired, > > > > > > > > This is implied and can be removed. > > > > > > > > > + - interrupts : specifier of interrupt signal to which the OneNAND controller > > > > > + is wired; should contain just one entry. > > > > > + - clock-names : should contain two entries: > > > > > + - "bus" - bus clock of the controller, > > > > > + - "onenand" - clock supplied to OneNAND memory. > > > > > > > > If the clock just goes to the OneNAND device, then it should be in the > > > > nand device node rather than the controller node. > > > > > > > > > > (Trying hard to recall the details about this hardware.) > > > AFAIR the clock goes to the controller and the controller then feeds > > > it to the memory chips. > > > > > > Also I don't think we should have any nand device nodes here, since > > > the memory itself is only exposed via the controller, which offers > > > various queries to probe the memory at runtime, so there is no need to > > > describe it in DT. > > > > It's probably true, though not providing this controller/device > > separation for NAND controller/devices has proven to be a mistake for > > raw NAND controllers (some props apply to the controllers and others to > > the NAND device, not to mention that some controllers support > > interacting with several chips), so, if that's a new binding, I'd > > recommend having this separation even if it's not strictly required. > > > > Note that OneNAND is a totally different thing than the typical NAND > memory with NAND interface. OneNAND chips have a NOR-like interface, > with internal controller and buffers inside, so technically they can > be even used without any special controller on the SoC, via a generic > parallel host interface and possibly some regular DMA engine for CPU > offload. Yes, I know that. > > The controller design of the SoCs in question further abstracts the > OneNAND's programming interface into a number of high level operations > and attempts to hide the details of the underlying memory, so I don't > see the point of describing the memory in DT here, it would actually > defeat the purpose of this controller. I don't see how having a subnode for the NAND chip would change anything on how the controller interacts with the NAND device. My point is, if we ever need to add props that apply to the device rather than the controller itself, having a single node to represent both elements is not that great.