/Linux-v5.4/Documentation/devicetree/bindings/mtd/ |
D | ingenic,jz4780-nand.txt | 1 * Ingenic JZ4780 NAND/ECC 3 This file documents the device tree bindings for NAND flash devices on the 4 JZ4780. NAND devices are connected to the NEMC controller (described in 5 memory-controllers/ingenic,jz4780-nemc.txt), and thus NAND device nodes must 8 Required NAND controller device properties: 9 - compatible: Should be one of: 10 * ingenic,jz4740-nand 11 * ingenic,jz4725b-nand 12 * ingenic,jz4780-nand 13 - reg: For each bank with a NAND chip attached, should specify a bank number, [all …]
|
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 - http://www.ti.com/lit/ug/sprueq7c/sprueq7c.pdf 8 Kestone - http://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 | gpmc-nand.txt | 3 GPMC connected NAND (found on OMAP boards) are represented as child nodes of 4 the GPMC controller with a name of "nand". 7 explained in a separate documents - please refer to 8 Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt 10 For NAND specific properties such as ECC modes or bus width, please refer to 11 Documentation/devicetree/bindings/mtd/nand-controller.yaml 16 - compatible: "ti,omap2-nand" 17 - reg: range id (CS number), base offset and length of the 18 NAND I/O space 19 - interrupts: Two interrupt specifiers, one for fifoevent, one for termcount. [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 | nand-controller.yaml | 1 # SPDX-License-Identifier: GPL-2.0 3 --- 4 $id: http://devicetree.org/schemas/mtd/nand-controller.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: NAND Chip and NAND Controller Generic Binding 10 - Miquel Raynal <miquel.raynal@bootlin.com> 11 - Richard Weinberger <richard@nod.at> 14 The NAND controller should be represented with its own DT node, and 15 all NAND chips attached to this controller should be defined as 16 children nodes of the NAND controller. This representation should be [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 | mxc-nand.txt | 4 - compatible: "fsl,imxXX-nand" 5 - reg: address range of the nfc block 6 - interrupts: irq to be used 7 - nand-bus-width: see nand-controller.yaml 8 - nand-ecc-mode: see nand-controller.yaml 9 - nand-on-flash-bbt: see nand-controller.yaml 13 nand@d8000000 { 14 compatible = "fsl,imx27-nand"; 17 nand-bus-width = <8>; 18 nand-ecc-mode = "hw";
|
/Linux-v5.4/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" 47 struct ingenic_ecc *ecc; member 79 struct nand_ecc_ctrl *ecc = &chip->ecc; in qi_lb60_ooblayout_ecc() local 81 if (section || !ecc->total) in qi_lb60_ooblayout_ecc() 82 return -ERANGE; in qi_lb60_ooblayout_ecc() 84 oobregion->length = ecc->total; in qi_lb60_ooblayout_ecc() 85 oobregion->offset = 12; in qi_lb60_ooblayout_ecc() [all …]
|
/Linux-v5.4/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> 70 #define NFC_PAGE_SHIFT(x) (((x) < 10 ? 0 : (x) - 10) << 8) 107 #define NFC_ADR_NUM(x) (((x) - 1) << 16) 161 * struct sunxi_nand_chip_sel - stores information related to NAND Chip Select 163 * @cs: the NAND CS id used to communicate with a NAND Chip 164 * @rb: the Ready/Busy pin ID. -1 means no R/B pin connected to the NFC 172 * struct sunxi_nand_hw_ecc - stores information related to HW ECC support [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) 19 #include <linux/dma-direction.h> 20 #include <linux/dma-mapping.h> 36 #include <mtd/mtd-abi.h> 60 /* fsmc controller registers for NAND flash */ 111 * struct fsmc_nand_data - structure for FSMC NAND device state 115 * @nand: Chip related info for a NAND flash. 119 * @mode: Access mode [all …]
|
D | omap2.c | 1 // SPDX-License-Identifier: GPL-2.0-only 10 #include <linux/dma-mapping.h> 20 #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 */ 130 #define BCH_WRAPMODE_6 6 /* BCH wrap mode 6 */ [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. 53 struct nand_ecc_ctrl *ecc = &chip->ecc; in nand_ooblayout_ecc_sp() local 56 return -ERANGE; in nand_ooblayout_ecc_sp() 59 oobregion->offset = 0; in nand_ooblayout_ecc_sp() [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 | 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> 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 181 return container_of(nand, struct mtk_nfc_nand_chip, nand); in to_mtk_nand() [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. 42 /*--------------------------------------------------------------------------*/ 45 * NAND Flash Host Controller Configuration Register 48 #define CCR_BASE 0x10 /* l NAND Flash Control Reg Base Addr */ 53 #define CCR_ECCC 0x5b /* b ECC Control */ 54 #define CCR_NFTC 0x60 /* b NAND Flash Transaction Control */ 55 #define CCR_NFM 0x61 /* b NAND Flash Monitor */ [all …]
|
D | fsl_elbc_nand.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* Freescale Enhanced Local Bus Controller NAND driver 4 * Copyright © 2006-2007, 2010 Freescale Semiconductor 9 * Roy Zang <tie-fei.zang@freescale.com> 44 int page_size; /* NAND page size (0=512, 1=2048) */ 45 unsigned int fmr; /* FCM Flash Mode Register value */ 67 /* These map to the positions used by the FCM hardware ECC generator */ 75 if (section >= chip->ecc.steps) in fsl_elbc_ooblayout_ecc() 76 return -ERANGE; in fsl_elbc_ooblayout_ecc() 78 oobregion->offset = (16 * section) + 6; in fsl_elbc_ooblayout_ecc() [all …]
|
D | cs553x_nand.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 * This is a device driver for the NAND flash controller found on 11 * mtd-id for command line partitioning is cs553x_nand_cs[0-3] 12 * where 0-3 reflects the chip select for NAND. 34 /* NAND Timing MSRs */ 35 #define MSR_NANDF_DATA 0x5140001b /* NAND Flash Data Timing MSR */ 36 #define MSR_NANDF_CTL 0x5140001c /* NAND Flash Control Timing */ 39 /* NAND BAR MSRs */ 46 #define FLSH_NOR_NAND (1ULL<<33) /* 1 for NAND */ 55 /* Registers within the NAND flash controller BAR -- memory mapped */ [all …]
|
D | stm32_fmc2_nand.c | 1 // SPDX-License-Identifier: GPL-2.0 9 #include <linux/dma-mapping.h> 22 /* ECC step size */ 31 /* Max requests done for a 8k nand page size */ 37 /* Max ECC buffer length */ 243 struct stm32_fmc2_nand nand; member 278 struct stm32_fmc2_nfc *fmc2 = to_stm32_nfc(chip->controller); in stm32_fmc2_timings_init() 279 struct stm32_fmc2_nand *nand = to_fmc2_nand(chip); in stm32_fmc2_timings_init() local 280 struct stm32_fmc2_timings *timings = &nand->timings; in stm32_fmc2_timings_init() 281 u32 pcr = readl_relaxed(fmc2->io_base + FMC2_PCR); in stm32_fmc2_timings_init() [all …]
|
/Linux-v5.4/include/linux/mtd/ |
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 20 #include <linux/mtd/nand.h> 28 /* The maximum number of NAND chips in an array */ 49 * Standard NAND flash commands 72 #define NAND_CMD_NONE -1 81 #define NAND_DATA_IFACE_CHECK_ONLY -1 103 * Constants for Hardware ECC 105 /* Reset Hardware ECC for read */ [all …]
|
/Linux-v5.4/drivers/mtd/nand/raw/atmel/ |
D | nand-controller.c | 1 // SPDX-License-Identifier: GPL-2.0 6 * Author: Boris Brezillon <boris.brezillon@free-electrons.com> 13 * Derived from drivers/mtd/nand/autcpu12.c (removed in v3.8) 20 * Add Hardware ECC support for AT91SAM9260 / AT91SAM9263 23 * Derived from Das U-Boot source code 24 * (u-boot-1.1.5/board/atmel/at91sam9263ek/nand.c) 27 * Add Programmable Multibit ECC support for various AT91 SoC 30 * Add Nand Flash Controller support for SAMA5 SoC 38 * - atmel_nand_: all generic structures/functions 39 * - atmel_smc_nand_: all structures/functions specific to the SMC interface [all …]
|
/Linux-v5.4/arch/arm/boot/dts/ |
D | at91-kizboxmini.dts | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * at91-kizboxmini.dts - Device Tree file for Overkiz Kizbox mini board 7 /dts-v1/; 9 #include <dt-bindings/pwm/pwm.h> 17 stdout-path = &dbgu; 26 clock-frequency = <32768>; 30 clock-frequency = <12000000>; 35 nand0: nand@40000000 { 36 nand-bus-width = <8>; 37 nand-ecc-mode = "hw"; [all …]
|