Message ID | 20180621103328.28206-4-chris.packham@alliedtelesis.co.nz |
---|---|
State | Superseded |
Delegated to: | Miquel Raynal |
Headers | show |
Series | mtd: rawnand: support MT29F1G08ABAFAWP-ITE:F | expand |
On Thu, 21 Jun 2018 22:33:25 +1200 Chris Packham <chris.packham@alliedtelesis.co.nz> wrote: > Add defines for the ONFI version bits and use them in > nand_flash_detect_onfi(). > > Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> Reviewed-by: Boris Brezillon <boris.brezillon@bootlin.com> > --- > 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)
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)
Add defines for the ONFI version bits and use them in nand_flash_detect_onfi(). Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> --- 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(-)