linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/4] dt-bindings: vendor-prefixes: Document liteon vendor prefix
@ 2021-10-06 16:30 Nikita Travkin
  2021-10-06 16:30 ` [PATCH 2/4] dt-bindings: iio: light: Document ltr501 light sensor bindings Nikita Travkin
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: Nikita Travkin @ 2021-10-06 16:30 UTC (permalink / raw)
  To: jic23
  Cc: lars, robh+dt, stephan, linux-iio, devicetree, linux-kernel,
	Nikita Travkin

Add vendor prefix for LITE-ON Technology Corp.

Signed-off-by: Nikita Travkin <nikita@trvn.ru>
---
 Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
index 1d77f151555b..477a5cba16fe 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
+++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
@@ -659,6 +659,8 @@ patternProperties:
     description: Linux-specific binding
   "^linx,.*":
     description: Linx Technologies
+  "^liteon,.*":
+    description: LITE-ON Technology Corp.
   "^litex,.*":
     description: LiteX SoC builder
   "^lltc,.*":
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/4] dt-bindings: iio: light: Document ltr501 light sensor bindings
  2021-10-06 16:30 [PATCH 1/4] dt-bindings: vendor-prefixes: Document liteon vendor prefix Nikita Travkin
@ 2021-10-06 16:30 ` Nikita Travkin
  2021-10-14 20:28   ` Rob Herring
  2021-10-06 16:30 ` [PATCH 3/4] iio: light: ltr501: Add rudimentary regulator support Nikita Travkin
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 8+ messages in thread
From: Nikita Travkin @ 2021-10-06 16:30 UTC (permalink / raw)
  To: jic23
  Cc: lars, robh+dt, stephan, linux-iio, devicetree, linux-kernel,
	Nikita Travkin

Add devicetree bindings for ltr501, ltr559 and ltr301.

Signed-off-by: Nikita Travkin <nikita@trvn.ru>
---
 .../bindings/iio/light/liteon,ltr501.yaml     | 51 +++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/light/liteon,ltr501.yaml

diff --git a/Documentation/devicetree/bindings/iio/light/liteon,ltr501.yaml b/Documentation/devicetree/bindings/iio/light/liteon,ltr501.yaml
new file mode 100644
index 000000000000..db0407bc9209
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/light/liteon,ltr501.yaml
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/light/liteon,ltr501.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: LiteON LTR501 I2C Proximity and Light sensor
+
+maintainers:
+  - Nikita Travkin <nikita@trvn.ru>
+
+properties:
+  compatible:
+    enum:
+      - liteon,ltr501
+      - liteon,ltr559
+      - liteon,ltr301
+
+  reg:
+    maxItems: 1
+
+  vdd-supply: true
+  vddio-supply: true
+
+  interrupts:
+    maxItems: 1
+
+additionalProperties: false
+
+required:
+  - compatible
+  - reg
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        light-sensor@23 {
+            compatible = "liteon,ltr559";
+            reg = <0x23>;
+            vdd-supply = <&pm8916_l17>;
+            vddio-supply = <&pm8916_l6>;
+
+            interrupt-parent = <&msmgpio>;
+            interrupts = <115 IRQ_TYPE_EDGE_FALLING>;
+        };
+    };
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/4] iio: light: ltr501: Add rudimentary regulator support
  2021-10-06 16:30 [PATCH 1/4] dt-bindings: vendor-prefixes: Document liteon vendor prefix Nikita Travkin
  2021-10-06 16:30 ` [PATCH 2/4] dt-bindings: iio: light: Document ltr501 light sensor bindings Nikita Travkin
@ 2021-10-06 16:30 ` Nikita Travkin
  2021-10-06 16:30 ` [PATCH 4/4] iio: light: ltr501: Add of_device_id table Nikita Travkin
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: Nikita Travkin @ 2021-10-06 16:30 UTC (permalink / raw)
  To: jic23
  Cc: lars, robh+dt, stephan, linux-iio, devicetree, linux-kernel,
	Nikita Travkin

On some platforms the supply regulators must be enabled before the
sensor can work. Add vdd and vddio regulators for the sensor and IO bus
power respectively.

Signed-off-by: Nikita Travkin <nikita@trvn.ru>
---
 drivers/iio/light/ltr501.c | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/drivers/iio/light/ltr501.c b/drivers/iio/light/ltr501.c
index 1830221da48d..57851c8ef1c6 100644
--- a/drivers/iio/light/ltr501.c
+++ b/drivers/iio/light/ltr501.c
@@ -15,6 +15,7 @@
 #include <linux/delay.h>
 #include <linux/regmap.h>
 #include <linux/acpi.h>
+#include <linux/regulator/consumer.h>
 
 #include <linux/iio/iio.h>
 #include <linux/iio/events.h>
@@ -151,6 +152,7 @@ struct ltr501_chip_info {
 
 struct ltr501_data {
 	struct i2c_client *client;
+	struct regulator_bulk_data regulators[2];
 	struct mutex lock_als, lock_ps;
 	const struct ltr501_chip_info *chip_info;
 	u8 als_contr, ps_contr;
@@ -1379,6 +1381,13 @@ static const struct regmap_config ltr501_regmap_config = {
 	.volatile_reg = ltr501_is_volatile_reg,
 };
 
+static void ltr501_disable_regulators(void *d)
+{
+	struct ltr501_data *data = d;
+
+	regulator_bulk_disable(ARRAY_SIZE(data->regulators), data->regulators);
+}
+
 static int ltr501_powerdown(struct ltr501_data *data)
 {
 	return ltr501_write_contr(data, data->als_contr &
@@ -1423,6 +1432,25 @@ static int ltr501_probe(struct i2c_client *client,
 	mutex_init(&data->lock_als);
 	mutex_init(&data->lock_ps);
 
+	data->regulators[0].supply = "vdd";
+	data->regulators[1].supply = "vddio";
+	ret = devm_regulator_bulk_get(&client->dev,
+				      ARRAY_SIZE(data->regulators),
+				      data->regulators);
+	if (ret)
+		return dev_err_probe(&client->dev, ret,
+				     "Failed to get regulators\n");
+
+	ret = regulator_bulk_enable(ARRAY_SIZE(data->regulators),
+				    data->regulators);
+	if (ret)
+		return ret;
+
+	ret = devm_add_action_or_reset(&client->dev,
+				       ltr501_disable_regulators, data);
+	if (ret)
+		return ret;
+
 	data->reg_it = devm_regmap_field_alloc(&client->dev, regmap,
 					       reg_field_it);
 	if (IS_ERR(data->reg_it)) {
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/4] iio: light: ltr501: Add of_device_id table
  2021-10-06 16:30 [PATCH 1/4] dt-bindings: vendor-prefixes: Document liteon vendor prefix Nikita Travkin
  2021-10-06 16:30 ` [PATCH 2/4] dt-bindings: iio: light: Document ltr501 light sensor bindings Nikita Travkin
  2021-10-06 16:30 ` [PATCH 3/4] iio: light: ltr501: Add rudimentary regulator support Nikita Travkin
@ 2021-10-06 16:30 ` Nikita Travkin
  2021-10-07 15:41 ` [PATCH 1/4] dt-bindings: vendor-prefixes: Document liteon vendor prefix Jonathan Cameron
  2021-10-14 20:28 ` Rob Herring
  4 siblings, 0 replies; 8+ messages in thread
