• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/misc/eeprom/

Lines Matching defs:at25

2  * at25.c -- support most SPI EEPROMs, such as Atmel AT25 models
67 struct at25_data *at25,
79 if (unlikely(offset >= at25->bin.size))
81 if ((offset + count) > at25->bin.size)
82 count = at25->bin.size - offset;
90 switch (at25->addrlen) {
104 t[0].len = at25->addrlen + 1;
111 mutex_lock(&at25->lock);
119 status = spi_sync(at25->spi, &m);
120 dev_dbg(&at25->spi->dev,
124 mutex_unlock(&at25->lock);
134 struct at25_data *at25;
137 at25 = dev_get_drvdata(dev);
139 return at25_ee_read(at25, buf, off, count);
144 at25_ee_write(struct at25_data *at25, const char *buf, loff_t off,
152 if (unlikely(off >= at25->bin.size))
154 if ((off + count) > at25->bin.size)
155 count = at25->bin.size - off;
160 buf_size = at25->chip.page_size;
163 bounce = kmalloc(buf_size + at25->addrlen + 1, GFP_KERNEL);
171 mutex_lock(&at25->lock);
180 status = spi_write(at25->spi, cp, 1);
182 dev_dbg(&at25->spi->dev, "WREN --> %d\n",
188 switch (at25->addrlen) {
203 status = spi_write(at25->spi, bounce,
204 segment + at25->addrlen + 1);
205 dev_dbg(&at25->spi->dev,
220 sr = spi_w8r8(at25->spi, AT25_RDSR);
222 dev_dbg(&at25->spi->dev,
233 dev_err(&at25->spi->dev,
250 mutex_unlock(&at25->lock);
262 struct at25_data *at25;
265 at25 = dev_get_drvdata(dev);
267 return at25_ee_write(at25, buf, off, count);
277 struct at25_data *at25 = container_of(mem, struct at25_data, mem);
279 return at25_ee_read(at25, buf, offset, count);
285 struct at25_data *at25 = container_of(mem, struct at25_data, mem);
287 return at25_ee_write(at25, buf, offset, count);
294 struct at25_data *at25 = NULL;
332 if (!(at25 = kzalloc(sizeof *at25, GFP_KERNEL))) {
337 mutex_init(&at25->lock);
338 at25->chip = *chip;
339 at25->spi = spi_dev_get(spi);
340 dev_set_drvdata(&spi->dev, at25);
341 at25->addrlen = addrlen;
352 sysfs_bin_attr_init(&at25->bin);
353 at25->bin.attr.name = "eeprom";
354 at25->bin.attr.mode = S_IRUSR;
355 at25->bin.read = at25_bin_read;
356 at25->mem.read = at25_mem_read;
358 at25->bin.size = at25->chip.byte_len;
360 at25->bin.write = at25_bin_write;
361 at25->bin.attr.mode |= S_IWUSR;
362 at25->mem.write = at25_mem_write;
365 err = sysfs_create_bin_file(&spi->dev.kobj, &at25->bin);
370 chip->setup(&at25->mem, chip->context);
373 (at25->bin.size < 1024)
374 ? at25->bin.size
375 : (at25->bin.size / 1024),
376 (at25->bin.size < 1024) ? "Byte" : "KByte",
377 at25->chip.name,
379 at25->chip.page_size);
383 kfree(at25);
389 struct at25_data *at25;
391 at25 = dev_get_drvdata(&spi->dev);
392 sysfs_remove_bin_file(&spi->dev.kobj, &at25->bin);
393 kfree(at25);
401 .name = "at25",
423 MODULE_ALIAS("spi:at25");