41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
| /* SPDX-License-Identifier: GPL-2.0+ */
 | |
| /*
 | |
|  * (C) Copyright 2013
 | |
|  * Corscience GmbH & Co. KG, <www.corscience.de>
 | |
|  * Andreas Bießmann <andreas.biessmann@corscience.de>
 | |
|  */
 | |
| #ifndef TRICORDER_EEPROM_H_
 | |
| #define TRICORDER_EEPROM_H_
 | |
| 
 | |
| #include <linux/compiler.h>
 | |
| 
 | |
| #define TRICORDER_EEPROM_MAGIC 0xc2a94f52
 | |
| #define TRICORDER_EEPROM_VERSION 1
 | |
| 
 | |
| #define TRICORDER_BOARD_NAME_LENGTH		12
 | |
| #define TRICORDER_BOARD_VERSION_LENGTH		4
 | |
| #define TRICORDER_BOARD_SERIAL_LENGTH		12
 | |
| #define TRICORDER_INTERFACE_VERSION_LENGTH	4
 | |
| 
 | |
| struct tricorder_eeprom {
 | |
| 	uint32_t magic;
 | |
| 	uint16_t length;
 | |
| 	uint16_t version;
 | |
| 	char board_name[TRICORDER_BOARD_NAME_LENGTH];
 | |
| 	char board_version[TRICORDER_BOARD_VERSION_LENGTH];
 | |
| 	char board_serial[TRICORDER_BOARD_SERIAL_LENGTH];
 | |
| 	char interface_version[TRICORDER_INTERFACE_VERSION_LENGTH];
 | |
| 	uint32_t crc32;
 | |
| } __packed;
 | |
| 
 | |
| #define TRICORDER_EEPROM_SIZE		sizeof(struct tricorder_eeprom)
 | |
| #define TRICORDER_EEPROM_CRC_SIZE	(TRICORDER_EEPROM_SIZE - \
 | |
| 					 sizeof(uint32_t))
 | |
| 
 | |
| /**
 | |
|  * @brief read eeprom information from a specific eeprom address
 | |
|  */
 | |
| int tricorder_get_eeprom(int addr, struct tricorder_eeprom *eeprom);
 | |
| 
 | |
| #endif /* TRICORDER_EEPROM_H_ */
 |