[PATCH v4] dt-bindings: iio: proximity: move LIDAR-Lite out of trivial-devices

Rodrigo Gobbi posted 1 patch 1 week, 3 days ago
.../proximity/pulsedlight,lidar-lite-v2.yaml  | 54 +++++++++++++++++++
.../devicetree/bindings/trivial-devices.yaml  |  2 -
2 files changed, 54 insertions(+), 2 deletions(-)
create mode 100644 Documentation/devicetree/bindings/iio/proximity/pulsedlight,lidar-lite-v2.yaml
[PATCH v4] dt-bindings: iio: proximity: move LIDAR-Lite out of trivial-devices
Posted by Rodrigo Gobbi 1 week, 3 days ago
The PulsedLight LIDAR-Lite v2 is currently described as a trivial device,
but it is not one: besides the I2C interface it exposes a power-enable pin
and a mode-control pin (the latter also used for the PWM distance output).

Move it to a dedicated binding file. While at it, document the LIDAR-Lite
v3: it is sold by Garmin, which acquired PulsedLight, and is
pin-compatible with the v2, so add it with "pulsedlight,lidar-lite-v2"
as a fallback compatible.

Signed-off-by: Rodrigo Gobbi <rodrigo.gobbi.7@gmail.com>
---
Hi, all,
This was on my plate and I didn't have a chance to send this before.

The vendor change is not a typo: see the discussion at [1].
Tks and regards.

[1] https://lore.kernel.org/all/c39a2980-f5e5-44aa-9fd3-20e0658f62dc@gmail.com/

Changelog:
v4: unify patches rather than using a series to keep the tree bisectable;
    rewrite the commit msg, naming the devices explicitly;
v3: https://lore.kernel.org/all/20251102221643.9966-1-rodrigo.gobbi.7@gmail.com/
v2: https://lore.kernel.org/all/20250801224112.135918-1-rodrigo.gobbi.7@gmail.com/
v1: https://lore.kernel.org/all/20250701223341.36835-1-rodrigo.gobbi.7@gmail.com/
---
 .../proximity/pulsedlight,lidar-lite-v2.yaml  | 54 +++++++++++++++++++
 .../devicetree/bindings/trivial-devices.yaml  |  2 -
 2 files changed, 54 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/iio/proximity/pulsedlight,lidar-lite-v2.yaml

diff --git a/Documentation/devicetree/bindings/iio/proximity/pulsedlight,lidar-lite-v2.yaml b/Documentation/devicetree/bindings/iio/proximity/pulsedlight,lidar-lite-v2.yaml
new file mode 100644
index 000000000000..60e60b7769ba
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/proximity/pulsedlight,lidar-lite-v2.yaml
@@ -0,0 +1,54 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/proximity/pulsedlight,lidar-lite-v2.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Pulsedlight LIDAR-Lite v2 range-finding sensor
+
+maintainers:
+  - Matt Ranostay <mranostay@gmail.com>
+
+description: |
+  Support for LIDAR-Lite v2 and v3 laser rangefinders. These devices
+  can use a simple I2C communication bus or can operate in a PWM mode using a
+  mode control pin to trigger acquisitions and return the measured distance.
+  They also have a power enable pin, which can be used to shut off the device.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - enum:
+              - grmn,lidar-lite-v3
+          - const: pulsedlight,lidar-lite-v2
+      - const: pulsedlight,lidar-lite-v2
+
+  reg:
+    maxItems: 1
+
+  powerdown-gpios:
+    description: GPIO that can be driven low to shut off power to the device.
+    maxItems: 1
+
+  vdd-supply: true
+
+required:
+  - compatible
+  - reg
+  - vdd-supply
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+        lidar@62 {
+            compatible = "grmn,lidar-lite-v3", "pulsedlight,lidar-lite-v2";
+            reg = <0x62>;
+            vdd-supply = <&vdd_5v0>;
+        };
+    };
+...
diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
index 435c4baab436..74b640c48598 100644
--- a/Documentation/devicetree/bindings/trivial-devices.yaml
+++ b/Documentation/devicetree/bindings/trivial-devices.yaml
@@ -396,8 +396,6 @@ properties:
           - onnn,adt7462
             # 48-Lane, 12-Port PCI Express Gen 2 (5.0 GT/s) Switch
           - plx,pex8648
-            # Pulsedlight LIDAR range-finding sensor
-          - pulsedlight,lidar-lite-v2
             # Renesas HS3001 Temperature and Relative Humidity Sensors
           - renesas,hs3001
             # Renesas ISL29501 time-of-flight sensor
-- 
2.48.1
Re: [PATCH v4] dt-bindings: iio: proximity: move LIDAR-Lite out of trivial-devices
Posted by David Lechner 1 week, 3 days ago
On 7/14/26 4:30 PM, Rodrigo Gobbi wrote:
> The PulsedLight LIDAR-Lite v2 is currently described as a trivial device,
> but it is not one: besides the I2C interface it exposes a power-enable pin
> and a mode-control pin (the latter also used for the PWM distance output).

IIRC, we are not adding the mode-control pin to the DT bindings because
it would be an alternative to the I2C bus and not likely to be used (would
require something like a PWM controller with a non-cyclic, bidirectional
channel).

We should explain that in the commit message.

> 
> Move it to a dedicated binding file.

And add we are adding the missing properties, so should mention that too.


