xref: /rk3399_rockchip-uboot/include/linux/mtd/nand_ecc.h (revision 932394ac43e2e778e664eeb6e456fecd0fae6e59)
1*932394acSWolfgang Denk /*
2*932394acSWolfgang Denk  *  drivers/mtd/nand_ecc.h
3*932394acSWolfgang Denk  *
4*932394acSWolfgang Denk  *  Copyright (C) 2000 Steven J. Hill (sjhill@realitydiluted.com)
5*932394acSWolfgang Denk  *
6*932394acSWolfgang Denk  * $Id: nand_ecc.h,v 1.4 2004/06/17 02:35:02 dbrown Exp $
7*932394acSWolfgang Denk  *
8*932394acSWolfgang Denk  * This program is free software; you can redistribute it and/or modify
9*932394acSWolfgang Denk  * it under the terms of the GNU General Public License version 2 as
10*932394acSWolfgang Denk  * published by the Free Software Foundation.
11*932394acSWolfgang Denk  *
12*932394acSWolfgang Denk  * This file is the header for the ECC algorithm.
13*932394acSWolfgang Denk  */
14*932394acSWolfgang Denk 
15*932394acSWolfgang Denk #ifndef __MTD_NAND_ECC_H__
16*932394acSWolfgang Denk #define __MTD_NAND_ECC_H__
17*932394acSWolfgang Denk 
18*932394acSWolfgang Denk struct mtd_info;
19*932394acSWolfgang Denk 
20*932394acSWolfgang Denk /*
21*932394acSWolfgang Denk  * Calculate 3 byte ECC code for 256 byte block
22*932394acSWolfgang Denk  */
23*932394acSWolfgang Denk int nand_calculate_ecc(struct mtd_info *mtd, const u_char *dat, u_char *ecc_code);
24*932394acSWolfgang Denk 
25*932394acSWolfgang Denk /*
26*932394acSWolfgang Denk  * Detect and correct a 1 bit error for 256 byte block
27*932394acSWolfgang Denk  */
28*932394acSWolfgang Denk int nand_correct_data(struct mtd_info *mtd, u_char *dat, u_char *read_ecc, u_char *calc_ecc);
29*932394acSWolfgang Denk 
30*932394acSWolfgang Denk #endif /* __MTD_NAND_ECC_H__ */
31