From: Nikita Travkin @ 2021-10-06 16:30 UTC (permalink / raw)
  To: jic23
  Cc: lars, robh+dt, stephan, linux-iio, devicetree, linux-kernel,
	Nikita Travkin

Add of_device_id table so the driver can be used on DT platforms without
relying on i2c_device_id fallback. (So DT schema validation is possible)

Signed-off-by: Nikita Travkin <nikita@trvn.ru>
---
 drivers/iio/light/ltr501.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/iio/light/ltr501.c b/drivers/iio/light/ltr501.c
index 57851c8ef1c6..7e51aaac0bf8 100644
--- a/drivers/iio/light/ltr501.c
+++ b/drivers/iio/light/ltr501.c
@@ -1609,9 +1609,18 @@ static const struct i2c_device_id ltr501_id[] = {
 };
 MODULE_DEVICE_TABLE(i2c, ltr501_id);
 
+static const struct of_device_id ltr501_of_match[] = {
+	{ .compatible = "liteon,ltr501", },
+	{ .compatible = "liteon,ltr559", },
+	{ .compatible = "liteon,ltr301", },
+	{}
+};
+MODULE_DEVICE_TABLE(of, ltr501_of_match);
+
 static struct i2c_driver ltr501_driver = {
 	.driver = {
 		.name   = LTR501_DRV_NAME,
+		.of_match_table = ltr501_of_match,
 		.pm	= &ltr501_pm_ops,
 		.acpi_match_table = ACPI_PTR(ltr_acpi_match),
 	},
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/4] dt-bindings: vendor-prefixes: Document liteon vendor prefix
  2021-10-06 16:30 [PATCH 1/4] dt-bindings: vendor-prefixes: Document liteon vendor prefix Nikita Travkin
                   ` (2 preceding siblings ...)
  2021-10-06 16:30 ` [PATCH 4/4] iio: light: ltr501: Add of_device_id table Nikita Travkin
@ 2021-10-07 15:41 ` Jonathan Cameron
  2021-10-14 20:28 ` Rob Herring
  4 siblings, 0 replies; 8+ messages in thread
From: Jonathan Cameron @ 2021-10-07 15:41 UTC (permalink / raw)
  To: Nikita Travkin
  Cc: lars, robh+dt, stephan, linux-iio, devicetree, linux-kernel

On Wed,  6 Oct 2021 21:30:55 +0500
Nikita Travkin <nikita@trvn.ru> wrote:

