OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [include/] [linux/] [eeprom_93cx6.h] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
/*
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_OPCODE 3
34
#define PCI_EEPROM_WRITE_OPCODE 0x05
35
#define PCI_EEPROM_READ_OPCODE  0x06
36
#define PCI_EEPROM_EWDS_OPCODE  0x10
37
#define PCI_EEPROM_EWEN_OPCODE  0x13
38
 
39
/**
40
 * struct eeprom_93cx6 - control structure for setting the commands
41
 * for reading the eeprom data.
42
 * @data: private pointer for the driver.
43
 * @register_read(struct eeprom_93cx6 *eeprom): handler to
44
 * read the eeprom register, this function should set all reg_* fields.
45
 * @register_write(struct eeprom_93cx6 *eeprom): handler to
46
 * write to the eeprom register by using all reg_* fields.
47
 * @width: eeprom width, should be one of the PCI_EEPROM_WIDTH_* defines
48
 * @reg_data_in: register field to indicate data input
49
 * @reg_data_out: register field to indicate data output
50
 * @reg_data_clock: register field to set the data clock
51
 * @reg_chip_select: register field to set the chip select
52
 *
53
 * This structure is used for the communication between the driver
54
 * and the eeprom_93cx6 handlers for reading the eeprom.
55
 */
56
struct eeprom_93cx6 {
57
        void *data;
58
 
59
        void (*register_read)(struct eeprom_93cx6 *eeprom);
60
        void (*register_write)(struct eeprom_93cx6 *eeprom);
61
 
62
        int width;
63
 
64
        char reg_data_in;
65
        char reg_data_out;
66
        char reg_data_clock;
67
        char reg_chip_select;
68
};
69
 
70
extern void eeprom_93cx6_read(struct eeprom_93cx6 *eeprom,
71
        const u8 word, u16 *data);
72
extern void eeprom_93cx6_multiread(struct eeprom_93cx6 *eeprom,
73
        const u8 word, __le16 *data, const u16 words);

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.