None of those tools seem to support the smbus block read mode. I tried:
i2cdump -y 4 -r 0x12-0x12 0x60 s to read from address 0x12 32 bits on device address 0x60. Says it’s not supported the device I’m trying to read from is an ACS37800 which has 32bit wide registers.
I’ll look into the github example later but that’s where my original code came from anyway.
Hi Sorry about the late reply I got tied up with other business.
So copied like for like the batterychargerreading example. I get exactly the same kernel crash as previously provided.
I either can understand the command structure of i2cget or it just doesn’t work see below where I try and do an smbus read of 32 bits followed by reading a word.
root@swi-mdm9x28-wp:~# i2cget -y 4 0x60 0x12 c 32
BusyBox v1.31.1 () multi-call binary.
Usage: i2cget [-fy] BUS CHIP-ADDRESS [DATA-ADDRESS [MODE]]
root@swi-mdm9x28-wp:~# i2cget -y 4 0x60 0x12 w
0x0000
as you can see the word works just fine the response for the smbus seems like a malformed command has happened the link you provided does not give an example for smbus cmd c mode.
Thats what I get from a logic analyser and the response on the terminal is similar to yours however with my expected register values.
I can send this command via the system command to a file then parse the data out of the file to finally get my specific reading from the address. I would have thought there was a better way. Obviously the only issue is i2cdump is expecting each address to be 8bit but they are 32bit so the numbering that the terminal returns is incorrect.