Home
last modified time | relevance | path

Searched refs:pmecc (Results 1 – 23 of 23) sorted by relevance

/OK3568_Linux_fs/kernel/drivers/mtd/nand/raw/atmel/
H A Dpmecc.c169 struct atmel_pmecc *pmecc; member
277 static int atmel_pmecc_prepare_user_req(struct atmel_pmecc *pmecc, in atmel_pmecc_prepare_user_req() argument
309 for (i = 0; i < pmecc->caps->nstrengths; i++) { in atmel_pmecc_prepare_user_req()
310 int nbytes, strength = pmecc->caps->strengths[i]; in atmel_pmecc_prepare_user_req()
343 atmel_pmecc_create_user(struct atmel_pmecc *pmecc, in atmel_pmecc_create_user() argument
350 ret = atmel_pmecc_prepare_user_req(pmecc, req); in atmel_pmecc_create_user()
369 user->pmecc = pmecc; in atmel_pmecc_create_user()
392 for (strength = 0; strength < pmecc->caps->nstrengths; strength++) { in atmel_pmecc_create_user()
393 if (pmecc->caps->strengths[strength] == req->ecc.strength) in atmel_pmecc_create_user()
419 const int *strengths = user->pmecc->caps->strengths; in get_strength()
[all …]
H A DMakefile2 obj-$(CONFIG_MTD_NAND_ATMEL) += atmel-nand-controller.o atmel-pmecc.o
5 atmel-pmecc-objs := pmecc.o
H A Dpmecc.h56 atmel_pmecc_create_user(struct atmel_pmecc *pmecc,
60 void atmel_pmecc_reset(struct atmel_pmecc *pmecc);
H A Dnand-controller.c165 struct atmel_pmecc_user *pmecc; member
224 struct atmel_pmecc *pmecc; member
799 ret = atmel_pmecc_enable(nand->pmecc, op); in atmel_nand_pmecc_enable()
812 atmel_pmecc_disable(nand->pmecc); in atmel_nand_pmecc_disable()
829 ret = atmel_pmecc_wait_rdy(nand->pmecc); in atmel_nand_pmecc_generate_eccbytes()
841 atmel_pmecc_get_generated_eccbytes(nand->pmecc, i, in atmel_nand_pmecc_generate_eccbytes()
864 ret = atmel_pmecc_wait_rdy(nand->pmecc); in atmel_nand_pmecc_correct_data()
877 ret = atmel_pmecc_correct_sector(nand->pmecc, i, databuf, in atmel_nand_pmecc_correct_data()
879 if (ret < 0 && !atmel_pmecc_correct_erased_chunks(nand->pmecc)) in atmel_nand_pmecc_correct_data()
918 atmel_pmecc_disable(nand->pmecc); in atmel_nand_pmecc_write_pg()
[all …]
/OK3568_Linux_fs/u-boot/tools/
H A Datmelimage.c37 } pmecc; variable
74 pmecc.use_pmecc = strtol(param, NULL, 10); in atmel_find_pmecc_parameter_in_token()
77 pmecc.sector_per_page = strtol(param, NULL, 10); in atmel_find_pmecc_parameter_in_token()
80 pmecc.spare_size = strtol(param, NULL, 10); in atmel_find_pmecc_parameter_in_token()
83 pmecc.ecc_bits = strtol(param, NULL, 10); in atmel_find_pmecc_parameter_in_token()
86 pmecc.sector_size = strtol(param, NULL, 10); in atmel_find_pmecc_parameter_in_token()
89 pmecc.ecc_offset = strtol(param, NULL, 10); in atmel_find_pmecc_parameter_in_token()
252 tmp |= (pmecc.ecc_offset & 0x1ff) << 18; in atmel_vrec_header()
254 switch (pmecc.sector_size) { in atmel_vrec_header()
264 pmecc.sector_size); in atmel_vrec_header()
[all …]
/OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/mtd/
H A Datmel-nand.txt57 "atmel,at91sam9g45-pmecc"
58 "atmel,sama5d4-pmecc"
59 "atmel,sama5d2-pmecc"
60 "microchip,sam9x60-pmecc"
80 pmecc: ecc-engine@ffffc070 {
81 compatible = "atmel,at91sam9g45-pmecc";
103 ecc-engine = <&pmecc>;
148 - atmel,has-pmecc : boolean to enable Programmable Multibit ECC hardware,
150 - atmel,pmecc-cap : error correct capability for Programmable Multibit ECC
153 - atmel,pmecc-sector-size : sector size for ECC computation. Supported values
[all …]
/OK3568_Linux_fs/u-boot/drivers/mtd/nand/raw/
H A Datmel_nand.c40 struct pmecc_regs __iomem *pmecc; member
170 value = pmecc_readl(host->pmecc, rem_port[sector].rem[i / 2]); in pmecc_gen_syndrome()
539 pmecc_writel(host->pmecc, ctrl, PMECC_CTRL_RST); in atmel_nand_pmecc_read_page()
540 pmecc_writel(host->pmecc, ctrl, PMECC_CTRL_DISABLE); in atmel_nand_pmecc_read_page()
541 pmecc_writel(host->pmecc, cfg, ((pmecc_readl(host->pmecc, cfg)) in atmel_nand_pmecc_read_page()
544 pmecc_writel(host->pmecc, ctrl, PMECC_CTRL_ENABLE); in atmel_nand_pmecc_read_page()
545 pmecc_writel(host->pmecc, ctrl, PMECC_CTRL_DATA); in atmel_nand_pmecc_read_page()
551 if (!(pmecc_readl(host->pmecc, sr) & PMECC_SR_BUSY)) in atmel_nand_pmecc_read_page()
562 stat = pmecc_readl(host->pmecc, isr); in atmel_nand_pmecc_read_page()
579 pmecc_writel(host->pmecc, ctrl, PMECC_CTRL_RST); in atmel_nand_pmecc_write_page()
[all …]
/OK3568_Linux_fs/u-boot/arch/arm/dts/
H A Dat91sam9x5cm.dtsi43 atmel,has-pmecc; /* Enable PMECC */
44 atmel,pmecc-cap = <2>;
45 atmel,pmecc-sector-size = <512>;
H A Dsama5d3xcm.dtsi76 atmel,has-pmecc;
77 atmel,pmecc-cap = <4>;
78 atmel,pmecc-sector-size = <512>;
H A Dsama5d3xcm_cmp.dtsi119 atmel,has-pmecc;
120 atmel,pmecc-cap = <4>;
121 atmel,pmecc-sector-size = <512>;
H A Dat91sam9n12ek.dts156 atmel,has-pmecc;
157 atmel,pmecc-cap = <2>;
158 atmel,pmecc-sector-size = <512>;
H A Dat91-sama5d3_xplained.dts253 atmel,has-pmecc;
254 atmel,pmecc-cap = <4>;
255 atmel,pmecc-sector-size = <512>;
H A Dat91-sama5d4_xplained.dts200 atmel,has-pmecc;
H A Dat91-sama5d4ek.dts255 atmel,has-pmecc;
H A Dat91sam9n12.dtsi1029 atmel,pmecc-lookup-table-offset = <0x0 0x8000>;
H A Dat91sam9x5.dtsi1226 atmel,pmecc-lookup-table-offset = <0x0 0x8000>;
H A Dsama5d3.dtsi1523 atmel,pmecc-lookup-table-offset = <0x0 0x8000>;
/OK3568_Linux_fs/kernel/arch/arm/boot/dts/
H A Dsam9x60.dtsi128 ecc-engine = <&pmecc>;
561 pmecc: ecc-engine@ffffe000 { label
562 compatible = "microchip,sam9x60-pmecc", "atmel,at91sam9g45-pmecc";
H A Dat91sam9n12.dtsi102 pmecc: ecc-engine@ffffe000 { label
103 compatible = "atmel,at91sam9g45-pmecc";
789 ecc-engine = <&pmecc>;
H A Dat91sam9x5.dtsi110 pmecc: ecc-engine@ffffe000 { label
111 compatible = "atmel,at91sam9g45-pmecc";
946 ecc-engine = <&pmecc>;
H A Dsama5d2.dtsi172 ecc-engine = <&pmecc>;
413 pmecc: ecc-engine@f8014070 { label
414 compatible = "atmel,sama5d2-pmecc";
H A Dsama5d3.dtsi456 pmecc: ecc-engine@ffffc070 { label
457 compatible = "atmel,at91sam9g45-pmecc";
1130 ecc-engine = <&pmecc>;
H A Dsama5d4.dtsi158 ecc-engine = <&pmecc>;
740 pmecc: ecc-engine@ffffc070 { label
741 compatible = "atmel,sama5d4-pmecc";