From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.bootlin.com ([62.4.15.54]) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1fVxPu-0001Lf-5c for linux-mtd@lists.infradead.org; Thu, 21 Jun 2018 11:06:20 +0000 Date: Thu, 21 Jun 2018 13:05:54 +0200 From: Boris Brezillon To: Chris Packham Cc: miquel.raynal@bootlin.com, dwmw2@infradead.org, computersforpeace@gmail.com, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, Richard Weinberger , Marek Vasut Subject: Re: [PATCH v4 3/6] mtd: rawnand: add defines for ONFI version bits Message-ID: <20180621130554.43900e2f@bbrezillon> In-Reply-To: <20180621103328.28206-4-chris.packham@alliedtelesis.co.nz> References: <20180621103328.28206-1-chris.packham@alliedtelesis.co.nz> <20180621103328.28206-4-chris.packham@alliedtelesis.co.nz> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Thu, 21 Jun 2018 22:33:25 +1200 Chris Packham wrote: > Add defines for the ONFI version bits and use them in > nand_flash_detect_onfi(). > > Signed-off-by: Chris Packham Reviewed-by: Boris Brezillon > --- > Changes in v4: > - New > > drivers/mtd/nand/raw/nand_base.c | 10 +++++----- > include/linux/mtd/rawnand.h | 11 +++++++++++ > 2 files changed, 16 insertions(+), 5 deletions(-) > > diff --git a/drivers/mtd/nand/raw/nand_base.c b/drivers/mtd/nand/raw/nand_base.c > index 65250308c82d..36048e0cf1f5 100644 > --- a/drivers/mtd/nand/raw/nand_base.c > +++ b/drivers/mtd/nand/raw/nand_base.c > @@ -5178,15 +5178,15 @@ static int nand_flash_detect_onfi(struct nand_chip *chip) > > /* Check version */ > val = le16_to_cpu(p->revision); > - if (val & (1 << 5)) > + if (val & ONFI_VERSION_2_3) > chip->parameters.onfi.version = 23; > - else if (val & (1 << 4)) > + else if (val & ONFI_VERSION_2_2) > chip->parameters.onfi.version = 22; > - else if (val & (1 << 3)) > + else if (val & ONFI_VERSION_2_1) > chip->parameters.onfi.version = 21; > - else if (val & (1 << 2)) > + else if (val & ONFI_VERSION_2_0) > chip->parameters.onfi.version = 20; > - else if (val & (1 << 1)) > + else if (val & ONFI_VERSION_1_0) > chip->parameters.onfi.version = 10; > > if (!chip->parameters.onfi.version) { > diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h > index ef7e3b4e91ea..015bc3f2fc13 100644 > --- a/include/linux/mtd/rawnand.h > +++ b/include/linux/mtd/rawnand.h > @@ -230,6 +230,17 @@ enum nand_ecc_algo { > /* Keep gcc happy */ > struct nand_chip; > > +/* ONFI version bits */ > +#define ONFI_VERSION_1_0 BIT(1) > +#define ONFI_VERSION_2_0 BIT(2) > +#define ONFI_VERSION_2_1 BIT(3) > +#define ONFI_VERSION_2_2 BIT(4) > +#define ONFI_VERSION_2_3 BIT(5) > +#define ONFI_VERSION_3_0 BIT(6) > +#define ONFI_VERSION_3_1 BIT(7) > +#define ONFI_VERSION_3_2 BIT(8) > +#define ONFI_VERSION_4_0 BIT(9) > + > /* ONFI features */ > #define ONFI_FEATURE_16_BIT_BUS (1 << 0) > #define ONFI_FEATURE_EXT_PARAM_PAGE (1 << 7)