diff mbox series

[v4] iio: light: ltr501: Added ltr303 driver support

Message ID 20211106174137.6783-1-maslovdmitry@seeed.cc (mailing list archive)
State Accepted
Headers show
Series [v4] iio: light: ltr501: Added ltr303 driver support | expand

Commit Message

Dmitry Maslov Nov. 6, 2021, 5:41 p.m. UTC
Previously ltr501 driver supported a number of light and,
proximity sensors including ltr501, ltr559 and ltr301.
This adds support for another light sensor ltr303
used in Seeed Studio reTerminal, a carrier board
for Raspberry Pi 4 CM.

Signed-off-by: Maslov Dmitry <maslovdmitry@seeed.cc>
---
 drivers/iio/light/ltr501.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

It is a fix of previous commits, that simplified ltr303 support
and removed a lot of unnecessary code. Filename has also been removed
from the file.
Additionally, in v3 of the patch, unused ltr_max was removed
and description of the driver was changed to more general, i.e.
"LTR501 and similar ambient light and proximity sensors."
In v4 of the patch, ltr303 entry was removed from ACPI match table,
since ACPI ID is not present in acpi id list.

Comments

Jonathan Cameron Nov. 13, 2021, 6:19 p.m. UTC | #1
On Sat,  6 Nov 2021 18:41:37 +0100
Maslov Dmitry <maslovdmitry@seeed.cc> wrote:

> Previously ltr501 driver supported a number of light and,
> proximity sensors including ltr501, ltr559 and ltr301.
> This adds support for another light sensor ltr303
> used in Seeed Studio reTerminal, a carrier board
> for Raspberry Pi 4 CM.
> 
> Signed-off-by: Maslov Dmitry <maslovdmitry@seeed.cc>

Applied to the togreg branch of iio.git and pushed out as testing to see if 0-day
can find anything we missed.   I'll rebase the tree after rc1 and soon after that
it should be visible in linux-next.

Thanks,

Jonathan

