/Linux-v6.1/Documentation/devicetree/bindings/mtd/ |
D | nvidia-tegra20-nand.txt | 1 NVIDIA Tegra NAND Flash controller 4 - compatible: Must be one of: 5 - "nvidia,tegra20-nand" 6 - reg: MMIO address range 7 - interrupts: interrupt output of the NFC controller 8 - clocks: Must contain an entry for each entry in clock-names. 9 See ../clocks/clock-bindings.txt for details. 10 - clock-names: Must include the following entries: 11 - nand 12 - resets: Must contain an entry for each entry in reset-names. [all …]
|
D | davinci-nand.txt | 1 Device tree bindings for Texas instruments Davinci/Keystone NAND controller 4 NAND interface contains. 7 Davinci DM646x - https://www.ti.com/lit/ug/sprueq7c/sprueq7c.pdf 8 Kestone - https://www.ti.com/lit/ug/sprugz3a/sprugz3a.pdf 12 - compatible: "ti,davinci-nand" 13 "ti,keystone-nand" 15 - reg: Contains 2 offset/length values: 16 - offset and length for the access window. 17 - offset and length for accessing the AEMIF 20 - ti,davinci-chipselect: number of chipselect. Indicates on the [all …]
|
D | hisi504-nand.txt | 1 Hisilicon Hip04 Soc NAND controller DT binding 5 - compatible: Should be "hisilicon,504-nfc". 6 - reg: The first contains base physical address and size of 7 NAND controller's registers. The second contains base 8 physical address and size of NAND controller's buffer. 9 - interrupts: Interrupt number for nfc. 10 - nand-bus-width: See nand-controller.yaml. 11 - nand-ecc-mode: Support none and hw ecc mode. 12 - #address-cells: Partition address, should be set 1. 13 - #size-cells: Partition size, should be set 1. [all …]
|
D | mtk-nand.txt | 1 MTK SoCs NAND FLASH controller (NFC) DT binding 3 This file documents the device tree bindings for MTK SoCs NAND controllers. 5 the nand controller interface driver and the ECC engine driver. 10 1) NFC NAND Controller Interface (NFI): 13 The first part of NFC is NAND Controller Interface (NFI) HW. 15 - compatible: Should be one of 16 "mediatek,mt2701-nfc", 17 "mediatek,mt2712-nfc", 18 "mediatek,mt7622-nfc". 19 - reg: Base physical address and size of NFI. [all …]
|
D | marvell-nand.txt | 1 Marvell NAND Flash Controller (NFC) 4 - compatible: can be one of the following: 5 * "marvell,armada-8k-nand-controller" 6 * "marvell,armada370-nand-controller" 7 * "marvell,pxa3xx-nand-controller" 8 * "marvell,armada-8k-nand" (deprecated) 9 * "marvell,armada370-nand" (deprecated) 10 * "marvell,pxa3xx-nand" (deprecated) 13 - reg: NAND flash controller memory area. 14 - #address-cells: shall be set to 1. Encode the NAND CS. [all …]
|
D | rockchip,nand-controller.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/mtd/rockchip,nand-controller.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Rockchip SoCs NAND FLASH Controller (NFC) 10 - $ref: "nand-controller.yaml#" 13 - Heiko Stuebner <heiko@sntech.de> 18 - const: rockchip,px30-nfc 19 - const: rockchip,rk2928-nfc 20 - const: rockchip,rv1108-nfc [all …]
|
D | atmel-nand.txt | 1 Atmel NAND flash controller bindings 3 The NAND flash controller node should be defined under the EBI bus (see 4 Documentation/devicetree/bindings/memory-controllers/atmel,ebi.txt). 5 One or several NAND devices can be defined under this NAND controller. 6 The NAND controller might be connected to an ECC engine. 8 * NAND controller bindings: 11 - compatible: should be one of the following 12 "atmel,at91rm9200-nand-controller" 13 "atmel,at91sam9260-nand-controller" 14 "atmel,at91sam9261-nand-controller" [all …]
|
D | vf610-nfc.txt | 1 Freescale's NAND flash controller (NFC) 3 This variant of the Freescale NAND flash controller (NFC) can be found on 7 - compatible: Should be set to "fsl,vf610-nfc". 8 - reg: address range of the NFC. 9 - interrupts: interrupt of the NFC. 10 - #address-cells: shall be set to 1. Encode the nand CS. 11 - #size-cells : shall be set to 0. 12 - assigned-clocks: main clock from the SoC, for Vybrid <&clks VF610_CLK_NFC>; 13 - assigned-clock-rates: The NAND bus timing is derived from this clock 14 rate and should not exceed maximum timing for any NAND memory chip [all …]
|
D | allwinner,sun4i-a10-nand.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/mtd/allwinner,sun4i-a10-nand.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Allwinner A10 NAND Controller 10 - $ref: "nand-controller.yaml" 13 - Chen-Yu Tsai <wens@csie.org> 14 - Maxime Ripard <mripard@kernel.org> 17 "#address-cells": true 18 "#size-cells": true [all …]
|
/Linux-v6.1/drivers/mtd/nand/raw/ |
D | sunxi_nand.c | 1 // SPDX-License-Identifier: GPL-2.0+ 6 * https://github.com/yuq/sunxi-nfc-mtd 9 * https://github.com/hno/Allwinner-Info 16 #include <linux/dma-mapping.h> 71 #define NFC_PAGE_SHIFT(x) (((x) < 10 ? 0 : (x) - 10) << 8) 108 #define NFC_ADR_NUM(x) (((x) - 1) << 16) 162 * struct sunxi_nand_chip_sel - stores information related to NAND Chip Select 164 * @cs: the NAND CS id used to communicate with a NAND Chip 165 * @rb: the Ready/Busy pin ID. -1 means no R/B pin connected to the NFC 173 * struct sunxi_nand_hw_ecc - stores information related to HW ECC support [all …]
|
D | nand_base.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * This is the generic MTD driver for NAND flash devices. It should be 5 * capable of working with almost all NAND chips currently available. 8 * http://www.linux-mtd.infradead.org/doc/nand.html 11 * 2002-2006 Thomas Gleixner (tglx@linutronix.de) 21 * Check, if mtd->ecctype should be set to MTD_ECC_HW 22 * if we have HW ECC support. 37 #include <linux/mtd/nand.h> 38 #include <linux/mtd/nand-ecc-sw-hamming.h> 39 #include <linux/mtd/nand-ecc-sw-bch.h> [all …]
|
D | fsmc_nand.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Driver for NAND portions 11 * Based on drivers/mtd/nand/nomadik_nand.c (removed in v3.8) 20 #include <linux/dma-direction.h> 21 #include <linux/dma-mapping.h> 29 #include <linux/mtd/nand-ecc-sw-hamming.h> 37 #include <mtd/mtd-abi.h> 61 /* fsmc controller registers for NAND flash */ 99 * TOUDEL = 7ns (Output delay from the flip-flops to the board) 120 * struct fsmc_nand_data - structure for FSMC NAND device state [all …]
|
D | omap2.c | 1 // SPDX-License-Identifier: GPL-2.0-only 10 #include <linux/dma-mapping.h> 18 #include <linux/mtd/nand-ecc-sw-bch.h> 21 #include <linux/omap-dma.h> 29 #include <linux/omap-gpmc.h> 30 #include <linux/platform_data/mtd-nand-omap2.h> 32 #define DRIVER_NAME "omap2-nand" 122 /* GPMC ecc engine settings for read */ 123 #define BCH_WRAPMODE_1 1 /* BCH wrap mode 1 */ 129 /* GPMC ecc engine settings for write */ [all …]
|
D | tmio_nand.c | 2 * Toshiba TMIO NAND flash controller driver 4 * Slightly murky pre-git history of the driver: 7 * Original work, independent of sharps code. Included hardware ECC support. 8 * Hard ECC did not work for writes in the early revisions. 41 /*--------------------------------------------------------------------------*/ 44 * NAND Flash Host Controller Configuration Register 47 #define CCR_BASE 0x10 /* l NAND Flash Control Reg Base Addr */ 52 #define CCR_ECCC 0x5b /* b ECC Control */ 53 #define CCR_NFTC 0x60 /* b NAND Flash Transaction Control */ 54 #define CCR_NFM 0x61 /* b NAND Flash Monitor */ [all …]
|
D | mtk_nand.c | 1 // SPDX-License-Identifier: GPL-2.0 OR MIT 3 * MTK NAND Flash controller driver. 6 * Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@linaro.org> 10 #include <linux/dma-mapping.h> 20 #include <linux/mtd/nand-ecc-mtk.h> 22 /* NAND controller register definition */ 90 #define MTK_NAME "mtk-nand" 127 struct nand_chip nand; member 147 struct mtk_ecc *ecc; member 179 static inline struct mtk_nfc_nand_chip *to_mtk_nand(struct nand_chip *nand) in to_mtk_nand() argument [all …]
|
D | davinci_nand.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * davinci_nand.c - NAND Flash Driver for DaVinci family chips 8 * Sander Huijsen <Shuijsen@optelecom-nkf.com> 24 #include <linux/platform_data/mtd-davinci.h> 25 #include <linux/platform_data/mtd-davinci-aemif.h> 28 * This is a device driver for the NAND flash controller found on the 33 * The 1-bit ECC hardware is supported, as well as the newer 4-bit ECC 34 * available on chips like the DM355 and OMAP-L137 and needed with the 35 * more error-prone MLC NAND chips. 37 * This driver assumes EM_WAIT connects all the NAND devices' RDY/nBUSY [all …]
|
D | stm32_fmc2_nand.c | 1 // SPDX-License-Identifier: GPL-2.0 10 #include <linux/dma-mapping.h> 27 /* ECC step size */ 36 /* Max requests done for a 8k nand page size */ 42 /* Max ECC buffer length */ 248 struct stm32_fmc2_nand nand; member 283 struct stm32_fmc2_nfc *nfc = to_stm32_nfc(chip->controller); in stm32_fmc2_nfc_timings_init() 284 struct stm32_fmc2_nand *nand = to_fmc2_nand(chip); in stm32_fmc2_nfc_timings_init() local 285 struct stm32_fmc2_timings *timings = &nand->timings; in stm32_fmc2_nfc_timings_init() 289 regmap_update_bits(nfc->regmap, FMC2_PCR, in stm32_fmc2_nfc_timings_init() [all …]
|
/Linux-v6.1/drivers/mtd/nand/ |
D | ecc-mxic.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Support for Macronix external hardware ECC engine for NAND devices, also 10 #include <linux/dma-mapping.h> 18 #include <linux/mtd/nand.h> 19 #include <linux/mtd/nand-ecc-mxic.h> 53 /* ECC Chunk Size */ 63 /* ECC Chunk Count */ 98 /* ECC machinery */ 124 static struct mxic_ecc_engine *nand_to_mxic(struct nand_device *nand) in nand_to_mxic() argument 126 struct nand_ecc_engine *eng = nand->ecc.engine; in nand_to_mxic() [all …]
|
D | ecc-sw-bch.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * This file provides ECC correction for more than 1 bit per block of data, 14 #include <linux/mtd/nand.h> 15 #include <linux/mtd/nand-ecc-sw-bch.h> 18 * nand_ecc_sw_bch_calculate - Calculate the ECC corresponding to a data block 19 * @nand: NAND device 21 * @code: Output buffer with ECC 23 int nand_ecc_sw_bch_calculate(struct nand_device *nand, in nand_ecc_sw_bch_calculate() argument 26 struct nand_ecc_sw_bch_conf *engine_conf = nand->ecc.ctx.priv; in nand_ecc_sw_bch_calculate() 29 memset(code, 0, engine_conf->code_size); in nand_ecc_sw_bch_calculate() [all …]
|
/Linux-v6.1/include/linux/mtd/ |
D | nand.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * Copyright 2017 - Free Electrons 6 * Boris Brezillon <boris.brezillon@free-electrons.com> 18 * struct nand_memory_organization - Memory organization structure 19 * @bits_per_cell: number of bits per NAND cell 27 * @ntargets: total number of targets exposed by the NAND device 55 * struct nand_row_converter - Information needed to convert an absolute offset 67 * struct nand_pos - NAND position object 68 * @target: the NAND target/die 74 * These information are usually used by specific sub-layers to select the [all …]
|
D | rawnand.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * Copyright © 2000-2010 David Woodhouse <dwmw2@infradead.org> 8 * Contains standard defines and IDs for NAND flash devices 17 #include <linux/mtd/nand.h> 29 /* The maximum number of NAND chips in an array */ 50 * Standard NAND flash commands 73 #define NAND_CMD_NONE -1 82 #define NAND_DATA_IFACE_CHECK_ONLY -1 85 * Constants for Hardware ECC 87 /* Reset Hardware ECC for read */ [all …]
|
/Linux-v6.1/drivers/mtd/nand/raw/ingenic/ |
D | ingenic_nand_drv.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Ingenic JZ47xx NAND driver 24 #include <linux/jz4780-nemc.h> 28 #define DRV_NAME "ingenic-nand" 45 struct ingenic_ecc *ecc; member 76 struct nand_ecc_ctrl *ecc = &chip->ecc; in qi_lb60_ooblayout_ecc() local 78 if (section || !ecc->total) in qi_lb60_ooblayout_ecc() 79 return -ERANGE; in qi_lb60_ooblayout_ecc() 81 oobregion->length = ecc->total; in qi_lb60_ooblayout_ecc() 82 oobregion->offset = 12; in qi_lb60_ooblayout_ecc() [all …]
|
/Linux-v6.1/drivers/mtd/nand/spi/ |
D | core.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 2016-2017 Micron Technology, Inc. 10 #define pr_fmt(fmt) "spi-nand: " fmt 21 #include <linux/spi/spi-mem.h> 26 spinand->scratchbuf); in spinand_read_reg_op() 29 ret = spi_mem_exec_op(spinand->spimem, &op); in spinand_read_reg_op() 33 *val = *spinand->scratchbuf; in spinand_read_reg_op() 40 spinand->scratchbuf); in spinand_write_reg_op() 42 *spinand->scratchbuf = val; in spinand_write_reg_op() 43 return spi_mem_exec_op(spinand->spimem, &op); in spinand_write_reg_op() [all …]
|
/Linux-v6.1/Documentation/devicetree/bindings/spi/ |
D | mediatek,spi-mtk-snfi.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/spi/mediatek,spi-mtk-snfi.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: SPI-NAND flash controller for MediaTek ARM SoCs 10 - Chuanhong Guo <gch981213@gmail.com> 13 The Mediatek SPI-NAND flash controller is an extended version of 14 the Mediatek NAND flash controller. It can perform standard SPI 15 instructions with one continuous write and one read for up-to 0xa0 16 bytes. It also supports typical SPI-NAND page cache operations [all …]
|
/Linux-v6.1/Documentation/arm/samsung-s3c24xx/ |
D | nand.rst | 2 S3C24XX NAND Support 6 ------------ 8 Small Page NAND 9 --------------- 11 The driver uses a 512 byte (1 page) ECC code for this setup. The 12 ECC code is not directly compatible with the default kernel ECC 13 code, so the driver enforces its own OOB layout and ECC parameters 15 Large Page NAND 16 --------------- 18 The driver is capable of handling NAND flash with a 2KiB page [all …]
|