diff mbox series

i2c: i801: add lis3lv02d's I2C address for Vostro 5568

Message ID 20221006145440.10281-1-namcaov@gmail.com
State New
Headers show
Series i2c: i801: add lis3lv02d's I2C address for Vostro 5568 | expand

Commit Message

Nam Cao Oct. 6, 2022, 2:54 p.m. UTC
Dell Vostro 5568 laptop has lis3lv02d, but its i2c address is not known
to the kernel. Add this address.

Output of "cat /sys/devices/platform/lis3lv02d/position" on Dell Vostro
5568 laptop:
    - Horizontal: (-18,0,1044)
    - Front elevated: (522,-18,1080)
    - Left elevated: (-18,-360,1080)
    - Upside down: (36,108,-1134)

Signed-off-by: Nam Cao <namcaov@gmail.com>
---
 drivers/i2c/busses/i2c-i801.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Jean Delvare Oct. 18, 2022, 5:39 p.m. UTC | #1
On Thu, 06 Oct 2022 16:54:40 +0200, Nam Cao wrote:
> Dell Vostro 5568 laptop has lis3lv02d, but its i2c address is not known
> to the kernel. Add this address.
> 
> Output of "cat /sys/devices/platform/lis3lv02d/position" on Dell Vostro
> 5568 laptop:
>     - Horizontal: (-18,0,1044)
>     - Front elevated: (522,-18,1080)
>     - Left elevated: (-18,-360,1080)
>     - Upside down: (36,108,-1134)
> 
> Signed-off-by: Nam Cao <namcaov@gmail.com>
> ---
>  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 a176296f4fff..e46561e095c6 100644
> --- a/drivers/i2c/busses/i2c-i801.c
> +++ b/drivers/i2c/busses/i2c-i801.c
> @@ -1243,6 +1243,7 @@ static const struct {
>  	 */
>  	{ "Latitude 5480",      0x29 },
>  	{ "Vostro V131",        0x1d },
> +	{ "Vostro 5568",        0x29 },
>  };
>  
>  static void register_dell_lis3lv02d_i2c_device(struct i801_priv *priv)

Fine with me.

Reviewed-by: Jean Delvare <jdelvare@suse.de>

Pali, OK with you?
Pali Rohár Oct. 18, 2022, 6 p.m. UTC | #2
On Tuesday 18 October 2022 19:39:51 Jean Delvare wrote:
> On Thu, 06 Oct 2022 16:54:40 +0200, Nam Cao wrote:
> > Dell Vostro 5568 laptop has lis3lv02d, but its i2c address is not known
> > to the kernel. Add this address.
> > 
> > Output of "cat /sys/devices/platform/lis3lv02d/position" on Dell Vostro
> > 5568 laptop:
> >     - Horizontal: (-18,0,1044)
> >     - Front elevated: (522,-18,1080)
> >     - Left elevated: (-18,-360,1080)
> >     - Upside down: (36,108,-1134)
> > 
> > Signed-off-by: Nam Cao <namcaov@gmail.com>
> > ---
> >  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 a176296f4fff..e46561e095c6 100644
> > --- a/drivers/i2c/busses/i2c-i801.c
> > +++ b/drivers/i2c/busses/i2c-i801.c
> > @@ -1243,6 +1243,7 @@ static const struct {
> >  	 */
> >  	{ "Latitude 5480",      0x29 },
> >  	{ "Vostro V131",        0x1d },
> > +	{ "Vostro 5568",        0x29 },
> >  };
> >  
> >  static void register_dell_lis3lv02d_i2c_device(struct i801_priv *priv)
> 
> Fine with me.
> 
> Reviewed-by: Jean Delvare <jdelvare@suse.de>
> 
> Pali, OK with you?

Yes, nice to see that other people discovered another hidden hardware
devices in their own laptops :-)

Reviewed-by: Pali Rohár <pali@kernel.org>


Nam Cao, could you check your ACPI DSDT table if there is not specified
this smbus/i2c address 0x29? Autodiscovery would be better than
hardcoding. At least for E6440 I was told that BIOS does not provide it.

> -- 
> Jean Delvare
> SUSE L3 Support
Pali Rohár Oct. 19, 2022, 8:52 p.m. UTC | #3
On Wednesday 19 October 2022 22:34:03 Nam Cao wrote:
> On Tue, Oct 18, 2022 at 08:00:51PM +0200, Pali Rohár wrote:
> > On Tuesday 18 October 2022 19:39:51 Jean Delvare wrote:
> > > On Thu, 06 Oct 2022 16:54:40 +0200, Nam Cao wrote:
> > > > Dell Vostro 5568 laptop has lis3lv02d, but its i2c address is not known
> > > > to the kernel. Add this address.
> > > > 
> > > > Output of "cat /sys/devices/platform/lis3lv02d/position" on Dell Vostro
> > > > 5568 laptop:
> > > >     - Horizontal: (-18,0,1044)
> > > >     - Front elevated: (522,-18,1080)
> > > >     - Left elevated: (-18,-360,1080)
> > > >     - Upside down: (36,108,-1134)
> > > > 
> > > > Signed-off-by: Nam Cao <namcaov@gmail.com>
> > > > ---
> > > >  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 a176296f4fff..e46561e095c6 100644
> > > > --- a/drivers/i2c/busses/i2c-i801.c
> > > > +++ b/drivers/i2c/busses/i2c-i801.c
> > > > @@ -1243,6 +1243,7 @@ static const struct {
> > > >  	 */
> > > >  	{ "Latitude 5480",      0x29 },
> > > >  	{ "Vostro V131",        0x1d },
> > > > +	{ "Vostro 5568",        0x29 },
> > > >  };
> > > >  
> > > >  static void register_dell_lis3lv02d_i2c_device(struct i801_priv *priv)
> > > 
> > > Fine with me.
> > > 
> > > Reviewed-by: Jean Delvare <jdelvare@suse.de>
> > > 
> > > Pali, OK with you?
> > 
> > Yes, nice to see that other people discovered another hidden hardware
> > devices in their own laptops :-)
> > 
> > Reviewed-by: Pali Rohár <pali@kernel.org>
> > 
> > 
> > Nam Cao, could you check your ACPI DSDT table if there is not specified
> > this smbus/i2c address 0x29? Autodiscovery would be better than
> > hardcoding. At least for E6440 I was told that BIOS does not provide it.
> 
> My reply got rejected by mailing list because the attachment was too big.
> So I re-send this without the attachment, so that everyone can see.
> 
> I searched the DSDT table for "29", but none of them looks like an i2c
> address.
> 
> But this is the first time I hear about ACPI DSDT table, so I may did
> something incorrectly. I did:
>         - cp /sys/firmware/acpi/tables/DSDT table
>         - iasl -d table
>         - Search through table.dsl
> 
> Best regards,
> Nam

You did it correctly. I'm not surprised that you have not found
anything. When I did experiments in the past, I was not able too...
That is why there is that harcoded table...

It just means that Dell did not fixed it or they perfectly hidden it.
diff mbox series

Patch

diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
index a176296f4fff..e46561e095c6 100644
--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -1243,6 +1243,7 @@  static const struct {
 	 */
 	{ "Latitude 5480",      0x29 },
 	{ "Vostro V131",        0x1d },
+	{ "Vostro 5568",        0x29 },
 };
 
 static void register_dell_lis3lv02d_i2c_device(struct i801_priv *priv)