i2c: stub: Add support for banked register ranges
Some chips implement banked register ranges. This allows implementing more registers than the limited 8-bit address space originally allows. In order to access a register on these chips, you must first select the proper bank. Add support for this mechanism to the i2c-stub driver so that such chips can be emulated. All the bank settings are passed as module parameters. Signed-off-by: Jean Delvare <jdelvare@suse.de> Tested-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
This commit is contained in:
committed by
Wolfram Sang
parent
1dff59831b
commit
2408c17fce
@@ -47,15 +47,18 @@ unsigned long functionality:
|
||||
value 0x1f0000 would only enable the quick, byte and byte data
|
||||
commands.
|
||||
|
||||
u8 bank_reg[10]
|
||||
u8 bank_mask[10]
|
||||
u8 bank_start[10]
|
||||
u8 bank_end[10]:
|
||||
Optional bank settings. They tell which bits in which register
|
||||
select the active bank, as well as the range of banked registers.
|
||||
|
||||
CAVEATS:
|
||||
|
||||
If your target driver polls some byte or word waiting for it to change, the
|
||||
stub could lock it up. Use i2cset to unlock it.
|
||||
|
||||
If the hardware for your driver has banked registers (e.g. Winbond sensors
|
||||
chips) this module will not work well - although it could be extended to
|
||||
support that pretty easily.
|
||||
|
||||
If you spam it hard enough, printk can be lossy. This module really wants
|
||||
something like relayfs.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user