Home
last modified time | relevance | path

Searched full:eeprom (Results 1 – 25 of 1131) sorted by relevance

12345678910>>...46

/linux/drivers/misc/eeprom/
H A Deeprom_93cx6.c7 * Abstract: EEPROM reader routines for 93cx6 chipsets.
19 MODULE_DESCRIPTION("EEPROM 93cx6 chip driver");
22 static inline void eeprom_93cx6_pulse_high(struct eeprom_93cx6 *eeprom) in eeprom_93cx6_pulse_high() argument
24 eeprom->reg_data_clock = 1; in eeprom_93cx6_pulse_high()
25 eeprom->register_write(eeprom); in eeprom_93cx6_pulse_high()
35 static inline void eeprom_93cx6_pulse_low(struct eeprom_93cx6 *eeprom) in eeprom_93cx6_pulse_low() argument
37 eeprom->reg_data_clock = 0; in eeprom_93cx6_pulse_low()
38 eeprom->register_write(eeprom); in eeprom_93cx6_pulse_low()
48 static void eeprom_93cx6_startup(struct eeprom_93cx6 *eeprom) in eeprom_93cx6_startup() argument
53 eeprom->register_read(eeprom); in eeprom_93cx6_startup()
[all …]
H A Didt_89hpesx.c12 * This driver primarily is developed to have an access to EEPROM device of
14 * operations from/to EEPROM, which is located at private (so called Master)
17 * /sys/bus/i2c/devices/<bus>-<devaddr>/eeprom
19 * User-space applications won't be able to write to the EEPROM sysfs-node.
65 * @eesize: Size of EEPROM in bytes (calculated from "idt,eecompatible")
66 * @eero: EEPROM Read-only flag
67 * @eeaddr: EEPROM custom address
69 * @inieecmd: Initial cmd value for EEPROM read/write operations
81 * @ee_file: EEPROM read/write sysfs-file
118 * struct idt_eeprom_seq - sequence of data to be read/written from/to EEPROM
[all …]
H A Dmax6875.c7 * Based on eeprom.c
9 * The MAX6875 has a bank of registers and two banks of EEPROM.
12 * * 0x8000 - 0x8046 = configuration EEPROM
13 * * 0x8100 - 0x82FF = user EEPROM
15 * This driver makes the user EEPROM available for read.
17 * The registers & config EEPROM should be accessed via i2c-dev.
23 * address, so this driver is destructive if loaded for the wrong EEPROM chip.
36 /* USER EEPROM is at addresses 0x8100 - 0x82FF */
76 /* select the eeprom address */ in max6875_update_slice()
126 .name = "eeprom",
/linux/drivers/nvmem/
H A Dlpc18xx_eeprom.c3 * NXP LPC18xx/LPC43xx EEPROM memory NVMEM driver
38 /* EEPROM device requires a ~1500 kHz clock (min 800 kHz, max 1600 kHz) */
41 /* EEPROM requires 3 ms of erase/program time between each writing */
54 static inline void lpc18xx_eeprom_writel(struct lpc18xx_eeprom_dev *eeprom, in lpc18xx_eeprom_writel() argument
57 writel(val, eeprom->reg_base + reg); in lpc18xx_eeprom_writel()
60 static inline u32 lpc18xx_eeprom_readl(struct lpc18xx_eeprom_dev *eeprom, in lpc18xx_eeprom_readl() argument
63 return readl(eeprom->reg_base + reg); in lpc18xx_eeprom_readl()
66 static int lpc18xx_eeprom_busywait_until_prog(struct lpc18xx_eeprom_dev *eeprom) in lpc18xx_eeprom_busywait_until_prog() argument
71 /* Wait until EEPROM program operation has finished */ in lpc18xx_eeprom_busywait_until_prog()
75 val = lpc18xx_eeprom_readl(eeprom, LPC18XX_EEPROM_INTSTAT); in lpc18xx_eeprom_busywait_until_prog()
[all …]
H A Drave-sp-eeprom.c4 * EEPROM driver for RAVE SP
18 * enum rave_sp_eeprom_access_type - Supported types of EEPROM access
20 * @RAVE_SP_EEPROM_WRITE: EEPROM write
21 * @RAVE_SP_EEPROM_READ: EEPROM read
29 * enum rave_sp_eeprom_header_size - EEPROM command header sizes
31 * @RAVE_SP_EEPROM_HEADER_SMALL: EEPROM header size for "small" devices (< 8K)
32 * @RAVE_SP_EEPROM_HEADER_BIG: EEPROM header size for "big" devices (> 8K)
43 * struct rave_sp_eeprom_page - RAVE SP EEPROM page
59 * struct rave_sp_eeprom - RAVE SP EEPROM device
62 * @mutex: Lock protecting access to EEPROM
[all …]
/linux/drivers/i2c/
H A Di2c-slave-eeprom.c3 * I2C slave mode EEPROM simulator
9 * this driver does not support simulating EEPROM types which take more than
48 struct eeprom_data *eeprom = i2c_get_clientdata(client); in i2c_slave_eeprom_slave_cb() local
52 if (eeprom->idx_write_cnt < eeprom->num_address_bytes) { in i2c_slave_eeprom_slave_cb()
53 if (eeprom->idx_write_cnt == 0) in i2c_slave_eeprom_slave_cb()
54 eeprom->buffer_idx = 0; in i2c_slave_eeprom_slave_cb()
55 eeprom->buffer_idx = *val | (eeprom->buffer_idx << 8); in i2c_slave_eeprom_slave_cb()
56 eeprom->idx_write_cnt++; in i2c_slave_eeprom_slave_cb()
58 if (!eeprom->read_only) { in i2c_slave_eeprom_slave_cb()
59 spin_lock(&eeprom->buffer_lock); in i2c_slave_eeprom_slave_cb()
[all …]
/linux/drivers/net/wireless/mediatek/mt7601u/
H A Deeprom.c13 #include "eeprom.h"
51 /* Parts of eeprom not in the usage map (0x80-0xc0,0xf0) in mt7601u_efuse_read()
90 …dev_err(dev->dev, "Error: your device needs default EEPROM file and this driver doesn't support it… in mt7601u_efuse_physical_size_check()
98 mt7601u_has_tssi(struct mt7601u_dev *dev, u8 *eeprom) in mt7601u_has_tssi() argument
100 u16 nic_conf1 = get_unaligned_le16(eeprom + MT_EE_NIC_CONF_1); in mt7601u_has_tssi()
106 mt7601u_set_chip_cap(struct mt7601u_dev *dev, u8 *eeprom) in mt7601u_set_chip_cap() argument
108 u16 nic_conf0 = get_unaligned_le16(eeprom + MT_EE_NIC_CONF_0); in mt7601u_set_chip_cap()
109 u16 nic_conf1 = get_unaligned_le16(eeprom + MT_EE_NIC_CONF_1); in mt7601u_set_chip_cap()
114 dev->ee->tssi_enabled = mt7601u_has_tssi(dev, eeprom) && in mt7601u_set_chip_cap()
131 u8 *eeprom, u8 max_pwr) in mt7601u_set_channel_target_power() argument
[all …]
/linux/drivers/media/usb/pvrusb2/
H A Dpvrusb2-eeprom.c9 #include "pvrusb2-eeprom.h"
19 Read and analyze data in the eeprom. Use tveeprom to figure out
27 /* We seem to only be interested in the last 128 bytes of the EEPROM */
30 /* Grab EEPROM contents, needed for direct method. */
34 u8 *eeprom; in pvr2_eeprom_fetch() local
42 eeprom = kzalloc(EEPROM_SIZE, GFP_KERNEL); in pvr2_eeprom_fetch()
43 if (!eeprom) { in pvr2_eeprom_fetch()
45 "Failed to allocate memory required to read eeprom"); in pvr2_eeprom_fetch()
49 trace_eeprom("Value for eeprom addr from controller was 0x%x", in pvr2_eeprom_fetch()
52 /* Seems that if the high bit is set, then the *real* eeprom in pvr2_eeprom_fetch()
[all …]
/linux/include/linux/
H A Deeprom_93cx6.h10 Abstract: EEPROM reader datastructures for 93cx6 chipsets.
17 * EEPROM operation defines.
32 * for reading the eeprom data.
34 * @register_read(struct eeprom_93cx6 *eeprom): handler to
35 * read the eeprom register, this function should set all reg_* fields.
36 * @register_write(struct eeprom_93cx6 *eeprom): handler to
37 * write to the eeprom register by using all reg_* fields.
38 * @width: eeprom width, should be one of the PCI_EEPROM_WIDTH_* defines
39 * @quirks: eeprom or controller quirks
47 * and the eeprom_93cx6 handlers for reading the eeprom.
[all …]
/linux/drivers/net/wireless/ralink/rt2x00/
H A Drt2800pci.c79 static void rt2800pci_eepromregister_read(struct eeprom_93cx6 *eeprom) in rt2800pci_eepromregister_read() argument
81 struct rt2x00_dev *rt2x00dev = eeprom->data; in rt2800pci_eepromregister_read()
86 eeprom->reg_data_in = !!rt2x00_get_field32(reg, E2PROM_CSR_DATA_IN); in rt2800pci_eepromregister_read()
87 eeprom->reg_data_out = !!rt2x00_get_field32(reg, E2PROM_CSR_DATA_OUT); in rt2800pci_eepromregister_read()
88 eeprom->reg_data_clock = in rt2800pci_eepromregister_read()
90 eeprom->reg_chip_select = in rt2800pci_eepromregister_read()
94 static void rt2800pci_eepromregister_write(struct eeprom_93cx6 *eeprom) in rt2800pci_eepromregister_write() argument
96 struct rt2x00_dev *rt2x00dev = eeprom->data; in rt2800pci_eepromregister_write()
99 rt2x00_set_field32(&reg, E2PROM_CSR_DATA_IN, !!eeprom->reg_data_in); in rt2800pci_eepromregister_write()
100 rt2x00_set_field32(&reg, E2PROM_CSR_DATA_OUT, !!eeprom->reg_data_out); in rt2800pci_eepromregister_write()
[all …]
/linux/drivers/net/ethernet/atheros/atl1e/
H A Datl1e_ethtool.c205 struct ethtool_eeprom *eeprom, u8 *bytes) in atl1e_get_eeprom() argument
214 if (eeprom->len == 0) in atl1e_get_eeprom()
220 eeprom->magic = hw->vendor_id | (hw->device_id << 16); in atl1e_get_eeprom()
222 first_dword = eeprom->offset >> 2; in atl1e_get_eeprom()
223 last_dword = (eeprom->offset + eeprom->len - 1) >> 2; in atl1e_get_eeprom()
237 memcpy(bytes, (u8 *)eeprom_buff + (eeprom->offset & 3), in atl1e_get_eeprom()
238 eeprom->len); in atl1e_get_eeprom()
245 struct ethtool_eeprom *eeprom, u8 *bytes) in atl1e_set_eeprom() argument
255 if (eeprom->len == 0) in atl1e_set_eeprom()
258 if (eeprom->magic != (hw->vendor_id | (hw->device_id << 16))) in atl1e_set_eeprom()
[all …]
/linux/Documentation/devicetree/bindings/eeprom/
H A Dmicrochip,93lc46b.yaml4 $id: http://devicetree.org/schemas/eeprom/microchip,93lc46b.yaml#
7 title: Microchip 93xx46 SPI compatible EEPROM family
19 - eeprom-93xx46
28 description: chip select of EEPROM
33 parameter-less property which disables writes to the EEPROM
39 of EEPROM (e.g. for SPI bus multiplexing)
62 eeprom@0 {
63 compatible = "eeprom-93xx46";
/linux/drivers/w1/slaves/
H A DKconfig70 tristate "112-byte EEPROM support (DS28E05)"
73 is a 112-byte user-programmable EEPROM is
78 tristate "256b EEPROM family support (DS2430)"
80 Say Y here if you want to use a 1-wire 256bit EEPROM
82 This EEPROM is organized as one page of 32 bytes for random
86 tristate "1kb EEPROM family support (DS2431)"
89 1kb EEPROM family device (DS2431)
92 tristate "4kb EEPROM family support (DS2433)"
95 4kb EEPROM family device (DS2433).
144 tristate "4096-Bit Addressable 1-Wire EEPROM with PIO (DS28E04-100)"
[all …]
/linux/Documentation/devicetree/bindings/nvmem/
H A Dnxp,lpc1857-eeprom.yaml4 $id: http://devicetree.org/schemas/nvmem/nxp,lpc1857-eeprom.yaml#
7 title: NXP LPC18xx EEPROM memory
14 const: nxp,lpc1857-eeprom
29 - const: eeprom
52 eeprom@4000e000 {
53 compatible = "nxp,lpc1857-eeprom";
58 clock-names = "eeprom";
/linux/drivers/net/wireless/marvell/libertas/
H A Dethtool.c28 * All 8388 parts have 16KiB EEPROM size at the time of writing.
39 struct ethtool_eeprom *eeprom, u8 * bytes) in lbs_ethtool_get_eeprom() argument
45 if (eeprom->offset + eeprom->len > LBS_EEPROM_LEN || in lbs_ethtool_get_eeprom()
46 eeprom->len > LBS_EEPROM_READ_LEN) in lbs_ethtool_get_eeprom()
50 LBS_EEPROM_READ_LEN + eeprom->len); in lbs_ethtool_get_eeprom()
52 cmd.offset = cpu_to_le16(eeprom->offset); in lbs_ethtool_get_eeprom()
53 cmd.len = cpu_to_le16(eeprom->len); in lbs_ethtool_get_eeprom()
56 memcpy(bytes, cmd.value, eeprom->len); in lbs_ethtool_get_eeprom()
/linux/Documentation/misc-devices/
H A Dmax6875.rst21 The Maxim MAX6875 is an EEPROM-programmable power-supply sequencer/supervisor.
23 It also provides 512 bytes of user EEPROM.
25 At reset, the MAX6875 reads the configuration EEPROM into its configuration
45 eeprom - 512 bytes of user-defined EEPROM space.
93 The configuration EEPROM is at addresses 0x8000 - 0x8045.
95 The user EEPROM is at addresses 0x8100 - 0x82ff.
97 Use i2c_smbus_write_word_data() to write a byte to EEPROM.
112 Reading data from the EEPROM is a little more complicated.
/linux/Documentation/devicetree/bindings/net/wireless/
H A Dmediatek,mt76.yaml79 - description: NVMEM cell with EEPROM
83 - const: eeprom
85 mediatek,eeprom-data:
88 EEPROM data embedded as array.
90 mediatek,mtd-eeprom:
95 - description: offset containing EEPROM data
97 Phandle to a MTD partition + offset containing EEPROM data
103 Specify if the radio eeprom partition is written in big-endian
105 mediatek,eeprom-merge-otp:
108 Merge EEPROM data with OTP data. Can be used on boards where the flash
[all …]
/linux/drivers/atm/
H A Dnicstarmac.c8 * Read this ForeRunner's MAC address from eprom/eeprom
21 * the Data Sheet for the Xicor X25020 EEProm. The #defines below
23 * that must be toggled for the corresponding actions on the EEProm
27 /* Write Data To EEProm from SI line on rising edge of CLK */
28 /* Read Data From EEProm on falling edge of CLK */
60 /* Read from EEPROM = 0000 0011b */
83 /* Clock to read from/write to the eeprom */
113 * eeprom, then pull the result from bit 16 of the NicSTaR's General Purpose
133 /* Data clocked out of eeprom on falling edge of clock */
153 * eeprom, followed by the address to read from, through the NicSTaR's General
[all …]
/linux/drivers/net/ethernet/wangxun/txgbe/
H A Dtxgbe_hw.c96 wx_err(wx, "Failed to read EEPROM image\n"); in txgbe_calc_eeprom_checksum()
108 if (i != wx->eeprom.sw_region_offset + TXGBE_EEPROM_CHECKSUM) in txgbe_calc_eeprom_checksum()
120 * txgbe_validate_eeprom_checksum - Validate EEPROM checksum
124 * Performs checksum calculation and validates the EEPROM checksum. If the
133 /* Read the first word from the EEPROM. If this times out or fails, do in txgbe_validate_eeprom_checksum()
135 * EEPROM read fails in txgbe_validate_eeprom_checksum()
139 wx_err(wx, "EEPROM read failed\n"); in txgbe_validate_eeprom_checksum()
148 status = wx_read_ee_hostif(wx, wx->eeprom.sw_region_offset + in txgbe_validate_eeprom_checksum()
153 /* Verify read checksum from EEPROM is the same as in txgbe_validate_eeprom_checksum()
158 wx_err(wx, "Invalid EEPROM checksum\n"); in txgbe_validate_eeprom_checksum()
/linux/Documentation/w1/slaves/
H A Dw1_ds28e04.rst7 * Maxim DS28E04-100 4096-Bit Addressable 1-Wire EEPROM with PIO
20 Support is provided through the sysfs files "eeprom" and "pio". CRC checking
27 A read operation on the "eeprom" file reads the given amount of bytes
28 from the EEPROM of the DS28E04.
30 A write operation on the "eeprom" file writes the given byte sequence
31 to the EEPROM of the DS28E04. If CRC checking mode is enabled only
/linux/Documentation/devicetree/bindings/net/
H A Dvia-velocity.txt9 - no-eeprom : PCI network cards use an external EEPROM to store data. Embedded
10 devices quite often set this data in uboot and do not provide an eeprom.
11 Specify this option if you have no external eeprom.
19 no-eeprom;
/linux/net/ethtool/
H A Deeprom.c31 struct ethtool_eeprom *eeprom) in fallback_set_params() argument
46 eeprom->cmd = ETHTOOL_GMODULEEEPROM; in fallback_set_params()
47 eeprom->len = length; in fallback_set_params()
48 eeprom->offset = offset; in fallback_set_params()
58 struct ethtool_eeprom eeprom = {0}; in eeprom_fallback() local
67 err = fallback_set_params(request, &modinfo, &eeprom); in eeprom_fallback()
71 data = kmalloc(eeprom.len, GFP_KERNEL); in eeprom_fallback()
74 err = ethtool_get_module_eeprom_call(dev, &eeprom, data); in eeprom_fallback()
79 reply->length = eeprom.len; in eeprom_fallback()
168 * EEPROM page without crossing low page boundary located at offset 128. in eeprom_parse_request()
/linux/drivers/comedi/drivers/
H A Dcb_pcidda.c33 #define EEPROM_SIZE 128 /* number of entries in eeprom */
53 /* serial data input for eeprom, caldacs, reference dac */
63 #define SERIAL_OUT_BIT 0x80 /* serial data out, for reading from eeprom */
66 #define SELECT_EEPROM_BIT 0x1 /* send serial data in to eeprom */
147 u16 eeprom_data[EEPROM_SIZE]; /* software copy of board's eeprom */
150 /* lowlevel read from eeprom */
167 /* lowlevel write to eeprom/dac */
184 /* reads a 16 bit value from board's eeprom */
194 /* bits to send to tell eeprom we want to read */ in cb_pcidda_read_eeprom()
199 /* send serial output stream to eeprom */ in cb_pcidda_read_eeprom()
[all …]
/linux/drivers/net/dsa/mv88e6xxx/
H A Dglobal2.c338 /* Offset 0x14: EEPROM Command
339 * Offset 0x15: EEPROM Data (for 16-bit data access)
340 * Offset 0x15: EEPROM Addr (for 8-bit data access)
449 struct ethtool_eeprom *eeprom, u8 *data) in mv88e6xxx_g2_get_eeprom8() argument
451 unsigned int offset = eeprom->offset; in mv88e6xxx_g2_get_eeprom8()
452 unsigned int len = eeprom->len; in mv88e6xxx_g2_get_eeprom8()
455 eeprom->len = 0; in mv88e6xxx_g2_get_eeprom8()
462 eeprom->len++; in mv88e6xxx_g2_get_eeprom8()
472 struct ethtool_eeprom *eeprom, u8 *data) in mv88e6xxx_g2_set_eeprom8() argument
474 unsigned int offset = eeprom->offset; in mv88e6xxx_g2_set_eeprom8()
[all …]
/linux/sound/pci/ice1712/
H A Dice1724.c604 if (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S) { in stdclock_set_mclk()
950 if (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S) {
953 if ((ice->eeprom.data[ICE_EEP2_I2S] & 0x08) && !ice->vt1720) in set_std_hw_rates()
1101 if ((ice->eeprom.data[ICE_EEP2_SYSCONF] & VT1724_CFG_ADC_MASK) == in snd_vt1724_pcm_profi()
1279 (ice->eeprom.data[ICE_EEP2_SPDIF] & VT1724_CFG_SPDIF_OUT_INT)) { in snd_vt1724_pcm_spdif()
1285 (ice->eeprom.data[ICE_EEP2_SPDIF] & VT1724_CFG_SPDIF_IN)) { in snd_vt1724_pcm_spdif()
1439 if (!(ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S)) {
1475 return (unsigned int)ice->eeprom.data[idx] | \ in snd_vt1724_ac97_mixer()
1476 ((unsigned int)ice->eeprom.data[idx + 1] << 8) | \
1477 ((unsigned int)ice->eeprom
[all...]

12345678910>>...46