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