/linux-6.14.4/drivers/misc/eeprom/ |
D | eeprom_93cx6.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Copyright (C) 2004 - 2006 rt2x00 SourceForge Project 7 * 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() [all …]
|
D | idt_89hpesx.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Copyright (C) 2016 T-Platforms. All Rights Reserved. 5 * IDT PCIe-switch NTB Linux driver 8 * Serge Semin <[email protected]>, <Sergey.Semin@t-platforms.ru> 11 * NOTE of the IDT 89HPESx SMBus-slave interface driver 12 * This driver primarily is developed to have an access to EEPROM device of 13 * IDT PCIe-switches. IDT provides a simple SMBus interface to perform IO- 14 * operations from/to EEPROM, which is located at private (so called Master) 16 * binary sysfs-file in the device directory: 17 * /sys/bus/i2c/devices/<bus>-<devaddr>/eeprom [all …]
|
D | max6875.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * max6875.c - driver for MAX6874/MAX6875 7 * Based on eeprom.c 9 * The MAX6875 has a bank of registers and two banks of EEPROM. 11 * * 0x0000 - 0x0046 = configuration registers 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. 20 * two addresses - 0x50/0x51 and 0x52/0x53. [all …]
|
/linux-6.14.4/drivers/nvmem/ |
D | rave-sp-eeprom.c | 1 // SPDX-License-Identifier: GPL-2.0+ 4 * EEPROM driver for RAVE SP 10 #include <linux/mfd/rave-sp.h> 12 #include <linux/nvmem-provider.h> 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) [all …]
|
/linux-6.14.4/include/linux/ |
D | eeprom_93cx6.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 Copyright (C) 2004 - 2006 rt2x00 SourceForge Project 10 Abstract: EEPROM reader datastructures for 93cx6 chipsets. 17 * EEPROM operation defines. 31 * struct eeprom_93cx6 - control structure for setting the commands 32 * for reading the eeprom data. 33 * @data: private pointer for the driver. 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 [all …]
|
/linux-6.14.4/drivers/net/wireless/mediatek/mt76/mt7996/ |
D | eeprom.c | 1 // SPDX-License-Identifier: ISC 8 #include "eeprom.h" 12 u8 *eeprom = dev->mt76.eeprom.data; in mt7996_check_eeprom() local 13 u16 val = get_unaligned_le16(eeprom); in mt7996_check_eeprom() 17 return is_mt7996(&dev->mt76) ? 0 : -EINVAL; in mt7996_check_eeprom() 19 return is_mt7992(&dev->mt76) ? 0 : -EINVAL; in mt7996_check_eeprom() 21 return -EINVAL; in mt7996_check_eeprom() 27 switch (mt76_chip(&dev->mt76)) { in mt7996_eeprom_name() 29 switch (dev->var.type) { in mt7996_eeprom_name() 31 if (dev->var.fem == MT7996_FEM_INT) in mt7996_eeprom_name() [all …]
|
/linux-6.14.4/drivers/net/ethernet/intel/e1000e/ |
D | nvm.c | 1 // SPDX-License-Identifier: GPL-2.0 2 /* Copyright(c) 1999 - 2018 Intel Corporation. */ 7 * e1000_raise_eec_clk - Raise EEPROM clock 9 * @eecd: pointer to the EEPROM 11 * Enable/Raise the EEPROM clock bit. 18 udelay(hw->nvm.delay_usec); in e1000_raise_eec_clk() 22 * e1000_lower_eec_clk - Lower EEPROM clock 24 * @eecd: pointer to the EEPROM 26 * Clear/Lower the EEPROM clock bit. 33 udelay(hw->nvm.delay_usec); in e1000_lower_eec_clk() [all …]
|
/linux-6.14.4/drivers/net/wireless/intel/iwlwifi/dvm/ |
D | eeprom.c | 1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 3 * Copyright (C) 2005-2014, 2018-2019, 2021, 2024 Intel Corporation 9 #include "iwl-drv.h" 10 #include "iwl-debug.h" 11 #include "iwl-io.h" 12 #include "iwl-prph.h" 13 #include "iwl-csr.h" 16 /* EEPROM offset definitions */ 31 /* corresponding link offsets in EEPROM */ 67 /* SKU Capabilities (actual values from EEPROM definition) */ [all …]
|
/linux-6.14.4/drivers/net/wireless/mediatek/mt76/mt7915/ |
D | eeprom.c | 1 // SPDX-License-Identifier: ISC 7 #include "eeprom.h" 15 struct mt76_dev *mdev = &dev->mt76; in mt7915_eeprom_load_precal() 16 u8 *eeprom = mdev->eeprom.data; in mt7915_eeprom_load_precal() local 17 u32 offs = is_mt7915(&dev->mt76) ? MT_EE_DO_PRE_CAL : MT_EE_DO_PRE_CAL_V2; in mt7915_eeprom_load_precal() 18 u32 size, val = eeprom[offs]; in mt7915_eeprom_load_precal() 21 if (!dev->flash_mode || !val) in mt7915_eeprom_load_precal() 26 dev->cal = devm_kzalloc(mdev->dev, size, GFP_KERNEL); in mt7915_eeprom_load_precal() 27 if (!dev->cal) in mt7915_eeprom_load_precal() 28 return -ENOMEM; in mt7915_eeprom_load_precal() [all …]
|
/linux-6.14.4/drivers/net/ethernet/intel/igb/ |
D | e1000_nvm.c | 1 // SPDX-License-Identifier: GPL-2.0 2 /* Copyright(c) 2007 - 2018 Intel Corporation. */ 11 * igb_raise_eec_clk - Raise EEPROM clock 13 * @eecd: pointer to the EEPROM 15 * Enable/Raise the EEPROM clock bit. 22 udelay(hw->nvm.delay_usec); in igb_raise_eec_clk() 26 * igb_lower_eec_clk - Lower EEPROM clock 28 * @eecd: pointer to the EEPROM 30 * Clear/Lower the EEPROM clock bit. 37 udelay(hw->nvm.delay_usec); in igb_lower_eec_clk() [all …]
|
D | e1000_i210.c | 1 // SPDX-License-Identifier: GPL-2.0 2 /* Copyright(c) 2007 - 2018 Intel Corporation. */ 17 * igb_get_hw_semaphore_i210 - Acquire hardware semaphore 25 s32 timeout = hw->nvm.word_size + 1; in igb_get_hw_semaphore_i210() 42 if (hw->dev_spec._82575.clear_semaphore_once) { in igb_get_hw_semaphore_i210() 43 hw->dev_spec._82575.clear_semaphore_once = false; in igb_get_hw_semaphore_i210() 56 hw_dbg("Driver can't access device - SMBI bit is set.\n"); in igb_get_hw_semaphore_i210() 57 return -E1000_ERR_NVM; in igb_get_hw_semaphore_i210() 77 return -E1000_ERR_NVM; in igb_get_hw_semaphore_i210() 84 * igb_acquire_nvm_i210 - Request for access to EEPROM [all …]
|
/linux-6.14.4/drivers/net/wireless/mediatek/mt7601u/ |
D | eeprom.c | 1 // SPDX-License-Identifier: GPL-2.0-only 13 #include "eeprom.h" 32 mt7601u_efuse_read(struct mt7601u_dev *dev, u16 addr, u8 *data, in mt7601u_efuse_read() argument 47 return -ETIMEDOUT; in mt7601u_efuse_read() 51 /* Parts of eeprom not in the usage map (0x80-0xc0,0xf0) in mt7601u_efuse_read() 52 * will not return valid data but it's ok. in mt7601u_efuse_read() 54 memset(data, 0xff, 16); in mt7601u_efuse_read() 60 put_unaligned_le32(val, data + 4 * i); in mt7601u_efuse_read() 70 u8 data[round_up(MT_EFUSE_USAGE_MAP_SIZE, 16)]; in mt7601u_efuse_physical_size_check() local 76 data + i * 16, MT_EE_PHYSICAL_READ); in mt7601u_efuse_physical_size_check() [all …]
|
/linux-6.14.4/drivers/net/wireless/mediatek/mt76/mt7603/ |
D | eeprom.c | 1 // SPDX-License-Identifier: ISC 5 #include "eeprom.h" 8 mt7603_efuse_read(struct mt7603_dev *dev, u32 base, u16 addr, u8 *data) in mt7603_efuse_read() argument 21 return -ETIMEDOUT; in mt7603_efuse_read() 28 memset(data, 0xff, 16); in mt7603_efuse_read() 34 put_unaligned_le32(val, data + 4 * i); in mt7603_efuse_read() 51 dev->mt76.otp.data = devm_kzalloc(dev->mt76.dev, len, GFP_KERNEL); in mt7603_efuse_init() 52 dev->mt76.otp.size = len; in mt7603_efuse_init() 53 if (!dev->mt76.otp.data) in mt7603_efuse_init() 54 return -ENOMEM; in mt7603_efuse_init() [all …]
|
/linux-6.14.4/drivers/net/wireless/mediatek/mt76/mt7615/ |
D | eeprom.c | 1 // SPDX-License-Identifier: ISC 10 #include "eeprom.h" 13 u16 addr, u8 *data) in mt7615_efuse_read() argument 25 return -ETIMEDOUT; in mt7615_efuse_read() 32 memset(data, 0x0, 16); in mt7615_efuse_read() 38 put_unaligned_le32(val, data + 4 * i); in mt7615_efuse_read() 50 if (is_mt7663(&dev->mt76)) in mt7615_efuse_init() 57 dev->mt76.otp.data = devm_kzalloc(dev->mt76.dev, len, GFP_KERNEL); in mt7615_efuse_init() 58 dev->mt76.otp.size = len; in mt7615_efuse_init() 59 if (!dev->mt76.otp.data) in mt7615_efuse_init() [all …]
|
/linux-6.14.4/drivers/net/ethernet/intel/ixgbe/ |
D | ixgbe_common.c | 1 // SPDX-License-Identifier: GPL-2.0 2 /* Copyright(c) 1999 - 2024 Intel Corporation. */ 18 static void ixgbe_shift_out_eeprom_bits(struct ixgbe_hw *hw, u16 data, 28 u16 words, u16 *data); 30 u16 words, u16 *data); 41 * ixgbe_device_supports_autoneg_fc - Check if phy supports autoneg flow 55 switch (hw->phy.media_type) { in ixgbe_device_supports_autoneg_fc() 58 switch (hw->device_id) { in ixgbe_device_supports_autoneg_fc() 65 hw->mac.ops.check_link(hw, &speed, &link_up, false); in ixgbe_device_supports_autoneg_fc() 75 if (hw->device_id == IXGBE_DEV_ID_X550EM_X_XFI) in ixgbe_device_supports_autoneg_fc() [all …]
|
D | ixgbe_x540.c | 1 // SPDX-License-Identifier: GPL-2.0 2 /* Copyright(c) 1999 - 2024 Intel Corporation. */ 32 struct ixgbe_mac_info *mac = &hw->mac; in ixgbe_get_invariants_X540() 33 struct ixgbe_phy_info *phy = &hw->phy; in ixgbe_get_invariants_X540() 36 phy->ops.set_phy_power = ixgbe_set_copper_phy_power; in ixgbe_get_invariants_X540() 38 mac->mcft_size = IXGBE_X540_MC_TBL_SIZE; in ixgbe_get_invariants_X540() 39 mac->vft_size = IXGBE_X540_VFT_TBL_SIZE; in ixgbe_get_invariants_X540() 40 mac->num_rar_entries = IXGBE_X540_RAR_ENTRIES; in ixgbe_get_invariants_X540() 41 mac->rx_pb_size = IXGBE_X540_RX_PB_SIZE; in ixgbe_get_invariants_X540() 42 mac->max_rx_queues = IXGBE_X540_MAX_RX_QUEUES; in ixgbe_get_invariants_X540() [all …]
|
/linux-6.14.4/drivers/net/usb/ |
D | asix_common.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 4 * Copyright (C) 2003-2006 David Hollis <[email protected]> 7 * Copyright (c) 2002-2003 TiVo Inc. 15 u16 size, void *data, int in_pm) in asix_read_cmd() argument 28 value, index, data, size); in asix_read_cmd() 31 ret = ret < 0 ? ret : -ENODATA; in asix_read_cmd() 33 netdev_warn(dev->net, "Failed to read reg index 0x%04x: %d\n", in asix_read_cmd() 41 u16 size, void *data, int in_pm) in asix_write_cmd() argument 54 value, index, data, size); in asix_write_cmd() 57 netdev_warn(dev->net, "Failed to write reg index 0x%04x: %d\n", in asix_write_cmd() [all …]
|
/linux-6.14.4/drivers/net/wireless/mediatek/mt76/mt76x2/ |
D | eeprom.c | 1 // SPDX-License-Identifier: ISC 10 #include "eeprom.h" 17 void *src = dev->mt76.eeprom.data + MT_EE_MAC_ADDR; in mt76x2_eeprom_get_macaddr() 19 memcpy(dev->mphy.macaddr, src, ETH_ALEN); in mt76x2_eeprom_get_macaddr() 80 struct device_node *np = dev->mt76.dev->of_node; in mt76x2_apply_cal_free_data() 81 u8 *eeprom = dev->mt76.eeprom.data; in mt76x2_apply_cal_free_data() local 83 eeprom[MT_EE_TX_POWER_0_START_5G], in mt76x2_apply_cal_free_data() 84 eeprom[MT_EE_TX_POWER_0_START_5G + 1], in mt76x2_apply_cal_free_data() 85 eeprom[MT_EE_TX_POWER_1_START_5G], in mt76x2_apply_cal_free_data() 86 eeprom[MT_EE_TX_POWER_1_START_5G + 1] in mt76x2_apply_cal_free_data() [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/eeprom/ |
D | microchip,93lc46b.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/eeprom/microchip,93lc46b.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Microchip 93xx46 SPI compatible EEPROM family 10 - Cory Tusar <[email protected]> 15 - atmel,at93c46 16 - atmel,at93c46d 17 - atmel,at93c56 18 - atmel,at93c66 [all …]
|
/linux-6.14.4/Documentation/misc-devices/ |
D | max6875.rst | 13 Datasheet: http://pdfserv.maxim-ic.com/en/ds/MAX6874-MAX6875.pdf 19 ----------- 21 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 33 - vin gpi vout 43 ------------- 45 eeprom - 512 bytes of user-defined EEPROM space. 49 --------------- 61 $ echo max6875 0x50 > /sys/bus/i2c/devices/i2c-0/new_device [all …]
|
/linux-6.14.4/drivers/net/ethernet/intel/igc/ |
D | igc_nvm.c | 1 // SPDX-License-Identifier: GPL-2.0 8 * igc_poll_eerd_eewr_done - Poll for EEPROM read/write completion 10 * @ee_reg: EEPROM flag for polling 12 * Polls the EEPROM status bit for either read or write completion based 17 s32 ret_val = -IGC_ERR_NVM; in igc_poll_eerd_eewr_done() 39 * igc_read_nvm_eerd - Reads EEPROM using EERD register 41 * @offset: offset of word in the EEPROM to read 43 * @data: word read from the EEPROM 45 * Reads a 16 bit word from the EEPROM using the EERD register. 47 s32 igc_read_nvm_eerd(struct igc_hw *hw, u16 offset, u16 words, u16 *data) in igc_read_nvm_eerd() argument [all …]
|
/linux-6.14.4/net/ethtool/ |
D | eeprom.c | 1 // SPDX-License-Identifier: GPL-2.0-only 20 u8 *data; member 31 struct ethtool_eeprom *eeprom) in fallback_set_params() argument 33 u32 offset = request->offset; in fallback_set_params() 34 u32 length = request->length; in fallback_set_params() 36 if (request->page) in fallback_set_params() 37 offset = request->page * ETH_MODULE_EEPROM_PAGE_LEN + offset; in fallback_set_params() 39 if (modinfo->type == ETH_MODULE_SFF_8472 && in fallback_set_params() 40 request->i2c_address == 0x51) in fallback_set_params() 43 if (offset >= modinfo->eeprom_len) in fallback_set_params() [all …]
|
/linux-6.14.4/drivers/media/usb/pvrusb2/ |
D | pvrusb2-eeprom.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 #include "pvrusb2-eeprom.h" 10 #include "pvrusb2-hdw-internal.h" 11 #include "pvrusb2-debug.h" 19 Read and analyze data in the eeprom. Use tveeprom to figure out 21 internally it has a family resemblance to ivtv-type devices 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() [all …]
|
/linux-6.14.4/drivers/net/dsa/mv88e6xxx/ |
D | global2.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 7 * Copyright (c) 2016-2017 Savoir-faire Linux Inc. 21 return mv88e6xxx_read(chip, chip->info->global2_addr, reg, val); in mv88e6xxx_g2_read() 26 return mv88e6xxx_write(chip, chip->info->global2_addr, reg, val); in mv88e6xxx_g2_write() 32 return mv88e6xxx_wait_bit(chip, chip->info->global2_addr, reg, in mv88e6xxx_g2_wait_bit() 146 const u16 port_mask = BIT(mv88e6xxx_num_ports(chip)) - 1; in mv88e6xxx_g2_trunk_mapping_write() 155 const u16 port_mask = BIT(mv88e6xxx_num_ports(chip)) - 1; in mv88e6xxx_g2_trunk_clear() 176 * Offset 0x0A: Ingress Rate Data register 212 /* Offset 0x0B: Cross-chip Port VLAN (Addr) Register 213 * Offset 0x0C: Cross-chip Port VLAN Data Register [all …]
|
/linux-6.14.4/drivers/atm/ |
D | nicstarmac.c | 1 // SPDX-License-Identifier: GPL-2.0 8 * 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 */ 34 #define SI_HIGH 0x0001 /* Serial input data high */ 35 #define SI_LOW 0x0000 /* Serial input data low */ 60 /* Read from EEPROM = 0000 0011b */ 83 /* Clock to read from/write to the eeprom */ [all …]
|