Message ID | 20240312193132.26518-1-hoehnp@gmx.de |
---|---|
State | New |
Headers | show |
Series | [v3] i2c: i801: Add lis3lv02d for Dell Precision M6800 | expand |
On Tuesday 12 March 2024 20:31:31 Patrick Höhn wrote: > On the Dell Precision M6800/OXD1M5, BIOS A26 06/13/2029, Linux prints the > warning below. > > i801_smbus 0000:00:1f.4: Accelerometer lis3lv02d is present on SMBus but its address is unknown, skipping registration > > Following the same suggestions by Wolfram Sang as for the Dell Precision > 3540 [1], the accelerometer can be successfully found on I2C bus 0 at > address 0x29. Just to note for other users in future. I2C does not have to be assigned with number 0. This number is chosen by the kernel at runtime as the first unused number. So in case you have VGA adapter (or GPU) for which is i2c driver available and loaded + probed before i801_smbus is loaded and probed then kernel would report accelerometer at different bus number. On the other hand, accelerometer address on I2C bus normally should not change (configurable device can change it but we should hope that it does not happen). The correct number of bus can be found by the i2cdetect command too: # i2cdetect -l | grep I801 For me it prints: i2c-0 unknown SMBus I801 adapter at f040 N/A > > $ echo lis3lv02d 0x29 | sudo tee /sys/bus/i2c/devices/i2c-0/new_device > lis3lv02d 0x29 > $ dmesg | tail -5 > [1185.385204] lis3lv02d_i2c 0-0029: supply Vdd not found, using dummy regulator > [1185.385235] lis3lv02d_i2c 0-0029: supply Vdd_IO not found, using dummy regulator > [1185.399689] lis3lv02d: 8 bits 3DC sensor found > [1185.449391] input: ST LIS3LV02DL Accelerometer as /devices/platform/lis3lv02d/input/input371 > [1185.449577] i2c i2c-0: new_device: Instantiated device lis3lv02d at 0x29 > > So, the device has that accelerometer. Add the I2C address to the > mapping list, and test it successfully on the device. > > [1]: https://lore.kernel.org/linux-i2c/97708c11-ac85-fb62-2c8e-d37739ca826f@molgen.mpg.de/ > Signed-off-by: Patrick Höhn <hoehnp@gmx.de> Otherwise looks good, Acked-by: Pali Rohár <pali@kernel.org> > --- > drivers/i2c/busses/i2c-i801.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c > index 2c36b36d7d51..c1fee2c61da1 100644 > --- a/drivers/i2c/busses/i2c-i801.c > +++ b/drivers/i2c/busses/i2c-i801.c > @@ -1231,6 +1231,7 @@ static const struct { > */ > { "Latitude 5480", 0x29 }, > { "Precision 3540", 0x29 }, > + { "Precision M6800", 0x29 }, > { "Vostro V131", 0x1d }, > { "Vostro 5568", 0x29 }, > { "XPS 15 7590", 0x29 }, > -- > 2.43.2 >
Dear Linux folks, Am 12.03.24 um 20:49 schrieb Pali Rohár: > On Tuesday 12 March 2024 20:31:31 Patrick Höhn wrote: >> On the Dell Precision M6800/OXD1M5, BIOS A26 06/13/2029, Linux prints the >> warning below. >> >> i801_smbus 0000:00:1f.4: Accelerometer lis3lv02d is present on SMBus but its address is unknown, skipping registration >> >> Following the same suggestions by Wolfram Sang as for the Dell Precision >> 3540 [1], the accelerometer can be successfully found on I2C bus 0 at >> address 0x29. > > Just to note for other users in future. I2C does not have to be assigned > with number 0. This number is chosen by the kernel at runtime as the > first unused number. So in case you have VGA adapter (or GPU) for which > is i2c driver available and loaded + probed before i801_smbus is loaded > and probed then kernel would report accelerometer at different bus > number. On the other hand, accelerometer address on I2C bus normally > should not change (configurable device can change it but we should hope > that it does not happen). > > The correct number of bus can be found by the i2cdetect command too: > > # i2cdetect -l | grep I801 > > For me it prints: > > i2c-0 unknown SMBus I801 adapter at f040 N/A > >> >> $ echo lis3lv02d 0x29 | sudo tee /sys/bus/i2c/devices/i2c-0/new_device >> lis3lv02d 0x29 >> $ dmesg | tail -5 >> [1185.385204] lis3lv02d_i2c 0-0029: supply Vdd not found, using dummy regulator >> [1185.385235] lis3lv02d_i2c 0-0029: supply Vdd_IO not found, using dummy regulator >> [1185.399689] lis3lv02d: 8 bits 3DC sensor found >> [1185.449391] input: ST LIS3LV02DL Accelerometer as /devices/platform/lis3lv02d/input/input371 >> [1185.449577] i2c i2c-0: new_device: Instantiated device lis3lv02d at 0x29 >> >> So, the device has that accelerometer. Add the I2C address to the >> mapping list, and test it successfully on the device. >> >> [1]: https://lore.kernel.org/linux-i2c/97708c11-ac85-fb62-2c8e-d37739ca826f@molgen.mpg.de/ >> Signed-off-by: Patrick Höhn <hoehnp@gmx.de> > > Otherwise looks good, > > Acked-by: Pali Rohár <pali@kernel.org> Is there anything else to do from Patrick’s side before adding the patch to the git archive? Kind regards, Paul >> --- >> drivers/i2c/busses/i2c-i801.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c >> index 2c36b36d7d51..c1fee2c61da1 100644 >> --- a/drivers/i2c/busses/i2c-i801.c >> +++ b/drivers/i2c/busses/i2c-i801.c >> @@ -1231,6 +1231,7 @@ static const struct { >> */ >> { "Latitude 5480", 0x29 }, >> { "Precision 3540", 0x29 }, >> + { "Precision M6800", 0x29 }, >> { "Vostro V131", 0x1d }, >> { "Vostro 5568", 0x29 }, >> { "XPS 15 7590", 0x29 }, >> -- >> 2.43.2
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c index 2c36b36d7d51..c1fee2c61da1 100644 --- a/drivers/i2c/busses/i2c-i801.c +++ b/drivers/i2c/busses/i2c-i801.c @@ -1231,6 +1231,7 @@ static const struct { */ { "Latitude 5480", 0x29 }, { "Precision 3540", 0x29 }, + { "Precision M6800", 0x29 }, { "Vostro V131", 0x1d }, { "Vostro 5568", 0x29 }, { "XPS 15 7590", 0x29 },
On the Dell Precision M6800/OXD1M5, BIOS A26 06/13/2029, Linux prints the warning below. i801_smbus 0000:00:1f.4: Accelerometer lis3lv02d is present on SMBus but its address is unknown, skipping registration Following the same suggestions by Wolfram Sang as for the Dell Precision 3540 [1], the accelerometer can be successfully found on I2C bus 0 at address 0x29. $ echo lis3lv02d 0x29 | sudo tee /sys/bus/i2c/devices/i2c-0/new_device lis3lv02d 0x29 $ dmesg | tail -5 [1185.385204] lis3lv02d_i2c 0-0029: supply Vdd not found, using dummy regulator [1185.385235] lis3lv02d_i2c 0-0029: supply Vdd_IO not found, using dummy regulator [1185.399689] lis3lv02d: 8 bits 3DC sensor found [1185.449391] input: ST LIS3LV02DL Accelerometer as /devices/platform/lis3lv02d/input/input371 [1185.449577] i2c i2c-0: new_device: Instantiated device lis3lv02d at 0x29 So, the device has that accelerometer. Add the I2C address to the mapping list, and test it successfully on the device. [1]: https://lore.kernel.org/linux-i2c/97708c11-ac85-fb62-2c8e-d37739ca826f@molgen.mpg.de/ Signed-off-by: Patrick Höhn <hoehnp@gmx.de> --- drivers/i2c/busses/i2c-i801.c | 1 + 1 file changed, 1 insertion(+) -- 2.43.2