xref: /rk3399_rockchip-uboot/include/eeprom_field.h (revision 08ca213acadef61748dc62d48b0f5c4bed8b8c2d)
1*aa9e6044SNikita Kiryanov /*
2*aa9e6044SNikita Kiryanov  * (C) Copyright 2009-2016 CompuLab, Ltd.
3*aa9e6044SNikita Kiryanov  *
4*aa9e6044SNikita Kiryanov  * Authors: Nikita Kiryanov <nikita@compulab.co.il>
5*aa9e6044SNikita Kiryanov  *	    Igor Grinberg <grinberg@compulab.co.il>
6*aa9e6044SNikita Kiryanov  *
7*aa9e6044SNikita Kiryanov  * SPDX-License-Identifier:	GPL-2.0+
8*aa9e6044SNikita Kiryanov  */
9*aa9e6044SNikita Kiryanov 
10*aa9e6044SNikita Kiryanov #ifndef _FIELD_
11*aa9e6044SNikita Kiryanov #define _FIELD_
12*aa9e6044SNikita Kiryanov 
13*aa9e6044SNikita Kiryanov #define PRINT_FIELD_SEGMENT	"%-30s"
14*aa9e6044SNikita Kiryanov 
15*aa9e6044SNikita Kiryanov struct eeprom_field {
16*aa9e6044SNikita Kiryanov 	char *name;
17*aa9e6044SNikita Kiryanov 	int size;
18*aa9e6044SNikita Kiryanov 	unsigned char *buf;
19*aa9e6044SNikita Kiryanov 
20*aa9e6044SNikita Kiryanov 	void (*print)(const struct eeprom_field *eeprom_field);
21*aa9e6044SNikita Kiryanov 	int (*update)(struct eeprom_field *eeprom_field, char *value);
22*aa9e6044SNikita Kiryanov };
23*aa9e6044SNikita Kiryanov 
24*aa9e6044SNikita Kiryanov void eeprom_field_print_bin(const struct eeprom_field *field);
25*aa9e6044SNikita Kiryanov int eeprom_field_update_bin(struct eeprom_field *field, char *value);
26*aa9e6044SNikita Kiryanov 
27*aa9e6044SNikita Kiryanov void eeprom_field_print_bin_rev(const struct eeprom_field *field);
28*aa9e6044SNikita Kiryanov int eeprom_field_update_bin_rev(struct eeprom_field *field, char *value);
29*aa9e6044SNikita Kiryanov 
30*aa9e6044SNikita Kiryanov void eeprom_field_print_mac(const struct eeprom_field *field);
31*aa9e6044SNikita Kiryanov int eeprom_field_update_mac(struct eeprom_field *field, char *value);
32*aa9e6044SNikita Kiryanov 
33*aa9e6044SNikita Kiryanov void eeprom_field_print_ascii(const struct eeprom_field *field);
34*aa9e6044SNikita Kiryanov int eeprom_field_update_ascii(struct eeprom_field *field, char *value);
35*aa9e6044SNikita Kiryanov 
36*aa9e6044SNikita Kiryanov void eeprom_field_print_reserved(const struct eeprom_field *field);
37*aa9e6044SNikita Kiryanov int eeprom_field_update_reserved(struct eeprom_field *field, char *value);
38*aa9e6044SNikita Kiryanov 
39*aa9e6044SNikita Kiryanov #endif
40