Skip to content

Commit 12ac188

Browse files
Johan Jonkermiquelraynal
authored andcommitted
mtd: rawnand: add basic sandisk manufacturer ops
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> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Link: https://lore.kernel.org/linux-mtd/aaf4580a-a368-8f70-c9c4-21b5ed4dd599@gmail.com
1 parent 46c37b9 commit 12ac188

4 files changed

Lines changed: 29 additions & 1 deletion

File tree

drivers/mtd/nand/raw/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,5 +67,6 @@ nand-objs += nand_esmt.o
6767
nand-objs += nand_hynix.o
6868
nand-objs += nand_macronix.o
6969
nand-objs += nand_micron.o
70+
nand-objs += nand_sandisk.o
7071
nand-objs += nand_samsung.o
7172
nand-objs += nand_toshiba.o

drivers/mtd/nand/raw/internals.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ extern const struct nand_manufacturer_ops hynix_nand_manuf_ops;
7373
extern const struct nand_manufacturer_ops macronix_nand_manuf_ops;
7474
extern const struct nand_manufacturer_ops micron_nand_manuf_ops;
7575
extern const struct nand_manufacturer_ops samsung_nand_manuf_ops;
76+
extern const struct nand_manufacturer_ops sandisk_nand_manuf_ops;
7677
extern const struct nand_manufacturer_ops toshiba_nand_manuf_ops;
7778

7879
/* MLC pairing schemes */

drivers/mtd/nand/raw/nand_ids.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ static const struct nand_manufacturer_desc nand_manufacturer_descs[] = {
188188
{NAND_MFR_NATIONAL, "National"},
189189
{NAND_MFR_RENESAS, "Renesas"},
190190
{NAND_MFR_SAMSUNG, "Samsung", &samsung_nand_manuf_ops},
191-
{NAND_MFR_SANDISK, "SanDisk"},
191+
{NAND_MFR_SANDISK, "SanDisk", &sandisk_nand_manuf_ops},
192192
{NAND_MFR_STMICRO, "ST Micro"},
193193
{NAND_MFR_TOSHIBA, "Toshiba", &toshiba_nand_manuf_ops},
194194
{NAND_MFR_WINBOND, "Winbond"},
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// SPDX-License-Identifier: GPL-2.0-or-later
2+
3+
#include "internals.h"
4+
5+
static int
6+
sdtnqgama_choose_interface_config(struct nand_chip *chip,
7+
struct nand_interface_config *iface)
8+
{
9+
onfi_fill_interface_config(chip, iface, NAND_SDR_IFACE, 0);
10+
11+
return nand_choose_best_sdr_timings(chip, iface, NULL);
12+
}
13+
14+
static int sandisk_nand_init(struct nand_chip *chip)
15+
{
16+
if (!strncmp("SDTNQGAMA", chip->parameters.model,
17+
sizeof("SDTNQGAMA") - 1))
18+
chip->ops.choose_interface_config =
19+
&sdtnqgama_choose_interface_config;
20+
21+
return 0;
22+
}
23+
24+
const struct nand_manufacturer_ops sandisk_nand_manuf_ops = {
25+
.init = sandisk_nand_init,
26+
};

0 commit comments

Comments
 (0)