Francis:

Referring to:
https://www.kernel.org/doc/Documentation/i2c/smbus-protocol

SMBus Process Call:
===================

This command selects a device register (through the Comm byte), sends
16 bits of data to it, and reads 16 bits of data in return.


So, write 16 bits to a specific register, followed by a 16 bit read.

It seems you could synthesize this by using a "SMBus Write Word" followed 
by a "SMBus Read Word"

Or synthesize it out of single byte primitives, or ... .

You just need to make sure that if you stack up multiple commands to do the 
same thing, that in a multi-threaded environment, that the OS does not let 
other threads share/grab the device in between your commands.

--- Graham

==

On Friday, February 3, 2017 at 5:24:02 AM UTC-6, Francis wrote:
>
> Hi,
>
> I am trying to create an application on top/based on the i2c tools.
> Everything was working well, except the i2c_smbus_block_process_call(), 
> which returns an error when called.
>
> Below is the output of i2cdetect -F:
>
> Functionalities implemented by /dev/i2c-2:
> I2C                              yes
> SMBus Quick Command              no
> SMBus Send Byte                  yes
> SMBus Receive Byte               yes
> SMBus Write Byte                 yes
> SMBus Read Byte                  yes
> SMBus Write Word                 yes
> SMBus Read Word                  yes
> SMBus Process Call               yes
> SMBus Block Write                yes
> SMBus Block Read                 no
> SMBus Block Process Call         no
> SMBus PEC                        yes
> I2C Block Write                  yes
> I2C Block Read                   yes
>
> -----
>
> Based from it, I could tell that SMBus Process Call is not supported.
> could anyone suggests an alternative or give directions on how to make a 
> process call?
>
> Thanks in advance!
>
> Francis
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/9f1be03b-fa7e-45f7-b831-acd09794cb52%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to