Re: [PATCH 1/2] dt-bindings: iio: tsl2772: convert bindings to YAML format

From: Jonathan Cameron
Date: Mon Apr 22 2019 - 08:52:52 EST


On Tue, 16 Apr 2019 04:45:51 -0400
Brian Masney <masneyb@xxxxxxxxxxxxx> wrote:

> Convert the tsl2772 device tree bindings to the new YAML format.
>
> Signed-off-by: Brian Masney <masneyb@xxxxxxxxxxxxx>
Hi Brian,

Good to see this. I'm afraid it's all a bit new to me so what
I haven't yet understood is how prescriptive we should be.
For example, are the phandle references below needed or not?

So for a while yet I'm going to be relying on Rob and others
to review these and put me on the right track.

Jonathan

> ---
> .../devicetree/bindings/iio/light/tsl2772.txt | 42 ---------
> .../bindings/iio/light/tsl2772.yaml | 85 +++++++++++++++++++
> 2 files changed, 85 insertions(+), 42 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/iio/light/tsl2772.txt
> create mode 100644 Documentation/devicetree/bindings/iio/light/tsl2772.yaml
>
> diff --git a/Documentation/devicetree/bindings/iio/light/tsl2772.txt b/Documentation/devicetree/bindings/iio/light/tsl2772.txt
> deleted file mode 100644
> index 1c5e6f17a1df..000000000000
> --- a/Documentation/devicetree/bindings/iio/light/tsl2772.txt
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -* AMS/TAOS ALS and proximity sensor
> -
> -Required properties:
> -
> - - compatible: Should be one of
> - "amstaos,tsl2571"
> - "amstaos,tsl2671"
> - "amstaos,tmd2671"
> - "amstaos,tsl2771"
> - "amstaos,tmd2771"
> - "amstaos,tsl2572"
> - "amstaos,tsl2672"
> - "amstaos,tmd2672"
> - "amstaos,tsl2772"
> - "amstaos,tmd2772"
> - "avago,apds9930"
> - - reg: the I2C address of the device
> -
> -Optional properties:
> -
> - - amstaos,proximity-diodes - proximity diodes to enable. <0>, <1>, or <0 1>
> - are the only valid values.
> - - led-max-microamp - current for the proximity LED. Must be 100000, 50000,
> - 25000, or 13000.
> - - vdd-supply: phandle to the regulator that provides power to the sensor.
> - - vddio-supply: phandle to the regulator that provides power to the bus.
> - - interrupts: the sole interrupt generated by the device
> -
> - Refer to interrupt-controller/interrupts.txt for generic interrupt client
> - node bindings.
> -
> -Example:
> -
> -tsl2772@39 {
> - compatible = "amstaos,tsl2772";
> - reg = <0x39>;
> - interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>;
> - vdd-supply = <&pm8941_l17>;
> - vddio-supply = <&pm8941_lvs1>;
> - amstaos,proximity-diodes = <0>;
> - led-max-microamp = <100000>;
> -};
> diff --git a/Documentation/devicetree/bindings/iio/light/tsl2772.yaml b/Documentation/devicetree/bindings/iio/light/tsl2772.yaml
> new file mode 100644
> index 000000000000..b3ac182288d2
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/light/tsl2772.yaml
> @@ -0,0 +1,85 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/light/tsl2772.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: AMS/TAOS Ambient Light Sensor (ALS) and Proximity Detector
> +
> +maintainers:
> + - Brian Masney <masneyb@xxxxxxxxxxxxx>
> +
> +description: |
> + Ambient light sensing and proximity detection with an i2c interface.
> + https://ams.com/documents/20143/36005/TSL2772_DS000181_2-00.pdf
> +
> +properties:
> + compatible:
> + enum:
> + - amstaos,tsl2571
> + - amstaos,tsl2671
> + - amstaos,tmd2671
> + - amstaos,tsl2771
> + - amstaos,tmd2771
> + - amstaos,tsl2572
> + - amstaos,tsl2672
> + - amstaos,tmd2672
> + - amstaos,tsl2772
> + - amstaos,tmd2772
> + - avago,apds9930
> +
> + reg:
> + description: The I2C address of the device
> + maxItems: 1
> +
> + amstaos,proximity-diodes:
> + description: Proximity diodes to enable
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32-array
> + - minItems: 1
> + maxItems: 2
> + items:
> + minimum: 0
> + maximum: 1

Do we need to represent that these can't be <1 0> ?
(specified in old docs)
We also have a tighter spec than the uint32-array format in types.yaml
as don't allow <0>, <1> under the current binding where only <0, 1> is
allowed.

> +
> + interrupts:
> + description: Interrupt generated by the device
> + maxItems: 1
> +
> + led-max-microamp:
> + description: Current for the proximity LED
> + allOf:
> + - $ref: /schemas/types.yaml#/definitions/uint32
> + - enum: [13000, 25000, 50000, 100000]
> +
> + vdd-supply:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description: Regulator that provides power to the sensor
> +
> + vddio-supply:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description: Regulator that provides power to the bus
> +
> +required:
> + - compatible
> + - reg
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/irq.h>
> +
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + tsl2772@39 {
> + compatible = "amstaos,tsl2772";
> + reg = <0x39>;
> + interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>;
> + vdd-supply = <&pm8941_l17>;
> + vddio-supply = <&pm8941_lvs1>;
> + amstaos,proximity-diodes = <0>;
> + led-max-microamp = <100000>;
> + };
> + };
> +...