c1e62062ff
Some ACPI systems list 2 I2C resources for the CM3218 sensor. On these systems the first I2cSerialBus ACPI-resource points to the SMBus Alert Response Address (ARA, 0x0c) and the second I2cSerialBus ACPI-resource points to the actual CM3218 sensor address: Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings { Name (SBUF, ResourceTemplate () { I2cSerialBusV2 (0x000C, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.I2C3", 0x00, ResourceConsumer, , Exclusive, ) I2cSerialBusV2 (0x0048, ControllerInitiated, 0x00061A80, AddressingMode7Bit, "\\_SB.I2C3", 0x00, ResourceConsumer, , Exclusive, ) Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) { 0x00000033, } }) Return (SBUF) /* \_SB_.I2C3.ALSD._CRS.SBUF */ } Detect this and take the following step to deal with it: 1. When a SMBus Alert capable sensor has an Alert asserted, it will not respond on its actual I2C address. Read a byte from the ARA to clear any pending Alerts. 2. Create a "dummy" client for the actual I2C address and use that client to communicate with the sensor. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> |
||
---|---|---|
.. | ||
acpi-als.c | ||
adjd_s311.c | ||
adux1020.c | ||
al3010.c | ||
al3320a.c | ||
apds9300.c | ||
apds9960.c | ||
bh1750.c | ||
bh1780.c | ||
cm3232.c | ||
cm3323.c | ||
cm3605.c | ||
cm32181.c | ||
cm36651.c | ||
cros_ec_light_prox.c | ||
gp2ap002.c | ||
gp2ap020a00f.c | ||
hid-sensor-als.c | ||
hid-sensor-prox.c | ||
iqs621-als.c | ||
isl29018.c | ||
isl29028.c | ||
isl29125.c | ||
jsa1212.c | ||
Kconfig | ||
lm3533-als.c | ||
ltr501.c | ||
lv0104cs.c | ||
Makefile | ||
max44000.c | ||
max44009.c | ||
noa1305.c | ||
opt3001.c | ||
pa12203001.c | ||
rpr0521.c | ||
si1133.c | ||
si1145.c | ||
st_uvis25_core.c | ||
st_uvis25_i2c.c | ||
st_uvis25_spi.c | ||
st_uvis25.h | ||
stk3310.c | ||
tcs3414.c | ||
tcs3472.c | ||
tsl2563.c | ||
tsl2583.c | ||
tsl2772.c | ||
tsl4531.c | ||
us5182d.c | ||
vcnl4000.c | ||
vcnl4035.c | ||
veml6030.c | ||
veml6070.c | ||
vl6180.c | ||
zopt2201.c |