From 52d14545d2fc276b1bf9ccf48d4612fab6edfb6a Mon Sep 17 00:00:00 2001 From: David Bauer Date: Thu, 6 May 2021 17:49:55 +0200 Subject: [PATCH] mtd: spi-nor: Add support for BoHong bh25q128as Add MTD support for the BoHong bh25q128as SPI NOR chip. The chip has 16MB of total capacity, divided into a total of 256 sectors, each 64KB sized. The chip also supports 4KB sectors. Additionally, it supports dual and quad read modes. Functionality was verified on an Tenbay WR1800K / MTK MT7621 board. Signed-off-by: David Bauer --- drivers/mtd/spi-nor/Makefile | 1 + drivers/mtd/spi-nor/bohong.c | 21 +++++++++++++++++++++ drivers/mtd/spi-nor/core.c | 1 + drivers/mtd/spi-nor/core.h | 1 + 4 files changed, 24 insertions(+) create mode 100644 drivers/mtd/spi-nor/bohong.c --- a/drivers/mtd/spi-nor/Makefile +++ b/drivers/mtd/spi-nor/Makefile @@ -2,6 +2,7 @@ spi-nor-objs := core.o sfdp.o swp.o otp.o sysfs.o spi-nor-objs += atmel.o +spi-nor-objs += bohong.o spi-nor-objs += catalyst.o spi-nor-objs += eon.o spi-nor-objs += esmt.o --- /dev/null +++ b/drivers/mtd/spi-nor/bohong.c @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) 2005, Intec Automation Inc. + * Copyright (C) 2014, Freescale Semiconductor, Inc. + */ + +#include + +#include "core.h" + +static const struct flash_info bohong_parts[] = { + /* BoHong Microelectronics */ + { "bh25q128as", INFO(0x684018, 0, 64 * 1024, 256, + SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, +}; + +const struct spi_nor_manufacturer spi_nor_bohong = { + .name = "bohong", + .parts = bohong_parts, + .nparts = ARRAY_SIZE(bohong_parts), +}; --- a/drivers/mtd/spi-nor/core.c +++ b/drivers/mtd/spi-nor/core.c @@ -1841,6 +1841,7 @@ int spi_nor_sr2_bit7_quad_enable(struct static const struct spi_nor_manufacturer *manufacturers[] = { &spi_nor_atmel, + &spi_nor_bohong, &spi_nor_catalyst, &spi_nor_eon, &spi_nor_esmt, --- a/drivers/mtd/spi-nor/core.h +++ b/drivers/mtd/spi-nor/core.h @@ -473,6 +473,7 @@ struct sfdp { /* Manufacturer drivers. */ extern const struct spi_nor_manufacturer spi_nor_atmel; +extern const struct spi_nor_manufacturer spi_nor_bohong; 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;