[PATCH] mtd: spi-nor: cypress: Add support for CY15V104QSN
Fabian Pflug
f.pflug at pengutronix.de
Wed Apr 29 06:58:45 PDT 2026
Infineon CY15V104QSN is an FRAM Chip with Quad-SPI interface, a size of
4Mb and a nominal Voltage of 1.8V
It should be the same as CY15B104QSN, just with a different Voltage
range. (3.0V)
Cypress is an Infineon company. The FRAM was originally developed by
Cypress.
Link: https://www.infineon.com/assets/row/public/documents/10/49/infineon-cy15b104qsn-cy15v104qsn-4mb-excelon-ultra-ferroelectric-ram-f-ram-serial-quad-spi-512k-8-108-mhz-industrial-datasheet-en.pdf
Signed-off-by: Fabian Pflug <f.pflug at pengutronix.de>
---
drivers/mtd/spi-nor/Makefile | 1 +
drivers/mtd/spi-nor/core.c | 1 +
drivers/mtd/spi-nor/core.h | 1 +
drivers/mtd/spi-nor/cypress.c | 24 ++++++++++++++++++++++++
4 files changed, 27 insertions(+)
diff --git a/drivers/mtd/spi-nor/Makefile b/drivers/mtd/spi-nor/Makefile
index 5dd9c35f6b6f8..73267677c22ad 100644
--- 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 += cypress.o
spi-nor-objs += eon.o
spi-nor-objs += esmt.o
spi-nor-objs += everspin.o
diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
index 20ea80450f222..b52219216f872 100644
--- a/drivers/mtd/spi-nor/core.c
+++ b/drivers/mtd/spi-nor/core.c
@@ -1941,6 +1941,7 @@ int spi_nor_sr2_bit7_quad_enable(struct spi_nor *nor)
static const struct spi_nor_manufacturer *manufacturers[] = {
&spi_nor_atmel,
+ &spi_nor_cypress,
&spi_nor_eon,
&spi_nor_esmt,
&spi_nor_everspin,
diff --git a/drivers/mtd/spi-nor/core.h b/drivers/mtd/spi-nor/core.h
index ceff412f7d65a..95b09ca981c8b 100644
--- a/drivers/mtd/spi-nor/core.h
+++ b/drivers/mtd/spi-nor/core.h
@@ -585,6 +585,7 @@ struct sfdp {
/* Manufacturer drivers. */
extern const struct spi_nor_manufacturer spi_nor_atmel;
+extern const struct spi_nor_manufacturer spi_nor_cypress;
extern const struct spi_nor_manufacturer spi_nor_eon;
extern const struct spi_nor_manufacturer spi_nor_esmt;
extern const struct spi_nor_manufacturer spi_nor_everspin;
diff --git a/drivers/mtd/spi-nor/cypress.c b/drivers/mtd/spi-nor/cypress.c
new file mode 100644
index 0000000000000..20079d3338e73
--- /dev/null
+++ b/drivers/mtd/spi-nor/cypress.c
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (C) 2026 Pengutronix, Fabian Pflug <kernel at pengutronix.de>
+ */
+
+#include <linux/mtd/spi-nor.h>
+
+#include "core.h"
+
+static const struct flash_info cypress_nor_parts[] = {
+ {
+ .id = SNOR_ID(0x50, 0x51, 0x80, 0x06),
+ .name = "cy15x104qs",
+ .size = SZ_512K,
+ .sector_size = SZ_512K,
+ .flags = SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_NO_ERASE,
+ }
+};
+
+const struct spi_nor_manufacturer spi_nor_cypress = {
+ .name = "cypress",
+ .parts = cypress_nor_parts,
+ .nparts = ARRAY_SIZE(cypress_nor_parts),
+};
---
base-commit: 7d0a66e4bb9081d75c82ec4957c50034cb0ea449
change-id: 20260429-v6-18-topic-infineon_fram-8404ffbae826
Best regards,
--
Fabian Pflug <f.pflug at pengutronix.de>
More information about the linux-mtd
mailing list