xref: /openbmc/linux/drivers/mtd/nand/raw/nand_sandisk.c (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1*12ac188bSJohan Jonker // SPDX-License-Identifier: GPL-2.0-or-later
2*12ac188bSJohan Jonker 
3*12ac188bSJohan Jonker #include "internals.h"
4*12ac188bSJohan Jonker 
5*12ac188bSJohan Jonker static int
sdtnqgama_choose_interface_config(struct nand_chip * chip,struct nand_interface_config * iface)6*12ac188bSJohan Jonker sdtnqgama_choose_interface_config(struct nand_chip *chip,
7*12ac188bSJohan Jonker 				  struct nand_interface_config *iface)
8*12ac188bSJohan Jonker {
9*12ac188bSJohan Jonker 	onfi_fill_interface_config(chip, iface, NAND_SDR_IFACE, 0);
10*12ac188bSJohan Jonker 
11*12ac188bSJohan Jonker 	return nand_choose_best_sdr_timings(chip, iface, NULL);
12*12ac188bSJohan Jonker }
13*12ac188bSJohan Jonker 
sandisk_nand_init(struct nand_chip * chip)14*12ac188bSJohan Jonker static int sandisk_nand_init(struct nand_chip *chip)
15*12ac188bSJohan Jonker {
16*12ac188bSJohan Jonker 	if (!strncmp("SDTNQGAMA", chip->parameters.model,
17*12ac188bSJohan Jonker 		     sizeof("SDTNQGAMA") - 1))
18*12ac188bSJohan Jonker 		chip->ops.choose_interface_config =
19*12ac188bSJohan Jonker 			&sdtnqgama_choose_interface_config;
20*12ac188bSJohan Jonker 
21*12ac188bSJohan Jonker 	return 0;
22*12ac188bSJohan Jonker }
23*12ac188bSJohan Jonker 
24*12ac188bSJohan Jonker const struct nand_manufacturer_ops sandisk_nand_manuf_ops = {
25*12ac188bSJohan Jonker 	.init = sandisk_nand_init,
26*12ac188bSJohan Jonker };
27