Home
last modified time | relevance | path

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

12345678910>>...110

/kernel/linux/linux-6.6/drivers/misc/eeprom/
Deeprom_93cx6.c7 * Abstract: EEPROM reader routines for 93cx6 chipsets.
18 MODULE_DESCRIPTION("EEPROM 93cx6 chip driver");
21 static inline void eeprom_93cx6_pulse_high(struct eeprom_93cx6 *eeprom) in eeprom_93cx6_pulse_high() argument
23 eeprom->reg_data_clock = 1; in eeprom_93cx6_pulse_high()
24 eeprom->register_write(eeprom); in eeprom_93cx6_pulse_high()
34 static inline void eeprom_93cx6_pulse_low(struct eeprom_93cx6 *eeprom) in eeprom_93cx6_pulse_low() argument
36 eeprom->reg_data_clock = 0; in eeprom_93cx6_pulse_low()
37 eeprom->register_write(eeprom); in eeprom_93cx6_pulse_low()
47 static void eeprom_93cx6_startup(struct eeprom_93cx6 *eeprom) in eeprom_93cx6_startup() argument
52 eeprom->register_read(eeprom); in eeprom_93cx6_startup()
[all …]
/kernel/linux/linux-5.10/drivers/misc/eeprom/
Deeprom_93cx6.c7 * Abstract: EEPROM reader routines for 93cx6 chipsets.
18 MODULE_DESCRIPTION("EEPROM 93cx6 chip driver");
21 static inline void eeprom_93cx6_pulse_high(struct eeprom_93cx6 *eeprom) in eeprom_93cx6_pulse_high() argument
23 eeprom->reg_data_clock = 1; in eeprom_93cx6_pulse_high()
24 eeprom->register_write(eeprom); in eeprom_93cx6_pulse_high()
34 static inline void eeprom_93cx6_pulse_low(struct eeprom_93cx6 *eeprom) in eeprom_93cx6_pulse_low() argument
36 eeprom->reg_data_clock = 0; in eeprom_93cx6_pulse_low()
37 eeprom->register_write(eeprom); in eeprom_93cx6_pulse_low()
47 static void eeprom_93cx6_startup(struct eeprom_93cx6 *eeprom) in eeprom_93cx6_startup() argument
52 eeprom->register_read(eeprom); in eeprom_93cx6_startup()
[all …]
/kernel/linux/linux-6.6/drivers/nvmem/
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 …]
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 …]
/kernel/linux/linux-5.10/drivers/nvmem/
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 …]
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 …]
/kernel/linux/linux-5.10/drivers/i2c/
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 …]
/kernel/linux/linux-6.6/drivers/i2c/
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 …]
/kernel/linux/linux-6.6/drivers/net/wireless/mediatek/mt7601u/
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 …]
/kernel/linux/linux-5.10/drivers/net/wireless/mediatek/mt7601u/
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 …]
/kernel/linux/linux-6.6/drivers/media/usb/pvrusb2/
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 …]
/kernel/linux/linux-5.10/drivers/media/usb/pvrusb2/
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 …]
/kernel/linux/linux-6.6/drivers/net/wireless/mediatek/mt76/mt7996/
Deeprom.c8 #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()
32 u8 *eeprom = dev->mt76.eeprom.data; in mt7996_eeprom_load_default() local
46 memcpy(eeprom, fw->data, MT7996_EEPROM_SIZE); in mt7996_eeprom_load_default()
78 /* read eeprom data from efuse */ in mt7996_eeprom_load()
114 u8 *eeprom = phy->dev->mt76.eeprom.data; in mt7996_eeprom_parse_band_config() local
115 u32 val = eeprom[MT_EE_WIFI_CONF]; in mt7996_eeprom_parse_band_config()
123 val = eeprom[MT_EE_WIFI_CONF + 1]; in mt7996_eeprom_parse_band_config()
152 u8 *eeprom = dev->mt76.eeprom.data; in mt7996_eeprom_parse_hw_cap() local
[all …]
/kernel/linux/linux-6.6/include/linux/
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 …]
/kernel/linux/linux-6.6/drivers/net/wireless/mediatek/mt76/mt7915/
Deeprom.c7 #include "eeprom.h"
16 u8 *eeprom = mdev->eeprom.data; in mt7915_eeprom_load_precal() local
17 u32 val = eeprom[MT_EE_DO_PRE_CAL]; in mt7915_eeprom_load_precal()
38 u8 *eeprom = dev->mt76.eeprom.data; in mt7915_check_eeprom() local
39 u16 val = get_unaligned_le16(eeprom); in mt7915_check_eeprom()
89 u8 *eeprom = dev->mt76.eeprom.data; in mt7915_eeprom_load_default() local
103 memcpy(eeprom, fw->data, mt7915_eeprom_size(dev)); in mt7915_eeprom_load_default()
136 /* read eeprom data from efuse */ in mt7915_eeprom_load()
151 u8 *eeprom = dev->mt76.eeprom.data; in mt7915_eeprom_parse_band_config() local
155 val = eeprom[MT_EE_WIFI_CONF + band]; in mt7915_eeprom_parse_band_config()
[all …]
/kernel/linux/linux-5.10/include/linux/
Deeprom_93cx6.h10 Abstract: EEPROM reader datastructures for 93cx6 chipsets.
15 * EEPROM operation defines.
30 * for reading the eeprom data.
32 * @register_read(struct eeprom_93cx6 *eeprom): handler to
33 * read the eeprom register, this function should set all reg_* fields.
34 * @register_write(struct eeprom_93cx6 *eeprom): handler to
35 * write to the eeprom register by using all reg_* fields.
36 * @width: eeprom width, should be one of the PCI_EEPROM_WIDTH_* defines
44 * and the eeprom_93cx6 handlers for reading the eeprom.
49 void (*register_read)(struct eeprom_93cx6 *eeprom);
[all …]
/kernel/linux/linux-6.6/drivers/net/ethernet/intel/e1000e/
Dnvm.c7 * e1000_raise_eec_clk - Raise EEPROM clock
9 * @eecd: pointer to the EEPROM
11 * Enable/Raise the EEPROM clock bit.
22 * e1000_lower_eec_clk - Lower EEPROM clock
24 * @eecd: pointer to the EEPROM
26 * Clear/Lower the EEPROM clock bit.
37 * e1000_shift_out_eec_bits - Shift data bits our to the EEPROM
39 * @data: data to send to the EEPROM
42 * We need to shift 'count' bits out to the EEPROM. So, the value in the
43 * "data" parameter will be shifted out to the EEPROM one bit at a time.
[all …]
/kernel/linux/linux-5.10/drivers/net/ethernet/intel/e1000e/
Dnvm.c7 * e1000_raise_eec_clk - Raise EEPROM clock
9 * @eecd: pointer to the EEPROM
11 * Enable/Raise the EEPROM clock bit.
22 * e1000_lower_eec_clk - Lower EEPROM clock
24 * @eecd: pointer to the EEPROM
26 * Clear/Lower the EEPROM clock bit.
37 * e1000_shift_out_eec_bits - Shift data bits our to the EEPROM
39 * @data: data to send to the EEPROM
42 * We need to shift 'count' bits out to the EEPROM. So, the value in the
43 * "data" parameter will be shifted out to the EEPROM one bit at a time.
[all …]
/kernel/linux/linux-5.10/drivers/net/ethernet/intel/ixgb/
Dixgb_ee.c21 * Raises the EEPROM's clock input.
30 /* Raise the clock input to the EEPROM (by setting the SK bit), and then in ixgb_raise_clock()
40 * Lowers the EEPROM's clock input.
49 /* Lower the clock input to the EEPROM (by clearing the SK bit), and then in ixgb_lower_clock()
59 * Shift data bits out to the EEPROM.
62 * data - data to send to the EEPROM
73 /* We need to shift "count" bits out to the EEPROM. So, value in the in ixgb_shift_out_bits()
74 * "data" parameter will be shifted out to the EEPROM one bit at a time. in ixgb_shift_out_bits()
81 /* A "1" is shifted out to the EEPROM by setting bit "DI" to a "1", in ixgb_shift_out_bits()
83 * the clock input to the EEPROM). A "0" is shifted out to the EEPROM in ixgb_shift_out_bits()
[all …]
/kernel/linux/linux-6.6/Documentation/devicetree/bindings/nvmem/
Dlpc1857-eeprom.txt1 * NXP LPC18xx EEPROM memory NVMEM driver
4 - compatible: Should be "nxp,lpc1857-eeprom"
8 - reg: EEPROM registers.
9 - mem: EEPROM address space.
12 - eeprom: EEPROM operating clock.
14 the EEPROM in reset.
15 - interrupts: Should contain EEPROM interrupt.
19 eeprom: eeprom@4000e000 {
20 compatible = "nxp,lpc1857-eeprom";
25 clock-names = "eeprom";
/kernel/linux/linux-5.10/Documentation/devicetree/bindings/nvmem/
Dlpc1857-eeprom.txt1 * NXP LPC18xx EEPROM memory NVMEM driver
4 - compatible: Should be "nxp,lpc1857-eeprom"
8 - reg: EEPROM registers.
9 - mem: EEPROM address space.
12 - eeprom: EEPROM operating clock.
14 the EEPROM in reset.
15 - interrupts: Should contain EEPROM interrupt.
19 eeprom: eeprom@4000e000 {
20 compatible = "nxp,lpc1857-eeprom";
25 clock-names = "eeprom";
/kernel/linux/linux-5.10/drivers/net/ethernet/intel/igc/
Digc_nvm.c8 * 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
39 * igc_acquire_nvm - Generic request for access to EEPROM
42 * Set the EEPROM access request bit and wait for EEPROM access grant bit.
44 * EEPROM access and return -IGC_ERR_NVM (-1).
74 * igc_release_nvm - Release exclusive access to EEPROM
77 * Stop any current commands to the EEPROM and clear the EEPROM request bit.
89 * igc_read_nvm_eerd - Reads EEPROM using EERD register
91 * @offset: offset of word in the EEPROM to read
[all …]
/kernel/linux/linux-6.6/drivers/net/ethernet/intel/igc/
Digc_nvm.c8 * 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
39 * igc_acquire_nvm - Generic request for access to EEPROM
42 * Set the EEPROM access request bit and wait for EEPROM access grant bit.
44 * EEPROM access and return -IGC_ERR_NVM (-1).
74 * igc_release_nvm - Release exclusive access to EEPROM
77 * Stop any current commands to the EEPROM and clear the EEPROM request bit.
89 * igc_read_nvm_eerd - Reads EEPROM using EERD register
91 * @offset: offset of word in the EEPROM to read
[all …]
/kernel/linux/linux-5.10/drivers/net/ethernet/intel/igb/
De1000_nvm.c11 * igb_raise_eec_clk - Raise EEPROM clock
13 * @eecd: pointer to the EEPROM
15 * Enable/Raise the EEPROM clock bit.
26 * igb_lower_eec_clk - Lower EEPROM clock
28 * @eecd: pointer to the EEPROM
30 * Clear/Lower the EEPROM clock bit.
41 * igb_shift_out_eec_bits - Shift data bits our to the EEPROM
43 * @data: data to send to the EEPROM
46 * We need to shift 'count' bits out to the EEPROM. So, the value in the
47 * "data" parameter will be shifted out to the EEPROM one bit at a time.
[all …]
/kernel/linux/linux-6.6/drivers/net/ethernet/intel/igb/
De1000_nvm.c11 * igb_raise_eec_clk - Raise EEPROM clock
13 * @eecd: pointer to the EEPROM
15 * Enable/Raise the EEPROM clock bit.
26 * igb_lower_eec_clk - Lower EEPROM clock
28 * @eecd: pointer to the EEPROM
30 * Clear/Lower the EEPROM clock bit.
41 * igb_shift_out_eec_bits - Shift data bits our to the EEPROM
43 * @data: data to send to the EEPROM
46 * We need to shift 'count' bits out to the EEPROM. So, the value in the
47 * "data" parameter will be shifted out to the EEPROM one bit at a time.
[all …]

12345678910>>...110