xref: /rk3399_rockchip-uboot/include/linux/crc8.h (revision 456ecd08ec026e67a17a77baa3778c9f1b8e474d)
160d18d3fSSimon Glass /*
260d18d3fSSimon Glass  * Copyright (c) 2013 Google, Inc
360d18d3fSSimon Glass  *
460d18d3fSSimon Glass  * SPDX-License-Identifier:	GPL-2.0+
560d18d3fSSimon Glass  */
660d18d3fSSimon Glass 
760d18d3fSSimon Glass 
860d18d3fSSimon Glass #ifndef __linux_crc8_h
960d18d3fSSimon Glass #define __linux_crc8_h
1060d18d3fSSimon Glass 
1160d18d3fSSimon Glass /**
1260d18d3fSSimon Glass  * crc8() - Calculate and return CRC-8 of the data
1360d18d3fSSimon Glass  *
1460d18d3fSSimon Glass  * This uses an x^8 + x^2 + x + 1 polynomial.  A table-based algorithm would
1560d18d3fSSimon Glass  * be faster, but for only a few bytes it isn't worth the code size
1660d18d3fSSimon Glass  *
17*456ecd08SStefan Roese  * @crc_start: CRC8 start value
1860d18d3fSSimon Glass  * @vptr: Buffer to checksum
1960d18d3fSSimon Glass  * @len: Length of buffer in bytes
2060d18d3fSSimon Glass  * @return CRC8 checksum
2160d18d3fSSimon Glass  */
22*456ecd08SStefan Roese unsigned int crc8(unsigned int crc_start, const unsigned char *vptr, int len);
2360d18d3fSSimon Glass 
2460d18d3fSSimon Glass #endif
25