From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Wed, 8 Jan 2014 11:34:18 -0700 From: Jason Gunthorpe To: Boris BREZILLON Subject: Re: [RFC PATCH 3/9] of: mtd: add NAND timings retrieval support Message-ID: <20140108183418.GA12358@obsidianresearch.com> References: <1389190924-26226-1-git-send-email-b.brezillon@overkiz.com> <1389190924-26226-4-git-send-email-b.brezillon@overkiz.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1389190924-26226-4-git-send-email-b.brezillon@overkiz.com> Cc: devicetree@vger.kernel.org, Russell King , linux-doc@vger.kernel.org, dev@linux-sunxi.org, linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org, Rob Landley , Grant Likely , Maxime Ripard , David Woodhouse , linux-arm-kernel@lists.infradead.org List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Wed, Jan 08, 2014 at 03:21:58PM +0100, Boris BREZILLON wrote: > +int of_get_nand_timings(struct device_node *np, struct nand_timings *timings) > +{ > + memset(timings, 0, sizeof(*timings)); > + of_property_read_u32(np, "tCLS-min", &timings->tCLS_min); > + of_property_read_u32(np, "tCLH-min", &timings->tCLH_min); > + of_property_read_u32(np, "tCS-min", &timings->tCS_min); [..] A while ago when discussing another controller it was pointed out these values are all auto-probable directly from the NAND via a ONFI defined GET FEATURE @0x01 query, and adding these timings to the DT was NAK'd.. Basically you set the interface to the slowest ONFI timing mode, do the GET FEATURE to the NAND chip and then increase the interface speed to the highest mutually supported ONFI mode. Is there some reason you need to encode this in the DT? Jason From mboxrd@z Thu Jan 1 00:00:00 1970 From: jgunthorpe@obsidianresearch.com (Jason Gunthorpe) Date: Wed, 8 Jan 2014 11:34:18 -0700 Subject: [RFC PATCH 3/9] of: mtd: add NAND timings retrieval support In-Reply-To: <1389190924-26226-4-git-send-email-b.brezillon@overkiz.com> References: <1389190924-26226-1-git-send-email-b.brezillon@overkiz.com> <1389190924-26226-4-git-send-email-b.brezillon@overkiz.com> Message-ID: <20140108183418.GA12358@obsidianresearch.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Wed, Jan 08, 2014 at 03:21:58PM +0100, Boris BREZILLON wrote: > +int of_get_nand_timings(struct device_node *np, struct nand_timings *timings) > +{ > + memset(timings, 0, sizeof(*timings)); > + of_property_read_u32(np, "tCLS-min", &timings->tCLS_min); > + of_property_read_u32(np, "tCLH-min", &timings->tCLH_min); > + of_property_read_u32(np, "tCS-min", &timings->tCS_min); [..] A while ago when discussing another controller it was pointed out these values are all auto-probable directly from the NAND via a ONFI defined GET FEATURE @0x01 query, and adding these timings to the DT was NAK'd.. Basically you set the interface to the slowest ONFI timing mode, do the GET FEATURE to the NAND chip and then increase the interface speed to the highest mutually supported ONFI mode. Is there some reason you need to encode this in the DT? Jason From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Gunthorpe Subject: Re: [RFC PATCH 3/9] of: mtd: add NAND timings retrieval support Date: Wed, 8 Jan 2014 11:34:18 -0700 Message-ID: <20140108183418.GA12358@obsidianresearch.com> References: <1389190924-26226-1-git-send-email-b.brezillon@overkiz.com> <1389190924-26226-4-git-send-email-b.brezillon@overkiz.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <1389190924-26226-4-git-send-email-b.brezillon@overkiz.com> Sender: linux-doc-owner@vger.kernel.org To: Boris BREZILLON Cc: Maxime Ripard , Rob Landley , Russell King , David Woodhouse , Grant Likely , devicetree@vger.kernel.org, linux-doc@vger.kernel.org, dev@linux-sunxi.org, linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org, linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org On Wed, Jan 08, 2014 at 03:21:58PM +0100, Boris BREZILLON wrote: > +int of_get_nand_timings(struct device_node *np, struct nand_timings *timings) > +{ > + memset(timings, 0, sizeof(*timings)); > + of_property_read_u32(np, "tCLS-min", &timings->tCLS_min); > + of_property_read_u32(np, "tCLH-min", &timings->tCLH_min); > + of_property_read_u32(np, "tCS-min", &timings->tCS_min); [..] A while ago when discussing another controller it was pointed out these values are all auto-probable directly from the NAND via a ONFI defined GET FEATURE @0x01 query, and adding these timings to the DT was NAK'd.. Basically you set the interface to the slowest ONFI timing mode, do the GET FEATURE to the NAND chip and then increase the interface speed to the highest mutually supported ONFI mode. Is there some reason you need to encode this in the DT? Jason