• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/arch/cris/arch-v10/drivers/

Lines Matching defs:eeprom

22 *!  $Log: eeprom.c,v $
77 *! 2.4 port of eeprom driver
123 /* This one defines how many times to try when eeprom fails. */
134 * This structure describes the attached eeprom chip.
172 static const char eeprom_name[] = "eeprom";
175 static struct eeprom_type eeprom;
187 /* eeprom init call. Probes for different eeprom models. */
191 init_waitqueue_head(&eeprom.wait_q);
192 eeprom.busy = 0;
201 printk(KERN_INFO "%s: unable to get major %d for eeprom device\n",
217 eeprom.size = 0;
218 eeprom.usec_delay_writecycles = INITIAL_WRITEDELAY_US;
219 eeprom.usec_delay_step = 128;
220 eeprom.adapt_state = 0;
247 eeprom.size = EEPROM_2KB;
248 eeprom.select_cmd = 0xA0;
249 eeprom.sequential_write_pagesize = 16;
260 eeprom.size = EEPROM_16KB;
261 eeprom.select_cmd = 0xA0;
262 eeprom.sequential_write_pagesize = 64;
305 eeprom.size = EEPROM_2KB;
306 eeprom.select_cmd = 0xA0;
307 eeprom.sequential_write_pagesize = 16;
317 eeprom.size = EEPROM_2KB;
344 eeprom.size = EEPROM_2KB;
363 eeprom.size = EEPROM_16KB;
373 eeprom.size = EEPROM_2KB;
384 eeprom.size = EEPROM_2KB;
392 eeprom.size = EEPROM_2KB;
398 eeprom.size = EEPROM_8KB;
404 eeprom.size = EEPROM_16KB;
406 eeprom.size = EEPROM_8KB;
408 eeprom.size = EEPROM_2KB;
411 switch(eeprom.size)
414 printk("%s: " EETEXT " i2c compatible 2kB eeprom.\n", eeprom_name);
415 eeprom.sequential_write_pagesize = 16;
416 eeprom.select_cmd = 0xA0;
419 printk("%s: " EETEXT " i2c compatible 8kB eeprom.\n", eeprom_name);
420 eeprom.sequential_write_pagesize = 16;
421 eeprom.select_cmd = 0x80;
424 printk("%s: " EETEXT " i2c compatible 16kB eeprom.\n", eeprom_name);
425 eeprom.sequential_write_pagesize = 64;
426 eeprom.select_cmd = 0xA0;
429 eeprom.size = 0;
430 printk("%s: Did not find a supported eeprom\n", eeprom_name);
451 if( eeprom.size > 0 )
466 * orig 0: position from begning of eeprom
468 * orig 2: position from last eeprom address
480 file->f_pos = eeprom.size - offset;
493 if (file->f_pos >= eeprom.size)
495 file->f_pos = eeprom.size - 1;
502 /* Reads data from eeprom. */
514 /* Reads data from eeprom. */
523 if(p >= eeprom.size) /* Address i 0 - (size-1) */
528 wait_event_interruptible(eeprom.wait_q, !eeprom.busy);
532 eeprom.busy++;
538 printk(KERN_INFO "%s: Read failed to address the eeprom: "
543 eeprom.busy--;
544 wake_up_interruptible(&eeprom.wait_q);
548 if( (p + count) > eeprom.size)
551 count = eeprom.size - p;
558 if(eeprom.size < EEPROM_16KB)
560 i2c_outbyte( eeprom.select_cmd | 1 | (page << 1) );
571 eeprom.busy--;
572 wake_up_interruptible(&eeprom.wait_q);
576 /* Writes data to eeprom. */
588 /* Writes data to eeprom. */
601 wait_event_interruptible(eeprom.wait_q, !eeprom.busy);
605 eeprom.busy++;
613 while( (written < count) && (p < eeprom.size))
615 /* address the eeprom */
618 printk(KERN_INFO "%s: Write failed to address the eeprom: "
623 eeprom.busy--;
624 wake_up_interruptible(&eeprom.wait_q);
629 if (eeprom.retry_cnt_addr > 0)
633 eeprom.usec_delay_writecycles, eeprom.usec_delay_step));
635 if (eeprom.usec_delay_step < 4)
637 eeprom.usec_delay_step++;
638 eeprom.usec_delay_writecycles += eeprom.usec_delay_step;
643 if (eeprom.adapt_state > 0)
646 eeprom.usec_delay_step *= 2;
647 if (eeprom.usec_delay_step > 2)
649 eeprom.usec_delay_step--;
651 eeprom.usec_delay_writecycles += eeprom.usec_delay_step;
653 else if (eeprom.adapt_state < 0)
656 eeprom.usec_delay_writecycles += eeprom.usec_delay_step;
657 if (eeprom.usec_delay_step > 1)
659 eeprom.usec_delay_step /= 2;
660 eeprom.usec_delay_step--;
665 eeprom.adapt_state = 1;
671 eeprom.usec_delay_writecycles, eeprom.usec_delay_step));
673 if (eeprom.adapt_state < 0)
676 if (eeprom.usec_delay_step > 1)
678 eeprom.usec_delay_step *= 2;
679 eeprom.usec_delay_step--;
681 if (eeprom.usec_delay_writecycles > eeprom.usec_delay_step)
683 eeprom.usec_delay_writecycles -= eeprom.usec_delay_step;
687 else if (eeprom.adapt_state > 0)
690 if (eeprom.usec_delay_writecycles > eeprom.usec_delay_step)
692 eeprom.usec_delay_writecycles -= eeprom.usec_delay_step;
694 if (eeprom.usec_delay_step > 1)
696 eeprom.usec_delay_step /= 2;
697 eeprom.usec_delay_step--;
700 eeprom.adapt_state = -1;
703 if (eeprom.adapt_state > -100)
705 eeprom.adapt_state--;
711 eeprom.usec_delay_step++;
728 } while( written < count && ( p % eeprom.sequential_write_pagesize ));
732 i2c_delay(eeprom.usec_delay_writecycles);
736 eeprom.busy--;
737 wake_up_interruptible(&eeprom.wait_q);
738 if (written == 0 && file->f_pos >= eeprom.size){
753 /* Sets the current address of the eeprom. */
768 if(eeprom.size == EEPROM_16KB)
770 i2c_outbyte( eeprom.select_cmd );
776 i2c_outbyte( eeprom.select_cmd | (page << 1) );
802 eeprom.retry_cnt_addr = i;
803 D(printk("%i\n", eeprom.retry_cnt_addr));
804 if(eeprom.retry_cnt_addr == EEPROM_RETRIES)
820 if(eeprom.size == EEPROM_16KB)
822 i2c_outbyte( eeprom.select_cmd | 1 );
833 printk(KERN_INFO "%s: failed to read from eeprom\n", eeprom_name);
871 if (eeprom.size == EEPROM_8KB)