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