> While at it, document the LIDAR-Lite
> v3: it is sold by Garmin, which acquired PulsedLight, and is
> pin-compatible with the v2, so add it with "pulsedlight,lidar-lite-v2"
> as a fallback compatible.

This is a separate change, so deserves a separate patch.

The complaint in v3 was just that the removing .txt and adding .yaml should
be in the same patch.

> 
> Signed-off-by: Rodrigo Gobbi <rodrigo.gobbi.7@gmail.com>
> ---
> Hi, all,
> This was on my plate and I didn't have a chance to send this before.
> 
> The vendor change is not a typo: see the discussion at [1].
> Tks and regards.

Ideally, this would be explained well enough in the commit message that
we don't need the link.

> 
> [1] https://lore.kernel.org/all/c39a2980-f5e5-44aa-9fd3-20e0658f62dc@gmail.com/
> 
> Changelog:
> v4: unify patches rather than using a series to keep the tree bisectable;
>     rewrite the commit msg, naming the devices explicitly;

We lost the IIO driver patch though. The change adding a new compatible
won't be accepted without it.

> v3: https://lore.kernel.org/all/20251102221643.9966-1-rodrigo.gobbi.7@gmail.com/
> v2: https://lore.kernel.org/all/20250801224112.135918-1-rodrigo.gobbi.7@gmail.com/
> v1: https://lore.kernel.org/all/20250701223341.36835-1-rodrigo.gobbi.7@gmail.com/
> ---
>  .../proximity/pulsedlight,lidar-lite-v2.yaml  | 54 +++++++++++++++++++
>  .../devicetree/bindings/trivial-devices.yaml  |  2 -
>  2 files changed, 54 insertions(+), 2 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/iio/proximity/pulsedlight,lidar-lite-v2.yaml
> 
> diff --git a/Documentation/devicetree/bindings/iio/proximity/pulsedlight,lidar-lite-v2.yaml b/Documentation/devicetree/bindings/iio/proximity/pulsedlight,lidar-lite-v2.yaml
> new file mode 100644
> index 000000000000..60e60b7769ba
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/proximity/pulsedlight,lidar-lite-v2.yaml
> @@ -0,0 +1,54 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/proximity/pulsedlight,lidar-lite-v2.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Pulsedlight LIDAR-Lite v2 range-finding sensor

Could make the title more general:

	Pulsedlight/Garmin LIDAR-Lite range-finding sensors

> +
> +maintainers:
> +  - Matt Ranostay <mranostay@gmail.com>
> +
> +description: |

> +  Support for LIDAR-Lite v2 and v3 laser rangefinders. These devices

The title already says this.

> +  can use a simple I2C communication bus or can operate in a PWM mode using a
> +  mode control pin to trigger acquisitions and return the measured distance.

Probably worth mentioning the bindings are just for I2C usage for now.

Links to datasheets are also useful.

> +  They also have a power enable pin, which can be used to shut off the device.

We can see this in the properties, so don't need to say it here.

> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - items:
> +          - enum:
> +              - grmn,lidar-lite-v3
> +          - const: pulsedlight,lidar-lite-v2
> +      - const: pulsedlight,lidar-lite-v2
> +
> +  reg:
> +    maxItems: 1
> +
> +  powerdown-gpios:
> +    description: GPIO that can be driven low to shut off power to the device.
> +    maxItems: 1
> +
> +  vdd-supply: true
> +

interrupts:
  description: 
    Mode control pin can be used as a status output to provide interrupt.
  maxItems: 1

Mode control pin can also be clock output, so we could add:

'#clock-cells':
  const: 0

if:
  required:
    interrupts
then:
  '#clock-cells': false

I only checked Lidar Lite v3 docs, so we should see if these are available
on v2 as well.

> +required:
> +  - compatible
> +  - reg
> +  - vdd-supply
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +        lidar@62 {
> +            compatible = "grmn,lidar-lite-v3", "pulsedlight,lidar-lite-v2";
> +            reg = <0x62>;
> +            vdd-supply = <&vdd_5v0>;
> +        };
> +    };
> +...
> diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
> index 435c4baab436..74b640c48598 100644
> --- a/Documentation/devicetree/bindings/trivial-devices.yaml
> +++ b/Documentation/devicetree/bindings/trivial-devices.yaml
> @@ -396,8 +396,6 @@ properties:
>            - onnn,adt7462
>              # 48-Lane, 12-Port PCI Express Gen 2 (5.0 GT/s) Switch
>            - plx,pex8648
> -            # Pulsedlight LIDAR range-finding sensor
> -          - pulsedlight,lidar-lite-v2
>              # Renesas HS3001 Temperature and Relative Humidity Sensors
>            - renesas,hs3001
>              # Renesas ISL29501 time-of-flight sensor
Re: [PATCH v4] dt-bindings: iio: proximity: move LIDAR-Lite out of trivial-devices
Posted by Jonathan Cameron 5 days, 19 hours ago
> > 
> > [1] https://lore.kernel.org/all/c39a2980-f5e5-44aa-9fd3-20e0658f62dc@gmail.com/
> > 
> > Changelog:
> > v4: unify patches rather than using a series to keep the tree bisectable;
> >     rewrite the commit msg, naming the devices explicitly;  
> 
> We lost the IIO driver patch though. The change adding a new compatible
> won't be accepted without it.

I think it is fully backwards compatible?  If so we don't need to do
anything in the driver. We could tweak the name, but perhaps not worth
the bother in this case.