Home
last modified time | relevance | path

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

12345678910>>...25

/linux/drivers/mtd/nand/raw/
H A Dnuvoton-ma35d1-nand-controller.c148 struct ma35_nand_info *nand = nand_get_controller_data(chip); in ma35_clear_spare() local
152 writel(0xff, nand->regs + MA35_NFI_REG_NANDRA0); in ma35_clear_spare()
155 static inline void read_remaining_bytes(struct ma35_nand_info *nand, u32 *buf, in read_remaining_bytes() argument
158 u32 value = readl(nand->regs + MA35_NFI_REG_NANDRA0 + offset); in read_remaining_bytes()
170 struct ma35_nand_info *nand = nand_get_controller_data(chip); in ma35_read_spare() local
176 read_remaining_bytes(nand, buf, off, 4 - len, 1); in ma35_read_spare()
182 *buf++ = readl(nand->regs + MA35_NFI_REG_NANDRA0 + off + (i * 4)); in ma35_read_spare()
184 read_remaining_bytes(nand, buf, off + (size & ~3), size % 4, 0); in ma35_read_spare()
189 struct ma35_nand_info *nand = nand_get_controller_data(chip); in ma35_write_spare() local
195 writel(*buf++, nand->regs + MA35_NFI_REG_NANDRA0 + j); in ma35_write_spare()
[all …]
H A Dmeson_nand.c124 struct nand_chip nand; member
258 static struct meson_nfc_nand_chip *to_meson_nand(struct nand_chip *nand) in to_meson_nand() argument
260 return container_of(nand, struct meson_nfc_nand_chip, nand); in to_meson_nand()
263 static void meson_nfc_select_chip(struct nand_chip *nand, int chip) in meson_nfc_select_chip() argument
265 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_select_chip()
266 struct meson_nfc *nfc = nand_get_controller_data(nand); in meson_nfc_select_chip()
306 static int meson_nfc_is_boot_page(struct nand_chip *nand, int page) in meson_nfc_is_boot_page() argument
308 const struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_is_boot_page()
310 return (nand->options & NAND_IS_BOOT_MEDIUM) && in meson_nfc_is_boot_page()
315 static void meson_nfc_cmd_access(struct nand_chip *nand, int raw, bool dir, int page) in meson_nfc_cmd_access() argument
[all …]
H A Dmtk_nand.c126 struct nand_chip nand; member
178 static inline struct mtk_nfc_nand_chip *to_mtk_nand(struct nand_chip *nand) in to_mtk_nand() argument
180 return container_of(nand, struct mtk_nfc_nand_chip, nand); in to_mtk_nand()
499 static void mtk_nfc_select_target(struct nand_chip *nand, unsigned int cs) in mtk_nfc_select_target() argument
501 struct mtk_nfc *nfc = nand_get_controller_data(nand); in mtk_nfc_select_target()
502 struct mtk_nfc_nand_chip *mtk_nand = to_mtk_nand(nand); in mtk_nfc_select_target()
504 mtk_nfc_hw_runtime_config(nand_to_mtd(nand)); in mtk_nfc_select_target()
661 struct mtk_nfc_nand_chip *nand = to_mtk_nand(chip); in mtk_nfc_bad_mark_swap() local
662 u32 bad_pos = nand->bad_mark.pos; in mtk_nfc_bad_mark_swap()
665 bad_pos += nand->bad_mark.sec * mtk_data_len(chip); in mtk_nfc_bad_mark_swap()
[all …]
H A Dtegra_nand.c463 struct tegra_nand_chip *nand = to_tegra_chip(chip); in tegra_nand_select_target() local
466 ctrl->cur_cs = nand->cs[die_nr]; in tegra_nand_select_target()
483 struct tegra_nand_chip *nand = to_tegra_chip(chip); in tegra_nand_hw_ecc() local
486 writel_relaxed(nand->bch_config, ctrl->regs + BCH_CONFIG); in tegra_nand_hw_ecc()
491 writel_relaxed(nand->config_ecc, ctrl->regs + CONFIG); in tegra_nand_hw_ecc()
493 writel_relaxed(nand->config, ctrl->regs + CONFIG); in tegra_nand_hw_ecc()
660 struct tegra_nand_chip *nand = to_tegra_chip(chip); in tegra_nand_read_page_hwecc() local
728 u8 *oob = chip->oob_poi + nand->ecc.offset + in tegra_nand_read_page_hwecc()
919 struct tegra_nand_chip *nand = to_tegra_chip(chip); in tegra_nand_attach_chip() local
944 nand->config |= CONFIG_BUS_WIDTH_16; in tegra_nand_attach_chip()
[all …]
H A Dcafe_nand.c61 struct nand_chip nand; member
619 cafe->nand.bbt_td = &cafe_bbt_main_descr_2048; in cafe_nand_attach_chip()
620 cafe->nand.bbt_md = &cafe_bbt_mirror_descr_2048; in cafe_nand_attach_chip()
622 cafe->nand.bbt_td = &cafe_bbt_main_descr_512; in cafe_nand_attach_chip()
623 cafe->nand.bbt_md = &cafe_bbt_mirror_descr_512; in cafe_nand_attach_chip()
632 cafe->nand.ecc.engine_type = NAND_ECC_ENGINE_TYPE_ON_HOST; in cafe_nand_attach_chip()
633 cafe->nand.ecc.placement = NAND_ECC_PLACEMENT_INTERLEAVED; in cafe_nand_attach_chip()
634 cafe->nand.ecc.size = mtd->writesize; in cafe_nand_attach_chip()
635 cafe->nand.ecc.bytes = 14; in cafe_nand_attach_chip()
636 cafe->nand.ecc.strength = 4; in cafe_nand_attach_chip()
[all …]
/linux/drivers/mtd/nand/
H A Decc-sw-bch.c23 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()
30 bch_encode(engine_conf->bch, buf, nand->ecc.ctx.conf.step_size, code); in nand_ecc_sw_bch_calculate()
49 int nand_ecc_sw_bch_correct(struct nand_device *nand, unsigned char *buf, in nand_ecc_sw_bch_correct() argument
52 struct nand_ecc_sw_bch_conf *engine_conf = nand->ecc.ctx.priv; in nand_ecc_sw_bch_correct()
53 unsigned int step_size = nand->ecc.ctx.conf.step_size; in nand_ecc_sw_bch_correct()
82 static void nand_ecc_sw_bch_cleanup(struct nand_device *nand) in nand_ecc_sw_bch_cleanup() argument
84 struct nand_ecc_sw_bch_conf *engine_conf = nand->ecc.ctx.priv; in nand_ecc_sw_bch_cleanup()
108 static int nand_ecc_sw_bch_init(struct nand_device *nand) in nand_ecc_sw_bch_init() argument
110 struct nand_ecc_sw_bch_conf *engine_conf = nand->ecc.ctx.priv; in nand_ecc_sw_bch_init()
[all …]
H A 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()
28 nand->bbt.cache = bitmap_zalloc(nblocks * bits_per_block, GFP_KERNEL); in nanddev_bbt_init()
29 if (!nand->bbt.cache) in nanddev_bbt_init()
42 void nanddev_bbt_cleanup(struct nand_device *nand) in nanddev_bbt_cleanup() argument
44 bitmap_free(nand->bbt.cache); in nanddev_bbt_cleanup()
57 int nanddev_bbt_update(struct nand_device *nand) in nanddev_bbt_update() argument
71 int nanddev_bbt_get_block_status(const struct nand_device *nand, in nanddev_bbt_get_block_status() argument
75 unsigned long *pos = nand->bbt.cache + in nanddev_bbt_get_block_status()
80 if (entry >= nanddev_neraseblocks(nand)) in nanddev_bbt_get_block_status()
[all …]
H A Decc-realtek.c99 static inline void *nand_to_ctx(struct nand_device *nand) in nand_to_ctx() argument
101 return nand->ecc.ctx.priv; in nand_to_ctx()
104 static inline struct rtl_ecc_engine *nand_to_rtlc(struct nand_device *nand) in nand_to_rtlc() argument
106 struct nand_ecc_engine *eng = nand->ecc.engine; in nand_to_rtlc()
114 struct nand_device *nand = mtd_to_nanddev(mtd); in rtl_ecc_ooblayout_ecc() local
115 struct rtl_ecc_ctx *ctx = nand_to_ctx(nand); in rtl_ecc_ooblayout_ecc()
129 struct nand_device *nand = mtd_to_nanddev(mtd); in rtl_ecc_ooblayout_free() local
130 struct rtl_ecc_ctx *ctx = nand_to_ctx(nand); in rtl_ecc_ooblayout_free()
222 static int rtl_ecc_prepare_io_req(struct nand_device *nand, struct nand_page_io_req *req) in rtl_ecc_prepare_io_req() argument
224 struct rtl_ecc_engine *rtlc = nand_to_rtlc(nand); in rtl_ecc_prepare_io_req()
[all …]
H A Decc-sw-hamming.c362 int nand_ecc_sw_hamming_calculate(struct nand_device *nand, in nand_ecc_sw_hamming_calculate() argument
365 struct nand_ecc_sw_hamming_conf *engine_conf = nand->ecc.ctx.priv; in nand_ecc_sw_hamming_calculate()
366 unsigned int step_size = nand->ecc.ctx.conf.step_size; in nand_ecc_sw_hamming_calculate()
454 int nand_ecc_sw_hamming_correct(struct nand_device *nand, unsigned char *buf, in nand_ecc_sw_hamming_correct() argument
458 struct nand_ecc_sw_hamming_conf *engine_conf = nand->ecc.ctx.priv; in nand_ecc_sw_hamming_correct()
459 unsigned int step_size = nand->ecc.ctx.conf.step_size; in nand_ecc_sw_hamming_correct()
467 int nand_ecc_sw_hamming_init_ctx(struct nand_device *nand) in nand_ecc_sw_hamming_init_ctx() argument
469 struct nand_ecc_props *conf = &nand->ecc.ctx.conf; in nand_ecc_sw_hamming_init_ctx()
471 struct mtd_info *mtd = nanddev_to_mtd(nand); in nand_ecc_sw_hamming_init_ctx()
492 conf->step_size = nand->ecc.user_conf.step_size; in nand_ecc_sw_hamming_init_ctx()
[all …]
/linux/Documentation/devicetree/bindings/mtd/
H A 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-controller.yaml
30 - nand-on-flash-bbt: See nand-controller.yaml
31 - nand-ecc-strength: integer representing the number of bits to correct
36 - nand-ecc-maximize: See nand-controller.yaml
37 - nand-is-boot-medium: Makes sure only ECC strengths supported by the boot ROM
[all …]
H A Dhisi504-nand.txt10 - nand-bus-width: See nand-controller.yaml.
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>;
H A 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"
17 "microchip,sam9x60-nand-controller"
89 nand_controller: nand-controller {
90 compatible = "atmel,sama5d3-nand-controller";
98 nand@3 {
116 "atmel,at91rm9200-nand"
[all …]
H A Dmxic-nand.txt5 - compatible: should be "mxic,multi-itfc-v009-nand-controller"
17 See Documentation/devicetree/bindings/mtd/nand-controller.yaml
22 nand: nand-controller@43c30000 {
23 compatible = "mxic,multi-itfc-v009-nand-controller";
31 nand@0 {
33 nand-ecc-mode = "soft";
34 nand-ecc-algo = "bch";
H A Dfsmc-nand.txt5 - compatible : "st,spear600-fsmc-nand", "stericsson,fsmc-nand"
12 - nand-skip-bbtscan: Indicates the BBT scanning should be skipped
33 - nand-ecc-mode : see nand-controller.yaml
34 - nand-ecc-strength : see nand-controller.yaml
35 - nand-ecc-step-size : see nand-controller.yaml
43 compatible = "st,spear600-fsmc-nand";
53 nand-skip-bbtscan;
/linux/drivers/mtd/nand/raw/atmel/
H A Dnand-controller.c201 struct atmel_nand *nand);
203 int (*setup_interface)(struct atmel_nand *nand, int csline,
205 int (*exec_op)(struct atmel_nand *nand,
471 static void atmel_nand_data_in(struct atmel_nand *nand, void *buf, in atmel_nand_data_in() argument
476 nc = to_nand_controller(nand->base.controller); in atmel_nand_data_in()
485 !atmel_nand_dma_transfer(nc, buf, nand->activecs->io.dma, len, in atmel_nand_data_in()
489 if ((nand->base.options & NAND_BUSWIDTH_16) && !force_8bit) in atmel_nand_data_in()
490 ioread16_rep(nand->activecs->io.virt, buf, len / 2); in atmel_nand_data_in()
492 ioread8_rep(nand->activecs->io.virt, buf, len); in atmel_nand_data_in()
495 static void atmel_nand_data_out(struct atmel_nand *nand, const void *buf, in atmel_nand_data_out() argument
[all …]
/linux/Documentation/devicetree/bindings/pinctrl/
H A Dmarvell,kirkwood-pinctrl.txt24 mpp0 0 gpio, nand(io2), spi(cs)
25 mpp1 1 gpo, nand(io3), spi(mosi)
26 mpp2 2 gpo, nand(io4), spi(sck)
27 mpp3 3 gpo, nand(io5), spi(miso)
28 mpp4 4 gpio, nand(io6), uart0(rxd), ptp(clk)
29 mpp5 5 gpo, nand(io7), uart0(txd), ptp(trig)
45 mpp18 18 gpo, nand(io0)
46 mpp19 19 gpo, nand(io1)
62 mpp0 0 gpio, nand(io2), spi(cs)
63 mpp1 1 gpo, nand(io3), spi(mosi)
[all …]
H A Dlantiq,pinctrl-xway.txt56 ebu wait, nand ale, nand cs1, nand cle, spi_di, spi_do, spi_clk, spi_cs1,
67 ebu cs1, ebu wait, nand ale, nand cs1, nand cle, nand rdy, nand rd,
79 ebu cs1, ebu wait, nand ale, nand cs1, nand cle, nand rdy, nand rd,
93 exin0, exin1, exin2, exin4, nand ale, nand cs0, nand cs1, nand cle,
94 nand rdy, nand rd, nand_d0, nand_d1, nand_d2, nand_d3, nand_d4, nand_d5,
95 nand_d6, nand_d7, nand_d1, nand wr, nand wp, nand se, spi_di, spi_do,
H A Dmarvell,orion-pinctrl.txt55 mpp6 6 gpio, pci(req5), nand(re0), sata0(act)
56 mpp7 7 gpio, pci(gnt5), nand(we0), sata1(act)
61 mpp12 12 gpio, ge(txd4), nand(re1), sata0(ledprsnt)
62 mpp13 13 gpio, ge(txd5), nand(we1), sata1(ledprsnt)
63 mpp14 14 gpio, ge(txd6), nand(re2), sata0(ledact)
64 mpp15 15 gpio, ge(txd7), nand(we2), sata1(ledact)
80 mpp6 6 gpio, pci(req5), nand(re0)
81 mpp7 7 gpio, pci(gnt5), nand(we0)
86 mpp12 12 gpio, ge(txd4), nand(re1)
87 mpp13 13 gpio, ge(txd5), nand(we1)
[all …]
/linux/drivers/mtd/nand/raw/ingenic/
H A Dingenic_nand_drv.c143 struct ingenic_nand *nand = to_ingenic_nand(nand_to_mtd(chip)); in ingenic_nand_ecc_hwctl() local
145 nand->reading = (mode == NAND_ECC_READ); in ingenic_nand_ecc_hwctl()
151 struct ingenic_nand *nand = to_ingenic_nand(nand_to_mtd(chip)); in ingenic_nand_ecc_calculate() local
152 struct ingenic_nfc *nfc = to_ingenic_nfc(nand->chip.controller); in ingenic_nand_ecc_calculate()
159 if (nand->reading) in ingenic_nand_ecc_calculate()
162 params.size = nand->chip.ecc.size; in ingenic_nand_ecc_calculate()
163 params.bytes = nand->chip.ecc.bytes; in ingenic_nand_ecc_calculate()
164 params.strength = nand->chip.ecc.strength; in ingenic_nand_ecc_calculate()
172 struct ingenic_nand *nand = to_ingenic_nand(nand_to_mtd(chip)); in ingenic_nand_ecc_correct() local
173 struct ingenic_nfc *nfc = to_ingenic_nfc(nand->chip.controller); in ingenic_nand_ecc_correct()
[all …]
/linux/include/linux/mtd/
H A Dnand-ecc-sw-bch.h37 int nand_ecc_sw_bch_calculate(struct nand_device *nand,
39 int nand_ecc_sw_bch_correct(struct nand_device *nand, unsigned char *buf,
41 int nand_ecc_sw_bch_init_ctx(struct nand_device *nand);
42 void nand_ecc_sw_bch_cleanup_ctx(struct nand_device *nand);
47 static inline int nand_ecc_sw_bch_calculate(struct nand_device *nand, in nand_ecc_sw_bch_calculate() argument
54 static inline int nand_ecc_sw_bch_correct(struct nand_device *nand, in nand_ecc_sw_bch_correct() argument
62 static inline int nand_ecc_sw_bch_init_ctx(struct nand_device *nand) in nand_ecc_sw_bch_init_ctx() argument
67 static inline void nand_ecc_sw_bch_cleanup_ctx(struct nand_device *nand) {} in nand_ecc_sw_bch_cleanup_ctx() argument
H A Dnand-ecc-sw-hamming.h34 int nand_ecc_sw_hamming_init_ctx(struct nand_device *nand);
35 void nand_ecc_sw_hamming_cleanup_ctx(struct nand_device *nand);
38 int nand_ecc_sw_hamming_calculate(struct nand_device *nand,
44 int nand_ecc_sw_hamming_correct(struct nand_device *nand, unsigned char *buf,
50 static inline int nand_ecc_sw_hamming_init_ctx(struct nand_device *nand) in nand_ecc_sw_hamming_init_ctx() argument
55 static inline void nand_ecc_sw_hamming_cleanup_ctx(struct nand_device *nand) {} in nand_ecc_sw_hamming_cleanup_ctx() argument
64 static inline int nand_ecc_sw_hamming_calculate(struct nand_device *nand, in nand_ecc_sw_hamming_calculate() argument
79 static inline int nand_ecc_sw_hamming_correct(struct nand_device *nand, in nand_ecc_sw_hamming_correct() argument
/linux/drivers/spi/
H A Dspi-amlogic-spifc-a4.c218 static struct aml_sfc *nand_to_aml_sfc(struct nand_device *nand) in nand_to_aml_sfc() argument
220 struct nand_ecc_engine *eng = nand->ecc.engine; in nand_to_aml_sfc()
858 struct nand_device *nand = mtd_to_nanddev(mtd); in aml_sfc_layout_ecc() local
860 if (section >= nand->ecc.ctx.nsteps) in aml_sfc_layout_ecc()
872 struct nand_device *nand = mtd_to_nanddev(mtd); in aml_sfc_ooblayout_free() local
874 if (section >= nand->ecc.ctx.nsteps) in aml_sfc_ooblayout_free()
948 static int aml_sfc_ecc_init_ctx(struct nand_device *nand) in aml_sfc_ecc_init_ctx() argument
950 struct mtd_info *mtd = nanddev_to_mtd(nand); in aml_sfc_ecc_init_ctx()
951 struct aml_sfc *sfc = nand_to_aml_sfc(nand); in aml_sfc_ecc_init_ctx()
957 ecc_step_size = nand->ecc.user_conf.step_size; in aml_sfc_ecc_init_ctx()
[all …]
/linux/arch/arm/boot/dts/microchip/
H A Dat91-linea.dtsi61 nand: nand@3 { label
64 nand-bus-width = <8>;
65 nand-ecc-mode = "hw";
66 nand-ecc-strength = <4>;
67 nand-ecc-step-size = <512>;
68 nand-on-flash-bbt;
/linux/arch/mips/boot/dts/ni/
H A D169445.dts44 compatible = "ni,169445-nand-gpio";
52 compatible = "ni,169445-nand-gpio";
60 nand@0 {
61 compatible = "gpio-control-nand";
62 nand-on-flash-bbt;
63 nand-ecc-mode = "soft_bch";
64 nand-ecc-step-size = <512>;
65 nand-ecc-strength = <4>;
/linux/arch/mips/boot/dts/loongson/
H A Dloongson1c.dtsi104 nand: nand-controller@38000 { label
105 compatible = "loongson,ls1c-nand-controller";
107 reg-names = "nand", "nand-dma";
114 nand@0 {
116 label = "ls1x-nand";
117 nand-use-soft-ecc-engine;
118 nand-ecc-algo = "hamming";

12345678910>>...25