* [PATCH v3 1/2] mtd: rawnand: add basic sandisk manufacturer ops
@ 2023-06-13 21:19 Johan Jonker
2023-06-13 21:21 ` [PATCH v3 2/2] mtd: rawnand: add support for the Sandisk SDTNQGAMA chip Johan Jonker
2023-06-19 8:39 ` [PATCH v3 1/2] mtd: rawnand: add basic sandisk manufacturer ops Miquel Raynal
0 siblings, 2 replies; 4+ messages in thread
From: Johan Jonker @ 2023-06-13 21:19 UTC (permalink / raw)
To: miquel.raynal; +Cc: richard, vigneshr, linux-mtd, linux-kernel
Add basic Sandisk manufacturer ops support to get
SDTNQGAMA timing data with the nand_get_sdr_timings()
function.
Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---
Changed V3:
Separate serie
Change prefixes
Changed V2:
New patch
---
Limited to one chip model for now.
In need for someone with better knowledge of the Sandisk product
range to expand and improve. Documentation is rare to find.
---
drivers/mtd/nand/raw/Makefile | 1 +
drivers/mtd/nand/raw/internals.h | 1 +
drivers/mtd/nand/raw/nand_ids.c | 2 +-
drivers/mtd/nand/raw/nand_sandisk.c | 26 ++++++++++++++++++++++++++
4 files changed, 29 insertions(+), 1 deletion(-)
create mode 100644 drivers/mtd/nand/raw/nand_sandisk.c
diff --git a/drivers/mtd/nand/raw/Makefile b/drivers/mtd/nand/raw/Makefile
index 917cdfb81..d93e861d8 100644
--- a/drivers/mtd/nand/raw/Makefile
+++ b/drivers/mtd/nand/raw/Makefile
@@ -67,5 +67,6 @@ nand-objs += nand_esmt.o
nand-objs += nand_hynix.o
nand-objs += nand_macronix.o
nand-objs += nand_micron.o
+nand-objs += nand_sandisk.o
nand-objs += nand_samsung.o
nand-objs += nand_toshiba.o
diff --git a/drivers/mtd/nand/raw/internals.h b/drivers/mtd/nand/raw/internals.h
index 7016e0f38..e9932da18 100644
--- a/drivers/mtd/nand/raw/internals.h
+++ b/drivers/mtd/nand/raw/internals.h
@@ -73,6 +73,7 @@ extern const struct nand_manufacturer_ops hynix_nand_manuf_ops;
extern const struct nand_manufacturer_ops macronix_nand_manuf_ops;
extern const struct nand_manufacturer_ops micron_nand_manuf_ops;
extern const struct nand_manufacturer_ops samsung_nand_manuf_ops;
+extern const struct nand_manufacturer_ops sandisk_nand_manuf_ops;
extern const struct nand_manufacturer_ops toshiba_nand_manuf_ops;
/* MLC pairing schemes */
diff --git a/drivers/mtd/nand/raw/nand_ids.c b/drivers/mtd/nand/raw/nand_ids.c
index dacc5529b..1a89ed796 100644
--- a/drivers/mtd/nand/raw/nand_ids.c
+++ b/drivers/mtd/nand/raw/nand_ids.c
@@ -188,7 +188,7 @@ static const struct nand_manufacturer_desc nand_manufacturer_descs[] = {
{NAND_MFR_NATIONAL, "National"},
{NAND_MFR_RENESAS, "Renesas"},
{NAND_MFR_SAMSUNG, "Samsung", &samsung_nand_manuf_ops},
- {NAND_MFR_SANDISK, "SanDisk"},
+ {NAND_MFR_SANDISK, "SanDisk", &sandisk_nand_manuf_ops},
{NAND_MFR_STMICRO, "ST Micro"},
{NAND_MFR_TOSHIBA, "Toshiba", &toshiba_nand_manuf_ops},
{NAND_MFR_WINBOND, "Winbond"},
diff --git a/drivers/mtd/nand/raw/nand_sandisk.c b/drivers/mtd/nand/raw/nand_sandisk.c
new file mode 100644
index 000000000..7c66e4187
--- /dev/null
+++ b/drivers/mtd/nand/raw/nand_sandisk.c
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "internals.h"
+
+static int
+sdtnqgama_choose_interface_config(struct nand_chip *chip,
+ struct nand_interface_config *iface)
+{
+ onfi_fill_interface_config(chip, iface, NAND_SDR_IFACE, 0);
+
+ return nand_choose_best_sdr_timings(chip, iface, NULL);
+}
+
+static int sandisk_nand_init(struct nand_chip *chip)
+{
+ if (!strncmp("SDTNQGAMA", chip->parameters.model,
+ sizeof("SDTNQGAMA") - 1))
+ chip->ops.choose_interface_config =
+ &sdtnqgama_choose_interface_config;
+
+ return 0;
+}
+
+const struct nand_manufacturer_ops sandisk_nand_manuf_ops = {
+ .init = sandisk_nand_init,
+};
--
2.30.2
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3 2/2] mtd: rawnand: add support for the Sandisk SDTNQGAMA chip
2023-06-13 21:19 [PATCH v3 1/2] mtd: rawnand: add basic sandisk manufacturer ops Johan Jonker
@ 2023-06-13 21:21 ` Johan Jonker
2023-06-19 8:39 ` Miquel Raynal
2023-06-19 8:39 ` [PATCH v3 1/2] mtd: rawnand: add basic sandisk manufacturer ops Miquel Raynal
1 sibling, 1 reply; 4+ messages in thread
From: Johan Jonker @ 2023-06-13 21:21 UTC (permalink / raw)
To: miquel.raynal; +Cc: richard, vigneshr, linux-mtd, linux-kernel
Sandisk SDTNQGAMA is a 8GB size, 3.3V 8 bit chip with 16KB page size,
1KB write size and 40 bit ecc support
Co-developed-by: Paweł Jarosz <paweljarosz3691@gmail.com>
Signed-off-by: Paweł Jarosz <paweljarosz3691@gmail.com>
Signed-off-by: Johan Jonker <jbx6244@gmail.com>
---
Changed V3:
Separate serie
Change prefixes
---
drivers/mtd/nand/raw/nand_ids.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/mtd/nand/raw/nand_ids.c b/drivers/mtd/nand/raw/nand_ids.c
index 1a89ed796..650351c62 100644
--- a/drivers/mtd/nand/raw/nand_ids.c
+++ b/drivers/mtd/nand/raw/nand_ids.c
@@ -44,6 +44,9 @@ struct nand_flash_dev nand_flash_ids[] = {
{"TC58NVG6D2 64G 3.3V 8-bit",
{ .id = {0x98, 0xde, 0x94, 0x82, 0x76, 0x56, 0x04, 0x20} },
SZ_8K, SZ_8K, SZ_2M, 0, 8, 640, NAND_ECC_INFO(40, SZ_1K) },
+ {"SDTNQGAMA 64G 3.3V 8-bit",
+ { .id = {0x45, 0xde, 0x94, 0x93, 0x76, 0x57} },
+ SZ_16K, SZ_8K, SZ_4M, 0, 6, 1280, NAND_ECC_INFO(40, SZ_1K) },
{"SDTNRGAMA 64G 3.3V 8-bit",
{ .id = {0x45, 0xde, 0x94, 0x93, 0x76, 0x50} },
SZ_16K, SZ_8K, SZ_4M, 0, 6, 1280, NAND_ECC_INFO(40, SZ_1K) },
--
2.30.2
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3 2/2] mtd: rawnand: add support for the Sandisk SDTNQGAMA chip
2023-06-13 21:21 ` [PATCH v3 2/2] mtd: rawnand: add support for the Sandisk SDTNQGAMA chip Johan Jonker
@ 2023-06-19 8:39 ` Miquel Raynal
0 siblings, 0 replies; 4+ messages in thread
From: Miquel Raynal @ 2023-06-19 8:39 UTC (permalink / raw)
To: Johan Jonker, miquel.raynal; +Cc: richard, vigneshr, linux-mtd, linux-kernel
On Tue, 2023-06-13 at 21:21:06 UTC, Johan Jonker wrote:
> Sandisk SDTNQGAMA is a 8GB size, 3.3V 8 bit chip with 16KB page size,
> 1KB write size and 40 bit ecc support
>
> Co-developed-by: Paweł Jarosz <paweljarosz3691@gmail.com>
> Signed-off-by: Paweł Jarosz <paweljarosz3691@gmail.com>
> Signed-off-by: Johan Jonker <jbx6244@gmail.com>
Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next, thanks.
Miquel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3 1/2] mtd: rawnand: add basic sandisk manufacturer ops
2023-06-13 21:19 [PATCH v3 1/2] mtd: rawnand: add basic sandisk manufacturer ops Johan Jonker
2023-06-13 21:21 ` [PATCH v3 2/2] mtd: rawnand: add support for the Sandisk SDTNQGAMA chip Johan Jonker
@ 2023-06-19 8:39 ` Miquel Raynal
1 sibling, 0 replies; 4+ messages in thread
From: Miquel Raynal @ 2023-06-19 8:39 UTC (permalink / raw)
To: Johan Jonker, miquel.raynal; +Cc: richard, vigneshr, linux-mtd, linux-kernel
On Tue, 2023-06-13 at 21:19:58 UTC, Johan Jonker wrote:
> Add basic Sandisk manufacturer ops support to get
> SDTNQGAMA timing data with the nand_get_sdr_timings()
> function.
>
> Signed-off-by: Johan Jonker <jbx6244@gmail.com>
Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next, thanks.
Miquel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-06-19 8:43 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-13 21:19 [PATCH v3 1/2] mtd: rawnand: add basic sandisk manufacturer ops Johan Jonker
2023-06-13 21:21 ` [PATCH v3 2/2] mtd: rawnand: add support for the Sandisk SDTNQGAMA chip Johan Jonker
2023-06-19 8:39 ` Miquel Raynal
2023-06-19 8:39 ` [PATCH v3 1/2] mtd: rawnand: add basic sandisk manufacturer ops Miquel Raynal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®