Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
06b4501e AG |
2 | /* |
3 | * Module: eeprom_93xx46 | |
4 | * platform description for 93xx46 EEPROMs. | |
5 | */ | |
e0552573 | 6 | #include <linux/gpio/consumer.h> |
3ca9b1ac | 7 | |
06b4501e AG |
8 | struct eeprom_93xx46_platform_data { |
9 | unsigned char flags; | |
10 | #define EE_ADDR8 0x01 /* 8 bit addr. cfg */ | |
11 | #define EE_ADDR16 0x02 /* 16 bit addr. cfg */ | |
12 | #define EE_READONLY 0x08 /* forbid writing */ | |
14374fbb EGP |
13 | #define EE_SIZE1K 0x10 /* 1 kb of data, that is a 93xx46 */ |
14 | #define EE_SIZE2K 0x20 /* 2 kb of data, that is a 93xx56 */ | |
15 | #define EE_SIZE4K 0x40 /* 4 kb of data, that is a 93xx66 */ | |
06b4501e | 16 | |
e1379b56 CT |
17 | unsigned int quirks; |
18 | /* Single word read transfers only; no sequential read. */ | |
19 | #define EEPROM_93XX46_QUIRK_SINGLE_WORD_READ (1 << 0) | |
20 | /* Instructions such as EWEN are (addrlen + 2) in length. */ | |
21 | #define EEPROM_93XX46_QUIRK_INSTRUCTION_LENGTH (1 << 1) | |
f6f1f8e6 AG |
22 | /* Add extra cycle after address during a read */ |
23 | #define EEPROM_93XX46_QUIRK_EXTRA_READ_CYCLE BIT(2) | |
e1379b56 | 24 | |
06b4501e AG |
25 | /* |
26 | * optional hooks to control additional logic | |
27 | * before and after spi transfer. | |
28 | */ | |
29 | void (*prepare)(void *); | |
30 | void (*finish)(void *); | |
3ca9b1ac | 31 | struct gpio_desc *select; |
06b4501e | 32 | }; |