• Alessandro Rubini's avatar
    w1: complete eeprom low-level support · d44ace7e
    Alessandro Rubini authored
    This completes w1-eeproom.c with the complete API. The provided test
    commands allow to read and write any size at any offset (the low-level
    code manages cross-page reads and writes. The following examples
    modify a pre-written eeprom, which I host in an external socket of
    my SPEC card:
    
       wrc# w1r 0 4
       read(0x0, 4): result = 4
       offset    0 (0x000): 240 (0xf0)
       offset    1 (0x001): 241 (0xf1)
       offset    2 (0x002): 242 (0xf2)
       offset    3 (0x003): 243 (0xf3)
    
       wrc# w1w 0 40 41 42
       offset    0 (0x000):  40 (0x28)
       offset    1 (0x001):  41 (0x29)
       offset    2 (0x002):  42 (0x2a)
       write(0x0, 3): result = 3
    
       wrc# w1r 0 4
       read(0x0, 4): result = 4
       offset    0 (0x000):  40 (0x28)
       offset    1 (0x001):  41 (0x29)
       offset    2 (0x002):  42 (0x2a)
       offset    3 (0x003): 243 (0xf3)
    
       wrc# w1r 30 4
       read(0x1e, 4): result = 4
       offset   30 (0x01e):  69 (0x45)
       offset   31 (0x01f):  70 (0x46)
       offset   32 (0x020):  71 (0x47)
       offset   33 (0x021):  72 (0x48)
    
       wrc# w1w 30 11 22 33 44 55 66
       offset   30 (0x01e):  11 (0x0b)
       offset   31 (0x01f):  22 (0x16)
       offset   32 (0x020):  33 (0x21)
       offset   33 (0x021):  44 (0x2c)
       offset   34 (0x022):  55 (0x37)
       offset   35 (0x023):  66 (0x42)
       write(0x1e, 6): result = 6
    
       wrc# w1r 30 6
       read(0x1e, 6): result = 6
       offset   30 (0x01e):  11 (0x0b)
       offset   31 (0x01f):  22 (0x16)
       offset   32 (0x020):  33 (0x21)
       offset   33 (0x021):  44 (0x2c)
       offset   34 (0x022):  55 (0x37)
       offset   35 (0x023):  66 (0x42)
    Signed-off-by: Alessandro Rubini's avatarAlessandro Rubini <rubini@gnudd.com>
    d44ace7e
w1-eeprom.c 4.37 KB