| /linux/drivers/misc/eeprom/ |
| H A D | eeprom_93cx6.c | 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() 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 D | idt_89hpesx.c | 12 * 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. 64 * @eesize: Size of EEPROM in bytes (calculated from "idt,eecompatible") 65 * @eero: EEPROM Read-only flag 66 * @eeaddr: EEPROM custom address 68 * @inieecmd: Initial cmd value for EEPROM read/write operations 80 * @ee_file: EEPROM read/write sysfs-file 117 * struct idt_eeprom_seq - sequence of data to be read/written from/to EEPROM [all …]
|
| /linux/drivers/nvmem/ |
| H A D | lpc18xx_eeprom.c | 3 * NXP LPC18xx/LPC43xx EEPROM memory NVMEM driver 37 /* EEPROM device requires a ~1500 kHz clock (min 800 kHz, max 1600 kHz) */ 40 /* EEPROM requires 3 ms of erase/program time between each writing */ 53 static inline void lpc18xx_eeprom_writel(struct lpc18xx_eeprom_dev *eeprom, in lpc18xx_eeprom_writel() argument 56 writel(val, eeprom->reg_base + reg); in lpc18xx_eeprom_writel() 59 static inline u32 lpc18xx_eeprom_readl(struct lpc18xx_eeprom_dev *eeprom, in lpc18xx_eeprom_readl() argument 62 return readl(eeprom->reg_base + reg); in lpc18xx_eeprom_readl() 65 static int lpc18xx_eeprom_busywait_until_prog(struct lpc18xx_eeprom_dev *eeprom) in lpc18xx_eeprom_busywait_until_prog() argument 70 /* Wait until EEPROM program operation has finished */ in lpc18xx_eeprom_busywait_until_prog() 74 val = lpc18xx_eeprom_readl(eeprom, LPC18XX_EEPROM_INTSTAT); in lpc18xx_eeprom_busywait_until_prog() [all …]
|
| H A D | rave-sp-eeprom.c | 4 * 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/net/wireless/mediatek/mt7601u/ |
| H A D | eeprom.c | 13 #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 D | pvrusb2-eeprom.c | 9 #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/drivers/net/wireless/mediatek/mt76/mt7996/ |
| H A D | eeprom.c | 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() 67 mt7996_eeprom_parse_stream(const u8 *eeprom, u8 band_idx, u8 *path, in mt7996_eeprom_parse_stream() argument 73 eeprom[MT_EE_WIFI_CONF + 2]); in mt7996_eeprom_parse_stream() 75 eeprom[MT_EE_WIFI_CONF + 3]); in mt7996_eeprom_parse_stream() 77 eeprom[MT_EE_WIFI_CONF + 5]); in mt7996_eeprom_parse_stream() 81 eeprom[MT_EE_WIFI_CONF + 2]); in mt7996_eeprom_parse_stream() 83 eeprom[MT_EE_WIFI_CONF + 4]); in mt7996_eeprom_parse_stream() 85 eeprom[MT_EE_WIFI_CONF + 5]); in mt7996_eeprom_parse_stream() [all …]
|
| /linux/drivers/net/wireless/mediatek/mt76/mt7915/ |
| H A D | eeprom.c | 7 #include "eeprom.h" 16 u8 *eeprom = mdev->eeprom.data; in mt7915_eeprom_load_precal() local 18 u32 size, val = eeprom[offs]; in mt7915_eeprom_load_precal() 49 u8 *eeprom = dev->mt76.eeprom.data; in mt7915_check_eeprom() local 50 u16 val = get_unaligned_le16(eeprom); in mt7915_check_eeprom() 100 u8 *eeprom = dev->mt76.eeprom.data; in mt7915_eeprom_load_default() local 114 memcpy(eeprom, fw->data, mt7915_eeprom_size(dev)); in mt7915_eeprom_load_default() 147 /* read eeprom data from efuse */ in mt7915_eeprom_load() 162 u8 *eeprom = dev->mt76.eeprom.data; in mt7915_eeprom_parse_band_config() local 166 val = eeprom[MT_EE_WIFI_CONF + band]; in mt7915_eeprom_parse_band_config() [all …]
|
| /linux/drivers/net/wireless/intel/iwlwifi/dvm/ |
| H A D | eeprom.c | 16 /* EEPROM offset definitions */ 31 /* corresponding link offsets in EEPROM */ 67 /* SKU Capabilities (actual values from EEPROM definition) */ 76 /* radio config bits (actual values from EEPROM definition) */ 85 * EEPROM bands 87 * that they are stored in the EEPROM band information. Note 88 * that EEPROM bands aren't the same as mac80211 bands, and 89 * there are even special "ht40 bands" in the EEPROM. 148 /* EEPROM reading functions */ 150 static u16 iwl_eeprom_query16(const u8 *eeprom, size_t eeprom_size, int offset) in iwl_eeprom_query16() argument [all …]
|
| /linux/drivers/net/wireless/ralink/rt2x00/ |
| H A D | rt2800pci.c | 79 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(®, E2PROM_CSR_DATA_IN, !!eeprom->reg_data_in); in rt2800pci_eepromregister_write() 100 rt2x00_set_field32(®, E2PROM_CSR_DATA_OUT, !!eeprom->reg_data_out); in rt2800pci_eepromregister_write() [all …]
|
| /linux/drivers/net/wireless/mediatek/mt76/mt7603/ |
| H A D | eeprom.c | 5 #include "eeprom.h" 105 u8 *eeprom = dev->mt76.eeprom.data; in mt7603_apply_cal_free_data() local 109 if (!np || !of_property_read_bool(np, "mediatek,eeprom-merge-otp")) in mt7603_apply_cal_free_data() 121 eeprom[offset] = efuse[offset]; in mt7603_apply_cal_free_data() 139 u16 val = get_unaligned_le16(dev->eeprom.data); in mt7603_check_eeprom() 159 u8 *eeprom; in mt7603_eeprom_init() local 170 memcpy(dev->mt76.eeprom.data, dev->mt76.otp.data, in mt7603_eeprom_init() 174 eeprom = (u8 *)dev->mt76.eeprom.data; in mt7603_eeprom_init() 176 memcpy(dev->mphy.macaddr, eeprom + MT_EE_MAC_ADDR, ETH_ALEN); in mt7603_eeprom_init() 180 if (FIELD_GET(MT_EE_NIC_CONF_0_RX_PATH, eeprom[MT_EE_NIC_CONF_0]) == 1 || in mt7603_eeprom_init() [all …]
|
| /linux/drivers/net/ethernet/atheros/atl1e/ |
| H A D | atl1e_ethtool.c | 205 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 D | microchip,93lc46b.yaml | 4 $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 D | Kconfig | 70 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 D | nxp,lpc1857-eeprom.yaml | 4 $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/usb/ |
| H A D | asix_common.c | 618 int asix_get_eeprom(struct net_device *net, struct ethtool_eeprom *eeprom, in asix_get_eeprom() argument 626 if (eeprom->len == 0) in asix_get_eeprom() 629 eeprom->magic = AX_EEPROM_MAGIC; in asix_get_eeprom() 631 first_word = eeprom->offset >> 1; in asix_get_eeprom() 632 last_word = (eeprom->offset + eeprom->len - 1) >> 1; in asix_get_eeprom() 639 /* ax8817x returns 2 bytes from eeprom on read */ in asix_get_eeprom() 648 memcpy(data, (u8 *)eeprom_buff + (eeprom->offset & 1), eeprom->len); in asix_get_eeprom() 653 int asix_set_eeprom(struct net_device *net, struct ethtool_eeprom *eeprom, in asix_set_eeprom() argument 662 netdev_dbg(net, "write EEPROM len %d, offset %d, magic 0x%x\n", in asix_set_eeprom() 663 eeprom->len, eeprom->offset, eeprom->magic); in asix_set_eeprom() [all …]
|
| /linux/drivers/net/wireless/marvell/libertas/ |
| H A D | ethtool.c | 28 * 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 D | max6875.rst | 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 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/drivers/net/ethernet/wangxun/txgbe/ |
| H A D | txgbe_hw.c | 96 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/devicetree/bindings/net/ |
| H A D | via-velocity.txt | 9 - 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/Documentation/w1/slaves/ |
| H A D | w1_ds28e04.rst | 7 * 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/arch/arm/boot/dts/aspeed/ |
| H A D | aspeed-bmc-facebook-yosemite4.dts | 614 eeprom@50 { 619 eeprom@51 { 624 eeprom@54 { 641 eeprom@50 { 646 eeprom@51 { 651 eeprom@54 { 668 eeprom@50 { 673 eeprom@51 { 678 eeprom@54 { 695 eeprom@50 { [all …]
|
| /linux/drivers/net/ethernet/intel/igb/ |
| H A D | e1000_i210.c | 84 * igb_acquire_nvm_i210 - Request for access to EEPROM 87 * Acquire the necessary semaphores for exclusive access to the EEPROM. 88 * Set the EEPROM access request bit and wait for EEPROM access grant bit. 90 * EEPROM access and return -E1000_ERR_NVM (-1). 98 * igb_release_nvm_i210 - Release exclusive access to EEPROM 101 * Stop any current commands to the EEPROM and clear the EEPROM request bit, 318 * @address: the word address (aka eeprom offset) to read 533 * igb_validate_nvm_checksum_i210 - Validate EEPROM checksum 536 * Calculates the EEPROM checksum by reading/adding each word of the EEPROM 537 * and then verifies that the sum of the EEPROM is equal to 0xBABA. [all …]
|
| /linux/net/ethtool/ |
| H A D | eeprom.c | 32 struct ethtool_eeprom *eeprom) in fallback_set_params() argument 50 eeprom->cmd = ETHTOOL_GMODULEEEPROM; in fallback_set_params() 51 eeprom->len = length; in fallback_set_params() 52 eeprom->offset = offset; in fallback_set_params() 62 struct ethtool_eeprom eeprom = {0}; in eeprom_fallback() local 71 err = fallback_set_params(request, &modinfo, &eeprom); in eeprom_fallback() 75 data = kzalloc(eeprom.len, GFP_KERNEL); in eeprom_fallback() 78 err = ethtool_get_module_eeprom_call(dev, &eeprom, data); in eeprom_fallback() 83 reply->length = eeprom.len; in eeprom_fallback() 173 * EEPROM page without crossing low page boundary located at offset 128. in eeprom_parse_request()
|
| /linux/drivers/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_ras_eeprom.c | 37 /* These are memory addresses as would be seen by one or more EEPROM 39 * set of EEPROM devices. They form a continuous memory space. 42 * which is a reserved value and indicates that this is an I2C EEPROM 43 * device. It also includes the top 3 bits of the 19 bit EEPROM memory 52 * Depending on the size of the I2C EEPROM device(s), bits 18:16 may 56 * The RAS table lives either at address 0 or address 40000h of EEPROM. 63 * those entities occupy in the EEPROM memory. 77 * EEPROM Table structure v1 80 * | EEPROM TABLE HEADER | 90 /* Assume 2-Mbit size EEPROM and take up the whole space. */ [all …]
|