Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * Module: eeprom_93xx46
0004  * platform description for 93xx46 EEPROMs.
0005  */
0006 #include <linux/gpio/consumer.h>
0007 
0008 struct eeprom_93xx46_platform_data {
0009     unsigned char   flags;
0010 #define EE_ADDR8    0x01        /*  8 bit addr. cfg */
0011 #define EE_ADDR16   0x02        /* 16 bit addr. cfg */
0012 #define EE_READONLY 0x08        /* forbid writing */
0013 #define EE_SIZE1K   0x10        /* 1 kb of data, that is a 93xx46 */
0014 #define EE_SIZE2K   0x20        /* 2 kb of data, that is a 93xx56 */
0015 #define EE_SIZE4K   0x40        /* 4 kb of data, that is a 93xx66 */
0016 
0017     unsigned int    quirks;
0018 /* Single word read transfers only; no sequential read. */
0019 #define EEPROM_93XX46_QUIRK_SINGLE_WORD_READ        (1 << 0)
0020 /* Instructions such as EWEN are (addrlen + 2) in length. */
0021 #define EEPROM_93XX46_QUIRK_INSTRUCTION_LENGTH      (1 << 1)
0022 /* Add extra cycle after address during a read */
0023 #define EEPROM_93XX46_QUIRK_EXTRA_READ_CYCLE        BIT(2)
0024 
0025     /*
0026      * optional hooks to control additional logic
0027      * before and after spi transfer.
0028      */
0029     void (*prepare)(void *);
0030     void (*finish)(void *);
0031     struct gpio_desc *select;
0032 };