Home
last modified time | relevance | path

Searched refs:nand (Results 1 – 25 of 563) sorted by relevance

12345678910>>...23

/Linux-v4.19/include/linux/mtd/
Dnand.h152 int (*erase)(struct nand_device *nand, const struct nand_pos *pos);
153 int (*markbad)(struct nand_device *nand, const struct nand_pos *pos);
154 bool (*isbad)(struct nand_device *nand, const struct nand_pos *pos);
220 static inline struct mtd_info *nanddev_to_mtd(struct nand_device *nand) in nanddev_to_mtd() argument
222 return &nand->mtd; in nanddev_to_mtd()
231 static inline unsigned int nanddev_bits_per_cell(const struct nand_device *nand) in nanddev_bits_per_cell() argument
233 return nand->memorg.bits_per_cell; in nanddev_bits_per_cell()
242 static inline size_t nanddev_page_size(const struct nand_device *nand) in nanddev_page_size() argument
244 return nand->memorg.pagesize; in nanddev_page_size()
254 nanddev_per_page_oobsize(const struct nand_device *nand) in nanddev_per_page_oobsize() argument
[all …]
/Linux-v4.19/drivers/mtd/nand/
Dcore.c22 bool nanddev_isbad(struct nand_device *nand, const struct nand_pos *pos) in nanddev_isbad() argument
24 if (nanddev_bbt_is_initialized(nand)) { in nanddev_isbad()
28 entry = nanddev_bbt_pos_to_entry(nand, pos); in nanddev_isbad()
29 status = nanddev_bbt_get_block_status(nand, entry); in nanddev_isbad()
32 if (nand->ops->isbad(nand, pos)) in nanddev_isbad()
37 nanddev_bbt_set_block_status(nand, entry, status); in nanddev_isbad()
47 return nand->ops->isbad(nand, pos); in nanddev_isbad()
61 int nanddev_markbad(struct nand_device *nand, const struct nand_pos *pos) in nanddev_markbad() argument
63 struct mtd_info *mtd = nanddev_to_mtd(nand); in nanddev_markbad()
67 if (nanddev_isbad(nand, pos)) in nanddev_markbad()
[all …]
Dbbt.c23 int nanddev_bbt_init(struct nand_device *nand) in nanddev_bbt_init() argument
26 unsigned int nblocks = nanddev_neraseblocks(nand); in nanddev_bbt_init()
30 nand->bbt.cache = kzalloc(nwords, GFP_KERNEL); in nanddev_bbt_init()
31 if (!nand->bbt.cache) in nanddev_bbt_init()
44 void nanddev_bbt_cleanup(struct nand_device *nand) in nanddev_bbt_cleanup() argument
46 kfree(nand->bbt.cache); in nanddev_bbt_cleanup()
59 int nanddev_bbt_update(struct nand_device *nand) in nanddev_bbt_update() argument
73 int nanddev_bbt_get_block_status(const struct nand_device *nand, in nanddev_bbt_get_block_status() argument
77 unsigned long *pos = nand->bbt.cache + in nanddev_bbt_get_block_status()
82 if (entry >= nanddev_neraseblocks(nand)) in nanddev_bbt_get_block_status()
[all …]
/Linux-v4.19/drivers/mtd/nand/raw/
Djz4740_nand.c83 struct jz_nand *nand = mtd_to_jz_nand(mtd); in jz_nand_select_chip() local
88 ctrl = readl(nand->base + JZ_REG_NAND_CTRL); in jz_nand_select_chip()
94 banknr = nand->banks[chipnr] - 1; in jz_nand_select_chip()
95 chip->IO_ADDR_R = nand->bank_base[banknr]; in jz_nand_select_chip()
96 chip->IO_ADDR_W = nand->bank_base[banknr]; in jz_nand_select_chip()
98 writel(ctrl, nand->base + JZ_REG_NAND_CTRL); in jz_nand_select_chip()
100 nand->selected_bank = banknr; in jz_nand_select_chip()
105 struct jz_nand *nand = mtd_to_jz_nand(mtd); in jz_nand_cmd_ctrl() local
108 void __iomem *bank_base = nand->bank_base[nand->selected_bank]; in jz_nand_cmd_ctrl()
110 BUG_ON(nand->selected_bank < 0); in jz_nand_cmd_ctrl()
[all …]
Ddocg4.c267 struct nand_chip *nand = mtd_to_nand(mtd); in docg4_read_buf() local
272 p[i] = readw(nand->IO_ADDR_R); in docg4_read_buf()
278 struct nand_chip *nand = mtd_to_nand(mtd); in docg4_write_buf16() local
283 writew(p[i], nand->IO_ADDR_W); in docg4_write_buf16()
319 static int docg4_wait(struct mtd_info *mtd, struct nand_chip *nand) in docg4_wait() argument
322 struct docg4_priv *doc = nand_get_controller_data(nand); in docg4_wait()
343 struct nand_chip *nand = mtd_to_nand(mtd); in docg4_select_chip() local
344 struct docg4_priv *doc = nand_get_controller_data(nand); in docg4_select_chip()
362 struct nand_chip *nand = mtd_to_nand(mtd); in reset() local
363 struct docg4_priv *doc = nand_get_controller_data(nand); in reset()
[all …]
Dnuc900_nand.c85 struct nuc900_nand *nand = mtd_to_nuc900(mtd); in nuc900_nand_read_byte() local
87 ret = (unsigned char)read_data_reg(nand); in nuc900_nand_read_byte()
96 struct nuc900_nand *nand = mtd_to_nuc900(mtd); in nuc900_nand_read_buf() local
99 buf[i] = (unsigned char)read_data_reg(nand); in nuc900_nand_read_buf()
106 struct nuc900_nand *nand = mtd_to_nuc900(mtd); in nuc900_nand_write_buf() local
109 write_data_reg(nand, buf[i]); in nuc900_nand_write_buf()
112 static int nuc900_check_rb(struct nuc900_nand *nand) in nuc900_check_rb() argument
115 spin_lock(&nand->lock); in nuc900_check_rb()
116 val = __raw_readl(nand->reg + REG_SMISR); in nuc900_check_rb()
118 spin_unlock(&nand->lock); in nuc900_check_rb()
[all …]
Djz4780_nand.c76 struct jz4780_nand_chip *nand = to_jz4780_nand_chip(mtd); in jz4780_nand_select_chip() local
77 struct jz4780_nand_controller *nfc = to_jz4780_nand_controller(nand->chip.controller); in jz4780_nand_select_chip()
92 struct jz4780_nand_chip *nand = to_jz4780_nand_chip(mtd); in jz4780_nand_cmd_ctrl() local
93 struct jz4780_nand_controller *nfc = to_jz4780_nand_controller(nand->chip.controller); in jz4780_nand_cmd_ctrl()
114 struct jz4780_nand_chip *nand = to_jz4780_nand_chip(mtd); in jz4780_nand_dev_ready() local
116 return !gpiod_get_value_cansleep(nand->busy_gpio); in jz4780_nand_dev_ready()
121 struct jz4780_nand_chip *nand = to_jz4780_nand_chip(mtd); in jz4780_nand_ecc_hwctl() local
123 nand->reading = (mode == NAND_ECC_READ); in jz4780_nand_ecc_hwctl()
129 struct jz4780_nand_chip *nand = to_jz4780_nand_chip(mtd); in jz4780_nand_ecc_calculate() local
130 struct jz4780_nand_controller *nfc = to_jz4780_nand_controller(nand->chip.controller); in jz4780_nand_ecc_calculate()
[all …]
Dsunxi_nand.c201 struct nand_chip nand; member
214 static inline struct sunxi_nand_chip *to_sunxi_nand(struct nand_chip *nand) in to_sunxi_nand() argument
216 return container_of(nand, struct sunxi_nand_chip, nand); in to_sunxi_nand()
347 struct nand_chip *nand = mtd_to_nand(mtd); in sunxi_nfc_dma_op_prepare() local
348 struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller); in sunxi_nfc_dma_op_prepare()
395 struct nand_chip *nand = mtd_to_nand(mtd); in sunxi_nfc_dma_op_cleanup() local
396 struct sunxi_nfc *nfc = to_sunxi_nfc(nand->controller); in sunxi_nfc_dma_op_cleanup()
405 struct nand_chip *nand = mtd_to_nand(mtd); in sunxi_nfc_dev_ready() local
406 struct sunxi_nand_chip *sunxi_nand = to_sunxi_nand(nand); in sunxi_nfc_dev_ready()
407 struct sunxi_nfc *nfc = to_sunxi_nfc(sunxi_nand->nand.controller); in sunxi_nfc_dev_ready()
[all …]
Dmtk_nand.c131 struct nand_chip nand; member
181 static inline struct mtk_nfc_nand_chip *to_mtk_nand(struct nand_chip *nand) in to_mtk_nand() argument
183 return container_of(nand, struct mtk_nfc_nand_chip, nand); in to_mtk_nand()
394 struct nand_chip *nand = mtd_to_nand(mtd); in mtk_nfc_select_chip() local
395 struct mtk_nfc *nfc = nand_get_controller_data(nand); in mtk_nfc_select_chip()
396 struct mtk_nfc_nand_chip *mtk_nand = to_mtk_nand(nand); in mtk_nfc_select_chip()
595 struct mtk_nfc_nand_chip *nand = to_mtk_nand(chip); in mtk_nfc_bad_mark_swap() local
596 u32 bad_pos = nand->bad_mark.pos; in mtk_nfc_bad_mark_swap()
599 bad_pos += nand->bad_mark.sec * mtk_data_len(chip); in mtk_nfc_bad_mark_swap()
601 bad_pos += nand->bad_mark.sec * chip->ecc.size; in mtk_nfc_bad_mark_swap()
[all …]
/Linux-v4.19/Documentation/devicetree/bindings/mtd/
Ddenali-nand.txt5 "altr,socfpga-denali-nand" - for Altera SOCFPGA
6 "socionext,uniphier-denali-nand-v5a" - for Socionext UniPhier (v5a)
7 "socionext,uniphier-denali-nand-v5b" - for Socionext UniPhier (v5b)
13 - clock-names: should contain "nand", "nand_x", "ecc"
16 - nand-ecc-step-size: see nand.txt for details. If present, the value must be
17 512 for "altr,socfpga-denali-nand"
18 1024 for "socionext,uniphier-denali-nand-v5a"
19 1024 for "socionext,uniphier-denali-nand-v5b"
20 - nand-ecc-strength: see nand.txt for details. Valid values are:
21 8, 15 for "altr,socfpga-denali-nand"
[all …]
Dmarvell-nand.txt5 * "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)
23 "marvell,armada-8k-nand[-controller]" compatibles).
28 This property is only used with "marvell,pxa3xx-nand[-controller]"
31 This property is only used with "marvell,pxa3xx-nand[-controller]"
39 - nand-rb: see nand.txt (0-1).
[all …]
Dsamsung-s3c2410.txt5 "samsung,s3c2410-nand"
6 "samsung,s3c2412-nand"
7 "samsung,s3c2440-nand"
9 - #address-cells, #size-cells : see nand.txt
10 - clocks : phandle to the nand controller clock
11 - clock-names : must contain "nand"
14 Child nodes representing the available nand chips.
17 - nand-ecc-mode : see nand.txt
18 - nand-on-flash-bbt : see nand.txt
26 nand-controller@4e000000 {
[all …]
Dnvidia-tegra20-nand.txt5 - "nvidia,tegra20-nand"
11 - nand
15 - nand
25 - nand-ecc-mode: String, operation mode of the NAND ecc mode. Currently only
27 - nand-ecc-algo: string, algorithm of NAND ECC.
29 - nand-bus-width : See nand.txt
30 - nand-on-flash-bbt: See nand.txt
31 - nand-ecc-strength: integer representing the number of bits to correct
36 - nand-ecc-maximize: See nand.txt
37 - nand-is-boot-medium: Makes sure only ECC strengths supported by the boot ROM
[all …]
Dmxc-nand.txt4 - compatible: "fsl,imxXX-nand"
7 - nand-bus-width: see nand.txt
8 - nand-ecc-mode: see nand.txt
9 - nand-on-flash-bbt: see nand.txt
13 nand@d8000000 {
14 compatible = "fsl,imx27-nand";
17 nand-bus-width = <8>;
18 nand-ecc-mode = "hw";
Dvf610-nfc.txt10 - #address-cells: shall be set to 1. Encode the nand CS.
23 Children nodes represent the available nand chips. Currently the driver can
28 - nand-bus-width: see nand.txt
29 - nand-ecc-mode: see nand.txt
32 - nand-ecc-strength: supported strengths are 24 and 32 bit (see nand.txt)
33 - nand-ecc-step-size: step size equals page size, currently only 2k pages are
35 - nand-on-flash-bbt: see nand.txt
39 nfc: nand@400e0000 {
50 nand@0 {
53 nand-bus-width = <8>;
[all …]
Dsunxi-nand.txt4 - compatible : "allwinner,sun4i-a10-nand".
6 - interrupts : shall define the nand controller interrupt.
7 - #address-cells: shall be set to 1. Encode the nand CS.
9 - clocks : shall reference nand controller clocks.
10 - clock-names : nand controller internal clock names. Shall contain :
12 * "mod" : nand controller clock
19 Children nodes represent the available nand chips.
25 - nand-ecc-mode : one of the supported ECC modes ("hw", "soft", "soft_bch" or
28 see Documentation/devicetree/bindings/mtd/nand.txt for generic bindings.
32 nfc: nand@1c03000 {
[all …]
Dhisi504-nand.txt10 - nand-bus-width: See nand.txt.
11 - nand-ecc-mode: Support none and hw ecc mode.
17 - nand-ecc-strength: Number of bits to correct per ECC step.
18 - nand-ecc-step-size: Number of data bytes covered by a single ECC step.
22 - nand-ecc-strength = <16>, nand-ecc-step-size = <1024>
29 nand: nand@4020000 {
33 nand-bus-width = <8>;
34 nand-ecc-mode = "hw";
35 nand-ecc-strength = <16>;
36 nand-ecc-step-size = <1024>;
Dqcom_nandc.txt5 * "qcom,ipq806x-nand" - for EBI2 NAND controller being used in IPQ806x
7 * "qcom,ipq4019-nand" - for QPIC NAND controller v1.4.0 being used in
9 * "qcom,ipq8074-nand" - for QPIC NAND controller v1.5.0 being used in
50 - nand-bus-width: see nand.txt
51 - nand-ecc-strength: see nand.txt. If not specified, then ECC strength will
61 nand-controller@1ac00000 {
62 compatible = "qcom,ipq806x-nand";
77 nand@0 {
80 nand-ecc-strength = <4>;
81 nand-bus-width = <8>;
[all …]
Dtango-nand.txt5 - compatible: "sigma,smp8758-nand"
14 See Documentation/devicetree/bindings/mtd/nand.txt for generic bindings.
18 nandc: nand-controller@2c000 {
19 compatible = "sigma,smp8758-nand";
27 nand@0 {
29 nand-ecc-strength = <14>;
30 nand-ecc-step-size = <1024>;
33 nand@1 {
35 nand-ecc-strength = <14>;
36 nand-ecc-step-size = <1024>;
Dbrcm,brcmnand.txt36 ranges. Should contain "nand" and (optionally)
37 "flash-dma" and/or "nand-cache".
42 May be "nand", if the SoC has the individual NAND
50 - clock-names : "nand" (required for the above clock)
51 - brcm,nand-has-wp : Some versions of this IP include a write-protect
73 * "brcm,nand-bcm63138"
76 - reg-names: (required) "nand-int-base"
78 * "brcm,nand-bcm6368"
79 - compatible: should contain "brcm,nand-bcm<soc>", "brcm,nand-bcm6368"
82 - reg-names: (required) "nand-int-base"
[all …]
Datmel-nand.txt12 "atmel,at91rm9200-nand-controller"
13 "atmel,at91sam9260-nand-controller"
14 "atmel,at91sam9261-nand-controller"
15 "atmel,at91sam9g45-nand-controller"
16 "atmel,sama5d3-nand-controller"
48 Documentation/devicetree/bindings/mtd/{common,nand}.txt also apply to the NAND
97 nand_controller: nand-controller {
98 compatible = "atmel,sama5d3-nand-controller";
106 nand@3 {
124 "atmel,at91rm9200-nand"
[all …]
Doxnas-nand.txt3 Please refer to nand.txt for generic information regarding MTD NAND bindings.
6 - compatible: "oxsemi,ox820-nand"
15 nandc: nand-controller@41000000 {
16 compatible = "oxsemi,ox820-nand";
23 nand@0 {
27 nand-ecc-mode = "soft";
28 nand-ecc-algo = "hamming";
/Linux-v4.19/drivers/mtd/nand/spi/
Dcore.c26 struct nand_device *nand = spinand_to_nand(spinand); in spinand_cache_op_adjust_colum() local
29 if (nand->memorg.planes_per_lun < 2) in spinand_cache_op_adjust_colum()
33 shift = fls(nand->memorg.pagesize); in spinand_cache_op_adjust_colum()
67 struct nand_device *nand = spinand_to_nand(spinand); in spinand_get_cfg() local
70 spinand->cur_target >= nand->memorg.ntargets)) in spinand_get_cfg()
79 struct nand_device *nand = spinand_to_nand(spinand); in spinand_set_cfg() local
83 spinand->cur_target >= nand->memorg.ntargets)) in spinand_set_cfg()
133 struct nand_device *nand = spinand_to_nand(spinand); in spinand_select_target() local
136 if (WARN_ON(target >= nand->memorg.ntargets)) in spinand_select_target()
142 if (nand->memorg.ntargets == 1) { in spinand_select_target()
[all …]
/Linux-v4.19/drivers/mtd/nand/raw/atmel/
Dnand-controller.c203 struct atmel_nand *nand);
205 int (*setup_data_interface)(struct atmel_nand *nand, int csline,
416 struct atmel_nand *nand = to_atmel_nand(chip); in atmel_nand_read_byte() local
418 return ioread8(nand->activecs->io.virt); in atmel_nand_read_byte()
424 struct atmel_nand *nand = to_atmel_nand(chip); in atmel_nand_read_word() local
426 return ioread16(nand->activecs->io.virt); in atmel_nand_read_word()
432 struct atmel_nand *nand = to_atmel_nand(chip); in atmel_nand_write_byte() local
435 iowrite16(byte | (byte << 8), nand->activecs->io.virt); in atmel_nand_write_byte()
437 iowrite8(byte, nand->activecs->io.virt); in atmel_nand_write_byte()
443 struct atmel_nand *nand = to_atmel_nand(chip); in atmel_nand_read_buf() local
[all …]
/Linux-v4.19/Documentation/devicetree/bindings/pinctrl/
Dlantiq,pinctrl-xway.txt51 ebu wait, nand ale, nand cs1, nand cle, spi, spi_cs1, spi_cs2, spi_cs3,
62 ebu clk, ebu cs1, ebu wait, nand ale, nand cs1, nand cle, nand rdy,
63 nand rd, spi, spi_cs1, spi_cs2, spi_cs3, spi_cs4, spi_cs5, spi_cs6,
83 ebu wait, nand ale, nand cs1, nand cle, spi_di, spi_do, spi_clk, spi_cs1,
94 ebu cs1, ebu wait, nand ale, nand cs1, nand cle, nand rdy, nand rd,
106 ebu cs1, ebu wait, nand ale, nand cs1, nand cle, nand rdy, nand rd,
120 exin0, exin1, exin2, exin4, nand ale, nand cs0, nand cs1, nand cle,
121 nand rdy, nand rd, nand_d0, nand_d1, nand_d2, nand_d3, nand_d4, nand_d5,
122 nand_d6, nand_d7, nand_d1, nand wr, nand wp, nand se, spi_di, spi_do,

12345678910>>...23