162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci#include "internals.h" 462306a36Sopenharmony_ci 562306a36Sopenharmony_cistatic int 662306a36Sopenharmony_cisdtnqgama_choose_interface_config(struct nand_chip *chip, 762306a36Sopenharmony_ci struct nand_interface_config *iface) 862306a36Sopenharmony_ci{ 962306a36Sopenharmony_ci onfi_fill_interface_config(chip, iface, NAND_SDR_IFACE, 0); 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci return nand_choose_best_sdr_timings(chip, iface, NULL); 1262306a36Sopenharmony_ci} 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_cistatic int sandisk_nand_init(struct nand_chip *chip) 1562306a36Sopenharmony_ci{ 1662306a36Sopenharmony_ci if (!strncmp("SDTNQGAMA", chip->parameters.model, 1762306a36Sopenharmony_ci sizeof("SDTNQGAMA") - 1)) 1862306a36Sopenharmony_ci chip->ops.choose_interface_config = 1962306a36Sopenharmony_ci &sdtnqgama_choose_interface_config; 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci return 0; 2262306a36Sopenharmony_ci} 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciconst struct nand_manufacturer_ops sandisk_nand_manuf_ops = { 2562306a36Sopenharmony_ci .init = sandisk_nand_init, 2662306a36Sopenharmony_ci}; 27