#include #include #include #include #include "/sys/dev/iicbus/iic.h" #define EEPROM_WR_ADDR 0xA0 #define EEPROM_RD_ADDR 0xA1 #define COUNT 256 int main(int argc, char **argv) { int fd; struct iiccmd cmd; char buf[256]; uint8_t i; if (argc != 2) errx(1, "Usage: %s ", argv[0]); if ( (fd = open(argv[1], O_RDWR)) < 0) err(1, "Opening device: %s", argv[1]); for (i=0; i < 255; ++i) { ioctl(fd, I2CSTOP, &cmd); usleep(1000); ioctl(fd, I2CRSTCARD, &cmd); usleep(1000); cmd.slave = i; cmd.count = 1; cmd.buf = buf; cmd.last = 0; buf[0] = buf[1] = buf[2] = buf[3] = 0; if (ioctl(fd, I2CSTART, &cmd) == 0) warnx("Device at %d\n", i); } return 0; }