~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/eeprom_93cx6.h

Version: ~ [ linux-5.5-rc7 ] ~ [ linux-5.4.13 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.97 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.166 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.210 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.210 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.81 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2         Copyright (C) 2004 - 2006 rt2x00 SourceForge Project
  3         <http://rt2x00.serialmonkey.com>
  4 
  5         This program is free software; you can redistribute it and/or modify
  6         it under the terms of the GNU General Public License as published by
  7         the Free Software Foundation; either version 2 of the License, or
  8         (at your option) any later version.
  9 
 10         This program is distributed in the hope that it will be useful,
 11         but WITHOUT ANY WARRANTY; without even the implied warranty of
 12         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 13         GNU General Public License for more details.
 14 
 15         You should have received a copy of the GNU General Public License
 16         along with this program; if not, write to the
 17         Free Software Foundation, Inc.,
 18         59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 19  */
 20 
 21 /*
 22         Module: eeprom_93cx6
 23         Abstract: EEPROM reader datastructures for 93cx6 chipsets.
 24         Supported chipsets: 93c46, 93c56 and 93c66.
 25  */
 26 
 27 /*
 28  * EEPROM operation defines.
 29  */
 30 #define PCI_EEPROM_WIDTH_93C46  6
 31 #define PCI_EEPROM_WIDTH_93C56  8
 32 #define PCI_EEPROM_WIDTH_93C66  8
 33 #define PCI_EEPROM_WIDTH_93C86  8
 34 #define PCI_EEPROM_WIDTH_OPCODE 3
 35 #define PCI_EEPROM_WRITE_OPCODE 0x05
 36 #define PCI_EEPROM_ERASE_OPCODE 0x07
 37 #define PCI_EEPROM_READ_OPCODE  0x06
 38 #define PCI_EEPROM_EWDS_OPCODE  0x10
 39 #define PCI_EEPROM_EWEN_OPCODE  0x13
 40 
 41 /**
 42  * struct eeprom_93cx6 - control structure for setting the commands
 43  * for reading the eeprom data.
 44  * @data: private pointer for the driver.
 45  * @register_read(struct eeprom_93cx6 *eeprom): handler to
 46  * read the eeprom register, this function should set all reg_* fields.
 47  * @register_write(struct eeprom_93cx6 *eeprom): handler to
 48  * write to the eeprom register by using all reg_* fields.
 49  * @width: eeprom width, should be one of the PCI_EEPROM_WIDTH_* defines
 50  * @drive_data: Set if we're driving the data line.
 51  * @reg_data_in: register field to indicate data input
 52  * @reg_data_out: register field to indicate data output
 53  * @reg_data_clock: register field to set the data clock
 54  * @reg_chip_select: register field to set the chip select
 55  *
 56  * This structure is used for the communication between the driver
 57  * and the eeprom_93cx6 handlers for reading the eeprom.
 58  */
 59 struct eeprom_93cx6 {
 60         void *data;
 61 
 62         void (*register_read)(struct eeprom_93cx6 *eeprom);
 63         void (*register_write)(struct eeprom_93cx6 *eeprom);
 64 
 65         int width;
 66 
 67         char drive_data;
 68         char reg_data_in;
 69         char reg_data_out;
 70         char reg_data_clock;
 71         char reg_chip_select;
 72 };
 73 
 74 extern void eeprom_93cx6_read(struct eeprom_93cx6 *eeprom,
 75         const u8 word, u16 *data);
 76 extern void eeprom_93cx6_multiread(struct eeprom_93cx6 *eeprom,
 77         const u8 word, __le16 *data, const u16 words);
 78 
 79 extern void eeprom_93cx6_wren(struct eeprom_93cx6 *eeprom, bool enable);
 80 
 81 extern void eeprom_93cx6_write(struct eeprom_93cx6 *eeprom,
 82                                u8 addr, u16 data);
 83 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp