Symbol: m24lr
drivers/misc/eeprom/m24lr.c
201
static ssize_t m24lr_read(struct m24lr *m24lr, u8 *buf, size_t size,
drivers/misc/eeprom/m24lr.c
208
regmap = m24lr->eeprom_regmap;
drivers/misc/eeprom/m24lr.c
210
regmap = m24lr->ctl_regmap;
drivers/misc/eeprom/m24lr.c
212
mutex_lock(&m24lr->lock);
drivers/misc/eeprom/m24lr.c
214
mutex_unlock(&m24lr->lock);
drivers/misc/eeprom/m24lr.c
237
static ssize_t m24lr_write(struct m24lr *m24lr, const u8 *buf, size_t size,
drivers/misc/eeprom/m24lr.c
246
regmap = m24lr->eeprom_regmap;
drivers/misc/eeprom/m24lr.c
248
regmap = m24lr->ctl_regmap;
drivers/misc/eeprom/m24lr.c
250
n = min_t(unsigned int, size, m24lr->page_size);
drivers/misc/eeprom/m24lr.c
251
next_sector = roundup(offset + 1, m24lr->page_size);
drivers/misc/eeprom/m24lr.c
255
mutex_lock(&m24lr->lock);
drivers/misc/eeprom/m24lr.c
268
n = min_t(unsigned int, size, m24lr->page_size);
drivers/misc/eeprom/m24lr.c
270
mutex_unlock(&m24lr->lock);
drivers/misc/eeprom/m24lr.c
292
static ssize_t m24lr_write_pass(struct m24lr *m24lr, const char *buf,
drivers/misc/eeprom/m24lr.c
317
mutex_lock(&m24lr->lock);
drivers/misc/eeprom/m24lr.c
318
ret = m24lr_regmap_write(m24lr->ctl_regmap, output, 9, 2304);
drivers/misc/eeprom/m24lr.c
319
mutex_unlock(&m24lr->lock);
drivers/misc/eeprom/m24lr.c
324
static ssize_t m24lr_read_reg_le(struct m24lr *m24lr, u64 *val,
drivers/misc/eeprom/m24lr.c
331
ret = m24lr_read(m24lr, (u8 *)&input, reg_size, reg_addr, false);
drivers/misc/eeprom/m24lr.c
362
struct m24lr *m24lr = priv;
drivers/misc/eeprom/m24lr.c
367
if (offset + bytes > m24lr->eeprom_size)
drivers/misc/eeprom/m24lr.c
370
err = m24lr_read(m24lr, val, bytes, offset, true);
drivers/misc/eeprom/m24lr.c
381
struct m24lr *m24lr = priv;
drivers/misc/eeprom/m24lr.c
386
if (offset + bytes > m24lr->eeprom_size)
drivers/misc/eeprom/m24lr.c
389
err = m24lr_write(m24lr, val, bytes, offset, true);
drivers/misc/eeprom/m24lr.c
400
struct m24lr *m24lr = attr->private;
drivers/misc/eeprom/m24lr.c
405
if (size_add(offset, count) > m24lr->sss_len)
drivers/misc/eeprom/m24lr.c
408
return m24lr_read(m24lr, buf, count, offset, false);
drivers/misc/eeprom/m24lr.c
415
struct m24lr *m24lr = attr->private;
drivers/misc/eeprom/m24lr.c
420
if (size_add(offset, count) > m24lr->sss_len)
drivers/misc/eeprom/m24lr.c
423
return m24lr_write(m24lr, buf, count, offset, false);
drivers/misc/eeprom/m24lr.c
430
struct m24lr *m24lr = i2c_get_clientdata(to_i2c_client(dev));
drivers/misc/eeprom/m24lr.c
432
return m24lr_write_pass(m24lr, buf, count, 7);
drivers/misc/eeprom/m24lr.c
439
struct m24lr *m24lr = i2c_get_clientdata(to_i2c_client(dev));
drivers/misc/eeprom/m24lr.c
441
return m24lr_write_pass(m24lr, buf, count, 9);
drivers/misc/eeprom/m24lr.c
448
struct m24lr *m24lr = i2c_get_clientdata(to_i2c_client(dev));
drivers/misc/eeprom/m24lr.c
450
return sysfs_emit(buf, "%llx\n", m24lr->uid);
drivers/misc/eeprom/m24lr.c
457
struct m24lr *m24lr = i2c_get_clientdata(to_i2c_client(dev));
drivers/misc/eeprom/m24lr.c
459
return sysfs_emit(buf, "%x\n", m24lr->sss_len);
drivers/misc/eeprom/m24lr.c
498
struct m24lr *m24lr;
drivers/misc/eeprom/m24lr.c
509
m24lr = devm_kzalloc(dev, sizeof(struct m24lr), GFP_KERNEL);
drivers/misc/eeprom/m24lr.c
510
if (!m24lr)
drivers/misc/eeprom/m24lr.c
540
mutex_init(&m24lr->lock);
drivers/misc/eeprom/m24lr.c
541
m24lr->sss_len = chip->sss_len;
drivers/misc/eeprom/m24lr.c
542
m24lr->page_size = chip->page_size;
drivers/misc/eeprom/m24lr.c
543
m24lr->eeprom_size = chip->eeprom_size;
drivers/misc/eeprom/m24lr.c
544
m24lr->eeprom_regmap = eeprom_regmap;
drivers/misc/eeprom/m24lr.c
545
m24lr->ctl_regmap = ctl_regmap;
drivers/misc/eeprom/m24lr.c
555
nvmem_conf.priv = m24lr;
drivers/misc/eeprom/m24lr.c
562
i2c_set_clientdata(client, m24lr);
drivers/misc/eeprom/m24lr.c
563
i2c_set_clientdata(eeprom_client, m24lr);
drivers/misc/eeprom/m24lr.c
566
bin_attr_sss.private = m24lr;
drivers/misc/eeprom/m24lr.c
573
err = m24lr_read_reg_le(m24lr, &m24lr->uid, 2324, sizeof(m24lr->uid));