> Add vendor prefix for LITE-ON Technology Corp.
> 
> Signed-off-by: Nikita Travkin <nikita@trvn.ru>
Series looks good to me. I'll leave some time for dt binding review though
before picking it up.

Thanks,

Jonathan

> ---
>  Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> index 1d77f151555b..477a5cba16fe 100644
> --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml
> +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml
> @@ -659,6 +659,8 @@ patternProperties:
>      description: Linux-specific binding
>    "^linx,.*":
>      description: Linx Technologies
> +  "^liteon,.*":
> +    description: LITE-ON Technology Corp.
>    "^litex,.*":
>      description: LiteX SoC builder
>    "^lltc,.*":


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/4] dt-bindings: vendor-prefixes: Document liteon vendor prefix
  2021-10-06 16:30 [PATCH 1/4] dt-bindings: vendor-prefixes: Document liteon vendor prefix Nikita Travkin
                   ` (3 preceding siblings ...)
  2021-10-07 15:41 ` [PATCH 1/4] dt-bindings: vendor-prefixes: Document liteon vendor prefix Jonathan Cameron
@ 2021-10-14 20:28 ` Rob Herring
  2021-10-16 15:55   ` Jonathan Cameron
  4 siblings, 1 reply; 8+ messages in thread
From: Rob Herring @ 2021-10-14 20:28 UTC (permalink / raw)
  To: Nikita Travkin
  Cc: lars, linux-iio, robh+dt, stephan, jic23, devicetree, linux-kernel

On Wed, 06 Oct 2021 21:30:55 +0500, Nikita Travkin wrote:
> Add vendor prefix for LITE-ON Technology Corp.
> 
> Signed-off-by: Nikita Travkin <nikita@trvn.ru>
> ---
>  Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
>  1 file changed, 2 insertions(+)
> 

Acked-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/4] dt-bindings: iio: light: Document ltr501 light sensor bindings
  2021-10-06 16:30 ` [PATCH 2/4] dt-bindings: iio: light: Document ltr501 light sensor bindings Nikita Travkin
@ 2021-10-14 20:28   ` Rob Herring
  0 siblings, 0 replies; 8+ messages in thread
From: Rob Herring @ 2021-10-14 20:28 UTC (permalink / raw)
  To: Nikita Travkin
  Cc: robh+dt, linux-iio, devicetree, linux-kernel, jic23, lars, stephan

On Wed, 06 Oct 2021 21:30:56 +0500, Nikita Travkin wrote:
> Add devicetree bindings for ltr501, ltr559 and ltr301.
> 
> Signed-off-by: Nikita Travkin <nikita@trvn.ru>
> ---
>  .../bindings/iio/light/liteon,ltr501.yaml     | 51 +++++++++++++++++++
>  1 file changed, 51 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/iio/light/liteon,ltr501.yaml
> 

Reviewed-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/4] dt-bindings: vendor-prefixes: Document liteon vendor prefix
  2021-10-14 20:28 ` Rob Herring
@ 2021-10-16 15:55   ` Jonathan Cameron
  0 siblings, 0 replies; 8+ messages in thread
From: Jonathan Cameron @ 2021-10-16 15:55 UTC (permalink / raw)
  To: Rob Herring
  Cc: Nikita Travkin, lars, linux-iio, robh+dt, stephan, devicetree,
	linux-kernel

On Thu, 14 Oct 2021 15:28:08 -0500
Rob Herring <robh@kernel.org> wrote:

> On Wed, 06 Oct 2021 21:30:55 +0500, Nikita Travkin wrote:
> > Add vendor prefix for LITE-ON Technology Corp.
> > 
> > Signed-off-by: Nikita Travkin <nikita@trvn.ru>
> > ---
> >  Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++
> >  1 file changed, 2 insertions(+)
> >   
> 
> Acked-by: Rob Herring <robh@kernel.org>

Series applied to the togreg branch of iio.git which is initially pushed
out as testing for 0-day to see if it can find anything we missed.

Thanks,

Jonathan

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-10-16 15:51 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-06 16:30 [PATCH 1/4] dt-bindings: vendor-prefixes: Document liteon vendor prefix Nikita Travkin
2021-10-06 16:30 ` [PATCH 2/4] dt-bindings: iio: light: Document ltr501 light sensor bindings Nikita Travkin
2021-10-14 20:28   ` Rob Herring
2021-10-06 16:30 ` [PATCH 3/4] iio: light: ltr501: Add rudimentary regulator support Nikita Travkin
2021-10-06 16:30 ` [PATCH 4/4] iio: light: ltr501: Add of_device_id table Nikita Travkin
2021-10-07 15:41 ` [PATCH 1/4] dt-bindings: vendor-prefixes: Document liteon vendor prefix Jonathan Cameron
2021-10-14 20:28 ` Rob Herring
2021-10-16 15:55   ` Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).