As raised by Rickard, certain chips like Toshiba/Kioxia TH58NVG2S3HBAI4 are not ONFI compliant and because of that, work at a very slow pace. This chip in particular supports running at a pace "close" to ONFI mode 4. This series provides a way to manufacturer drivers to propose a data interface to the core with a very simple interface (see patch 19/19). Cheers, Miquèl Changes since v3: * Took Rickard patch based on my previous proposals over Github and tweaked a few more things: - Added a "generic" helper to fallback on slower ONFI modes when the proposed interface is not supported by the controller. - Fixed more kdoc. - Simplified the vendor driver side by providing additional helpers. * Tweaked a little bit Rickard patch to fit the latest changes. Miquel Raynal (18): mtd: rawnand: Use unsigned types for nand_chip unsigned values mtd: rawnand: Only use u8 instead of uint8_t in nand_chip structure mtd: rawnand: Create a nand_chip operations structure mtd: rawnand: Rename the manufacturer structure mtd: rawnand: Declare the nand_manufacturer structure out of nand_chip mtd: rawnand: Reorganize the nand_chip structure mtd: rawnand: Compare the actual timing values mtd: rawnand: Rename onfi_timing_mode_default mtd: rawnand: Use the data interface mode entry when relevant mtd: rawnand: Rename nand_has_setup_data_interface() mtd: rawnand: Fix nand_setup_data_interface() description mtd: rawnand: Rename nand_init_data_interface() mtd: rawnand: timings: Update onfi_fill_data_interface() kernel doc mtd: rawnand: timings: Provide onfi_fill_data_interface() with a data interface mtd: rawnand: timings: Add a helper to find the closest ONFI mode mtd: rawnand: Introduce nand_choose_best_sdr_iface() mtd: rawnand: Introduce nand_choose_best_vendor_sdr_iface() mtd: rawnand: Add the ->choose_data_interface() hook Rickard x Andersson (1): mtd: rawnand: Add timings for Kioxia TH58NVG2S3HBAI4 drivers/mtd/nand/raw/internals.h | 17 +- drivers/mtd/nand/raw/nand_base.c | 181 ++++++++++++++-------- drivers/mtd/nand/raw/nand_hynix.c | 2 +- drivers/mtd/nand/raw/nand_ids.c | 19 ++- drivers/mtd/nand/raw/nand_legacy.c | 2 +- drivers/mtd/nand/raw/nand_macronix.c | 10 +- drivers/mtd/nand/raw/nand_micron.c | 2 +- drivers/mtd/nand/raw/nand_timings.c | 62 +++++++- drivers/mtd/nand/raw/nand_toshiba.c | 40 ++++- include/linux/mtd/rawnand.h | 224 +++++++++++++-------------- 10 files changed, 354 insertions(+), 205 deletions(-) -- 2.20.1 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/