[PATCH] mtd: spi-nor: boya: add support for boya by25q128as

From: George Brooke
Date: Sun Feb 07 2021 - 09:25:09 EST


Adds support for the Boya Microelectronics BY25Q128AS 128 Mbit flash.
I tested this on the Creality WB-01 embedded device which uses this,
although that was with OpenWrt which is still using 5.4 so I had to
do a bit of porting work. Don't see how that would make much of a
difference though.

Signed-off-by: George Brooke <figgyc@xxxxxxxxx>
---
drivers/mtd/spi-nor/Makefile | 1 +
drivers/mtd/spi-nor/boya.c | 23 +++++++++++++++++++++++
drivers/mtd/spi-nor/core.c | 1 +
drivers/mtd/spi-nor/core.h | 1 +
4 files changed, 26 insertions(+)
create mode 100644 drivers/mtd/spi-nor/boya.c

diff --git a/drivers/mtd/spi-nor/Makefile b/drivers/mtd/spi-nor/Makefile
index 653923896205..7d1551fbfbaa 100644
--- a/drivers/mtd/spi-nor/Makefile
+++ b/drivers/mtd/spi-nor/Makefile
@@ -2,6 +2,7 @@

spi-nor-objs := core.o sfdp.o
spi-nor-objs += atmel.o
+spi-nor-objs += boya.o
spi-nor-objs += catalyst.o
spi-nor-objs += eon.o
spi-nor-objs += esmt.o
diff --git a/drivers/mtd/spi-nor/boya.c b/drivers/mtd/spi-nor/boya.c
new file mode 100644
index 000000000000..014b0087048a
--- /dev/null
+++ b/drivers/mtd/spi-nor/boya.c
@@ -0,0 +1,23 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2005, Intec Automation Inc.
+ * Copyright (C) 2014, Freescale Semiconductor, Inc.
+ */
+
+#include <linux/mtd/spi-nor.h>
+
+#include "core.h"
+
+static const struct flash_info boya_parts[] = {
+ /* Boya */
+ { "by25q128as", INFO(0x684018, 0, 64 * 1024, 256,
+ SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
+ SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
+ },
+};
+
+const struct spi_nor_manufacturer spi_nor_boya = {
+ .name = "boya",
+ .parts = boya_parts,
+ .nparts = ARRAY_SIZE(boya_parts),
+};
diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
index 20df44b753da..4d0d003e9c3f 100644
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -2160,6 +2160,7 @@ int spi_nor_sr2_bit7_quad_enable(struct spi_nor *nor)

static const struct spi_nor_manufacturer *manufacturers[] = {
&spi_nor_atmel,
+ &spi_nor_boya,
&spi_nor_catalyst,
&spi_nor_eon,
&spi_nor_esmt,
diff --git a/drivers/mtd/spi-nor/core.h b/drivers/mtd/spi-nor/core.h
index d631ee299de3..d5ed5217228b 100644
--- a/drivers/mtd/spi-nor/core.h
+++ b/drivers/mtd/spi-nor/core.h
@@ -409,6 +409,7 @@ struct spi_nor_manufacturer {

/* Manufacturer drivers. */
extern const struct spi_nor_manufacturer spi_nor_atmel;
+extern const struct spi_nor_manufacturer spi_nor_boya;
extern const struct spi_nor_manufacturer spi_nor_catalyst;
extern const struct spi_nor_manufacturer spi_nor_eon;
extern const struct spi_nor_manufacturer spi_nor_esmt;
--
2.30.0