mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
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 <[email protected]> Tested-by: Guenter Roeck <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
This commit is contained in:
parent
1dff59831b
commit
2408c17fce
2 changed files with 128 additions and 14 deletions
|
|
@ -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.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue