Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp3177120ybi; Mon, 17 Jun 2019 18:24:49 -0700 (PDT) X-Google-Smtp-Source: APXvYqzEw+yl0h7b5rbnFiArsi7vNavjMVR3+SPPQhuFEsMvp7ZIMl0UE6+DrChBEJLZ2qPFmmeP X-Received: by 2002:a17:90a:bf08:: with SMTP id c8mr2230060pjs.75.1560821089250; Mon, 17 Jun 2019 18:24:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560821089; cv=none; d=google.com; s=arc-20160816; b=aOAnIemdhHGilPL+ygnDBmRYSUXotHYBngBs6cYV3NsfRJp3/+1IawyBX/wTaepeSi PYvEdNnAWX3WZHw8pki7gb55pF9hPTXEEMLPwiTX/GwOzCIrEzbzQ+Cc4phQMSXysT+I zai4AdthvBV6bu/nnshZG11fBCe6pDOUzH7ObVP6x/gcAFHq2mwpNim9e/go1w3C63ll RpG2/IxBHs1/QvRsSbjdBK4HmRp8E9W7XXW6EKzO8ECtt/VZvVBBPEPr3aHiPoJJejwS Q+/HP4BYkNIqdHaw8M8QzqlAzzUFCHPIF4NIzPdpCy9Tch/xGAxrwZSp4eArMnjiaLBf R8EA== 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:date:from :message-id:mime-version:subject:cc:to:references:in-reply-to; bh=frrnrpGPEyQ9WaLtWFHEaO4cXh4zWQGOurCFlJBRJdY=; b=XetE2m5WrawxPJKQK23mYOWqPQrsw+zH/7DwkgBOw1siC1CVKLL8P89+6cx5HHmtUI 3eHp/yh5h7xjWMKVJ5YkYmjyUOjV6ohQbuqUlAtuIE+/OKXvhpF9hKQhwXzLkEKCQeYy 9btR5xWy8h6RnI6kJtxovn/yfsThGeYF34lBi6Mf0sF9vQj4c1quyjQnlB6TttQ/JOIw rsoUe97eKv7hb65sCz4dtnQcGNiCrlQ2zBITfJJDzyq7JLEfngu5YyMRZ1ITC9pkGoQF XPEdnI8DRgEaQdI/QL2hYgHLHb8gJLksdwJwAKQ6MpSADbHKwVxG5lIjZY7SBsY3qpeQ lv1w== 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 q1si11583044pgp.301.2019.06.17.18.24.33; Mon, 17 Jun 2019 18:24:49 -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 S1726243AbfFRBYX convert rfc822-to-8bit (ORCPT + 99 others); Mon, 17 Jun 2019 21:24:23 -0400 Received: from twhmllg4.macronix.com ([211.75.127.132]:53341 "EHLO TWHMLLG4.macronix.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725829AbfFRBYX (ORCPT ); Mon, 17 Jun 2019 21:24:23 -0400 Received: from twhfmnt1.mxic.com.tw (twhfm1p2.macronix.com [172.17.20.92]) by TWHMLLG4.macronix.com with ESMTP id x5I1OD5R094554; Tue, 18 Jun 2019 09:24:14 +0800 (GMT-8) (envelope-from masonccyang@mxic.com.tw) Received: from MXML06C.mxic.com.tw (mxml06c.macronix.com [172.17.14.55]) by Forcepoint Email with ESMTP id CD86B7F724E890CDD5EA; Tue, 18 Jun 2019 09:24:13 +0800 (CST) In-Reply-To: <20190617143510.4ded5728@xps13> References: <1555320234-15802-1-git-send-email-masonccyang@mxic.com.tw> <1555320234-15802-3-git-send-email-masonccyang@mxic.com.tw> <20190512151820.4f2dd9da@xps13> <20190520142333.390091d5@xps13> <20190527144250.71908bd9@xps13> <20190617143510.4ded5728@xps13> To: "Miquel Raynal" Cc: bbrezillon@kernel.org, broonie@kernel.org, christophe.kerello@st.com, computersforpeace@gmail.com, devicetree@vger.kernel.org, dwmw2@infradead.org, geert@linux-m68k.org, juliensu@mxic.com.tw, lee.jones@linaro.org, liang.yang@amlogic.com, linux-kernel@vger.kernel.org, linux-mtd@lists.infradead.org, linux-spi@vger.kernel.org, marcel.ziswiler@toradex.com, marek.vasut@gmail.com, mark.rutland@arm.com, paul.burton@mips.com, richard@nod.at, robh+dt@kernel.org, stefan@agner.ch, zhengxunli@mxic.com.tw Subject: Re: [PATCH v3 2/4] mtd: rawnand: Add Macronix MX25F0A NAND controller MIME-Version: 1.0 X-KeepSent: 1C1397B4:241DC339-4825841D:000482A2; type=4; name=$KeepSent X-Mailer: Lotus Notes Release 8.5.3FP4 SHF90 June 10, 2013 Message-ID: From: masonccyang@mxic.com.tw Date: Tue, 18 Jun 2019 09:24:14 +0800 X-MIMETrack: Serialize by Router on MXML06C/TAIWAN/MXIC(Release 9.0.1FP10 HF265|July 25, 2018) at 2019/06/18 AM 09:24:13, Serialize complete at 2019/06/18 AM 09:24:13 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 8BIT X-MAIL: TWHMLLG4.macronix.com x5I1OD5R094554 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Miquel, > > > > > > > > > +static void mxic_nand_select_chip(struct nand_chip *chip, int > > > > > > chipnr) > > > > > > > > > > > > > > _select_target() is preferred now > > > > > > > > > > > > Do you mean I implement mxic_nand_select_target() to control #CS ? > > > > > > > > > > > > If so, I need to call mxic_nand_select_target( ) to control #CS ON > > > > > > and then #CS OFF in _exec_op() due to nand_select_target() > > > nand_base,c> > > > > > > is still calling chip->legacy.select_chip ? > > > > > > > > > > You must forget about the ->select_chip() callback. Now it should be > > > > > handled directly from the controller driver. Please have a look at > > the > > > > > commit pointed against the marvell_nand.c driver. > > > > > > > > I have no Marvell NFC datasheet and have one question. > > > > > > > > In marvell_nand.c, there is no xxx_deselect_target() or > > > > something like that doing #CS OFF. > > > > marvell_nfc_select_target() seems always to make one of chip or die > > > > #CS keep low. > > > > > > > > Is it right ? > > > > > > Yes, AFAIR there is no "de-assert" mechanism in this controller. > > > > > > > > > > > How to make all #CS keep high for NAND to enter > > > > low-power standby mode if driver don't use "legacy.select_chip()" ? > > > > > > See commit 02b4a52604a4 ("mtd: rawnand: Make ->select_chip() optional > > > when ->exec_op() is implemented") which states: > > > > > > "When [->select_chip() is] not implemented, the core is assuming > > > the CS line is automatically asserted/deasserted by the driver > > > ->exec_op() implementation." > > > > > > Of course, the above is right only when the controller driver supports > > > the ->exec_op() interface. > > > > Currently, it seems that we will get the incorrect data and error > > operation due to CS in error toggling if CS line is controlled in > > ->exec_op(). > > Most of the chips today are CS-don't-care, which chip are you using? I think CS-don't-care means read-write operation for NAND device to reside on the same memory bus as other Flash or SRAM devices. Other devices on the memory bus can then be accessed while the NAND Flash is busy with internal operations. This capability is very important for designs that require multiple NAND Flash devices on the same bus. > > Is this behavior publicly documented? > CS# pin goes High enter standby mode to reduce power consumption, i.e,. standby mode w/ CS# keep High, standby current: 10 uA (Typ for 3.3V NAND) otherwise, current is more than 1 mA. i.e,. page read current, 25 mA (Typ for 3.3V NAND) > Is this LPM mode always activated? > > > i.e,. > > > > 1) In nand_onfi_detect() to call nand_exec_op() twice by > > nand_read_param_page_op() and annd_read_data_op() > > > > 2) In nand_write_page_xxx to call nand_exec_op() many times by > > nand_prog_page_begin_op(), nand_write_data_op() and > > nand_prog_page_end_op(). > > > > > > Should we consider to add a CS line controller in struct nand_controller > > i.e,. > > > > struct nand_controller { > > struct mutex lock; > > const struct nand_controller_ops *ops; > > + void (*select_chip)(struct nand_chip *chip, int cs); > > }; > > > > to replace legacy.select_chip() ? > > > > No, if really needed, we could add a "macro op done" flag in the nand > operation structure. > Is this "macron op done" flag good for multiple NAND devices on the same bus ? Any other way to control CS# pin? if user application is really care of power consumption, i.e,. loT. > > Thanks, > Miqu?l thanks & best regards, Mason CONFIDENTIALITY NOTE: This e-mail and any attachments may contain confidential information and/or personal data, which is protected by applicable laws. Please be reminded that duplication, disclosure, distribution, or use of this e-mail (and/or its attachments) or any part thereof is prohibited. If you receive this e-mail in error, please notify us immediately and delete this mail as well as its attachment(s) from your system. In addition, please be informed that collection, processing, and/or use of personal data is prohibited unless expressly permitted by personal data protection laws. Thank you for your attention and cooperation. Macronix International Co., Ltd. ===================================================================== ============================================================================ CONFIDENTIALITY NOTE: This e-mail and any attachments may contain confidential information and/or personal data, which is protected by applicable laws. Please be reminded that duplication, disclosure, distribution, or use of this e-mail (and/or its attachments) or any part thereof is prohibited. If you receive this e-mail in error, please notify us immediately and delete this mail as well as its attachment(s) from your system. In addition, please be informed that collection, processing, and/or use of personal data is prohibited unless expressly permitted by personal data protection laws. Thank you for your attention and cooperation. Macronix International Co., Ltd. =====================================================================