summaryrefslogtreecommitdiffstats
path: root/Documentation/i2c/i2c-stub
diff options
context:
space:
mode:
authorJean Delvare <jdelvare@suse.de>2014-07-10 12:56:59 +0200
committerWolfram Sang <wsa@the-dreams.de>2014-07-17 19:56:15 +0200
commit2408c17fce9236d929b15a975cbd8129de089d62 (patch)
tree1c2c69fbba6554fe59d8dbd947aa378892990f7a /Documentation/i2c/i2c-stub
parent1dff59831b2b78122a883f44269be6597b378afa (diff)
downloadlinux-2408c17fce9236d929b15a975cbd8129de089d62.tar.bz2
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>
Diffstat (limited to 'Documentation/i2c/i2c-stub')
-rw-r--r--Documentation/i2c/i2c-stub11
1 files changed, 7 insertions, 4 deletions
diff --git a/Documentation/i2c/i2c-stub b/Documentation/i2c/i2c-stub
index a0fe7a04a3bd..a16924fbd289 100644
--- a/Documentation/i2c/i2c-stub
+++ b/Documentation/i2c/i2c-stub
@@ -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.