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