Search code examples
linuxspieeprom

Read and write to spi eeprom on linux


I want to use my spi eeprom (at25) under debian (Beaglebone Black). I have edited the device tree, so now i can read and write to eeprom.

There is already a spi-at25-driver in Linux.

Reading from eeprom

cat /sys/class/spi_master/spi1/spi1.o/eeprom

writing to eeprom

echo hello > /sys/class/spi_master/spi1/spi1.o/eeprom

But i want to write and read from specific address of the eeprom. Is there any way to do this within a C-Program?

thx


Solution

  • As the eeprom here is mapped to a file representation you can use it as a normal file.

    So simply open the file, go to the place where you want to read/modify/write with seek and do your write. Don't forget a close or flush for the file id.

    It is also possible to mmap your file into your memory of the process and access the memory there as a normal array.