> ---
>  drivers/iio/light/ltr501.c | 17 ++++++++++++++++-
>  1 file changed, 16 insertions(+), 1 deletion(-)
> 
> It is a fix of previous commits, that simplified ltr303 support
> and removed a lot of unnecessary code. Filename has also been removed
> from the file.
> Additionally, in v3 of the patch, unused ltr_max was removed
> and description of the driver was changed to more general, i.e.
> "LTR501 and similar ambient light and proximity sensors."
> In v4 of the patch, ltr303 entry was removed from ACPI match table,
> since ACPI ID is not present in acpi id list.
> 
> diff --git a/drivers/iio/light/ltr501.c b/drivers/iio/light/ltr501.c
> index 7e51aaac0bf..bab5b78f2e3 100644
> --- a/drivers/iio/light/ltr501.c
> +++ b/drivers/iio/light/ltr501.c
> @@ -1,6 +1,6 @@
>  // SPDX-License-Identifier: GPL-2.0-only
>  /*
> - * ltr501.c - Support for Lite-On LTR501 ambient light and proximity sensor
> + * Support for Lite-On LTR501 and similar ambient light and proximity sensors.
>   *
>   * Copyright 2014 Peter Meerwald <pmeerw@pmeerw.net>
>   *
> @@ -98,6 +98,7 @@ enum {
>  	ltr501 = 0,
>  	ltr559,
>  	ltr301,
> +	ltr303,
>  };
>  
>  struct ltr501_gain {
> @@ -1231,6 +1232,18 @@ static const struct ltr501_chip_info ltr501_chip_info_tbl[] = {
>  		.channels = ltr301_channels,
>  		.no_channels = ARRAY_SIZE(ltr301_channels),
>  	},
> +	[ltr303] = {
> +		.partid = 0x0A,
> +		.als_gain = ltr559_als_gain_tbl,
> +		.als_gain_tbl_size = ARRAY_SIZE(ltr559_als_gain_tbl),
> +		.als_mode_active = BIT(0),
> +		.als_gain_mask = BIT(2) | BIT(3) | BIT(4),
> +		.als_gain_shift = 2,
> +		.info = &ltr301_info,
> +		.info_no_irq = &ltr301_info_no_irq,
> +		.channels = ltr301_channels,
> +		.no_channels = ARRAY_SIZE(ltr301_channels),
> +	},
>  };
>  
>  static int ltr501_write_contr(struct ltr501_data *data, u8 als_val, u8 ps_val)
> @@ -1605,6 +1618,7 @@ static const struct i2c_device_id ltr501_id[] = {
>  	{ "ltr501", ltr501},
>  	{ "ltr559", ltr559},
>  	{ "ltr301", ltr301},
> +	{ "ltr303", ltr303},
>  	{ }
>  };
>  MODULE_DEVICE_TABLE(i2c, ltr501_id);
> @@ -1613,6 +1627,7 @@ static const struct of_device_id ltr501_of_match[] = {
>  	{ .compatible = "liteon,ltr501", },
>  	{ .compatible = "liteon,ltr559", },
>  	{ .compatible = "liteon,ltr301", },
> +	{ .compatible = "liteon,ltr303", },
>  	{}
>  };
>  MODULE_DEVICE_TABLE(of, ltr501_of_match);
Dmitry Maslov Nov. 16, 2021, 10:09 a.m. UTC | #2
> Applied to the togreg branch of iio.git and pushed out as testing to see if 0-day
> can find anything we missed.   I'll rebase the tree after rc1 and soon after that
> it should be visible in linux-next.
> 
> Thanks,
> 
> Jonathan
> 
Thank you, looking forward to it!

> > ---
> >  drivers/iio/light/ltr501.c | 17 ++++++++++++++++-
> >  1 file changed, 16 insertions(+), 1 deletion(-)
> > 
> > It is a fix of previous commits, that simplified ltr303 support
> > and removed a lot of unnecessary code. Filename has also been removed
> > from the file.
> > Additionally, in v3 of the patch, unused ltr_max was removed
> > and description of the driver was changed to more general, i.e.
> > "LTR501 and similar ambient light and proximity sensors."
> > In v4 of the patch, ltr303 entry was removed from ACPI match table,
> > since ACPI ID is not present in acpi id list.
> > 
> > diff --git a/drivers/iio/light/ltr501.c b/drivers/iio/light/ltr501.c
> > index 7e51aaac0bf..bab5b78f2e3 100644
> > --- a/drivers/iio/light/ltr501.c
> > +++ b/drivers/iio/light/ltr501.c
> > @@ -1,6 +1,6 @@
> >  // SPDX-License-Identifier: GPL-2.0-only
> >  /*
> > - * ltr501.c - Support for Lite-On LTR501 ambient light and proximity sensor
> > + * Support for Lite-On LTR501 and similar ambient light and proximity sensors.
> >   *
> >   * Copyright 2014 Peter Meerwald <pmeerw@pmeerw.net>
> >   *
> > @@ -98,6 +98,7 @@ enum {
> >  	ltr501 = 0,
> >  	ltr559,
> >  	ltr301,
> > +	ltr303,
> >  };
> >  
> >  struct ltr501_gain {
> > @@ -1231,6 +1232,18 @@ static const struct ltr501_chip_info ltr501_chip_info_tbl[] = {
> >  		.channels = ltr301_channels,
> >  		.no_channels = ARRAY_SIZE(ltr301_channels),
> >  	},
> > +	[ltr303] = {
> > +		.partid = 0x0A,
> > +		.als_gain = ltr559_als_gain_tbl,
> > +		.als_gain_tbl_size = ARRAY_SIZE(ltr559_als_gain_tbl),
> > +		.als_mode_active = BIT(0),
> > +		.als_gain_mask = BIT(2) | BIT(3) | BIT(4),
> > +		.als_gain_shift = 2,
> > +		.info = &ltr301_info,
> > +		.info_no_irq = &ltr301_info_no_irq,
> > +		.channels = ltr301_channels,
> > +		.no_channels = ARRAY_SIZE(ltr301_channels),
> > +	},
> >  };
> >  
> >  static int ltr501_write_contr(struct ltr501_data *data, u8 als_val, u8 ps_val)
> > @@ -1605,6 +1618,7 @@ static const struct i2c_device_id ltr501_id[] = {
> >  	{ "ltr501", ltr501},
> >  	{ "ltr559", ltr559},
> >  	{ "ltr301", ltr301},
> > +	{ "ltr303", ltr303},
> >  	{ }
> >  };
> >  MODULE_DEVICE_TABLE(i2c, ltr501_id);
> > @@ -1613,6 +1627,7 @@ static const struct of_device_id ltr501_of_match[] = {
> >  	{ .compatible = "liteon,ltr501", },
> >  	{ .compatible = "liteon,ltr559", },
> >  	{ .compatible = "liteon,ltr301", },
> > +	{ .compatible = "liteon,ltr303", },
> >  	{}
> >  };
> >  MODULE_DEVICE_TABLE(of, ltr501_of_match);
diff mbox series

Patch

diff --git a/drivers/iio/light/ltr501.c b/drivers/iio/light/ltr501.c
index 7e51aaac0bf..bab5b78f2e3 100644
--- a/drivers/iio/light/ltr501.c
+++ b/drivers/iio/light/ltr501.c
@@ -1,6 +1,6 @@ 
 // SPDX-License-Identifier: GPL-2.0-only
 /*
- * ltr501.c - Support for Lite-On LTR501 ambient light and proximity sensor
+ * Support for Lite-On LTR501 and similar ambient light and proximity sensors.
  *
  * Copyright 2014 Peter Meerwald <pmeerw@pmeerw.net>
  *
@@ -98,6 +98,7 @@  enum {
 	ltr501 = 0,
 	ltr559,
 	ltr301,
+	ltr303,
 };
 
 struct ltr501_gain {
@@ -1231,6 +1232,18 @@  static const struct ltr501_chip_info ltr501_chip_info_tbl[] = {
 		.channels = ltr301_channels,
 		.no_channels = ARRAY_SIZE(ltr301_channels),
 	},
+	[ltr303] = {
+		.partid = 0x0A,
+		.als_gain = ltr559_als_gain_tbl,
+		.als_gain_tbl_size = ARRAY_SIZE(ltr559_als_gain_tbl),
+		.als_mode_active = BIT(0),
+		.als_gain_mask = BIT(2) | BIT(3) | BIT(4),
+		.als_gain_shift = 2,
+		.info = &ltr301_info,
+		.info_no_irq = &ltr301_info_no_irq,
+		.channels = ltr301_channels,
+		.no_channels = ARRAY_SIZE(ltr301_channels),
+	},
 };
 
 static int ltr501_write_contr(struct ltr501_data *data, u8 als_val, u8 ps_val)
@@ -1605,6 +1618,7 @@  static const struct i2c_device_id ltr501_id[] = {
 	{ "ltr501", ltr501},
 	{ "ltr559", ltr559},
 	{ "ltr301", ltr301},
+	{ "ltr303", ltr303},
 	{ }
 };
 MODULE_DEVICE_TABLE(i2c, ltr501_id);
@@ -1613,6 +1627,7 @@  static const struct of_device_id ltr501_of_match[] = {
 	{ .compatible = "liteon,ltr501", },
 	{ .compatible = "liteon,ltr559", },
 	{ .compatible = "liteon,ltr301", },
+	{ .compatible = "liteon,ltr303", },
 	{}
 };
 MODULE_DEVICE_TABLE(of, ltr501_of_match);