diff mbox series

[v5,4/5] dt-bindings: iio: Add sx9324 binding

Message ID 20211208004311.3098571-5-gwendal@chromium.org (mailing list archive)
State Changes Requested
Headers show
Series Expand Semtech SAR Sensors support | expand

Commit Message

Gwendal Grignou Dec. 8, 2021, 12:43 a.m. UTC
Similar to SX9310, add biddings to setup sx9324 hardware properties.
SX9324 is a little different, introduce 4 phases to be configured in 2
pairs over 3 antennas.

Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
---
Changes in v5:
- Use consistent field naming, prefixed with phX.

Changes in v4:
- Use const instead of single enum
- Specify ph0-pin better
- Recopy type information for phX-pin
- Fix cut and paste errors.

Changes in v3:
- Remove duplicate information.
- Use intervals instead of enum.
- Fix filter description.

Changes in v2:
- Fix interrupt documentation wording.

 .../iio/proximity/semtech,sx9324.yaml         | 161 ++++++++++++++++++
 1 file changed, 161 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml

Comments

Stephen Boyd Dec. 8, 2021, 4:42 a.m. UTC | #1
+Rob *crosses fingers*

Quoting Gwendal Grignou (2021-12-07 16:43:10)
> Similar to SX9310, add biddings to setup sx9324 hardware properties.
> SX9324 is a little different, introduce 4 phases to be configured in 2
> pairs over 3 antennas.
>
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> ---
> Changes in v5:
> - Use consistent field naming, prefixed with phX.
>
> Changes in v4:
> - Use const instead of single enum
> - Specify ph0-pin better
> - Recopy type information for phX-pin
> - Fix cut and paste errors.
>
> Changes in v3:
> - Remove duplicate information.
> - Use intervals instead of enum.
> - Fix filter description.
>
> Changes in v2:
> - Fix interrupt documentation wording.
>
>  .../iio/proximity/semtech,sx9324.yaml         | 161 ++++++++++++++++++

Please add Rob for dt binding review. I'm not sure if the
semi-autonomous robot runs without Cc robh+dt

>  1 file changed, 161 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml
>
> diff --git a/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml b/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml
> new file mode 100644
> index 00000000000000..ac9581b0d31364
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml
> @@ -0,0 +1,161 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/proximity/semtech,sx9324.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Semtech's SX9324 capacitive proximity sensor
> +
> +maintainers:
> +  - Gwendal Grignou <gwendal@chromium.org>
> +  - Daniel Campello <campello@chromium.org>
> +
> +description: |
> +  Semtech's SX9324 proximity sensor.
> +
> +properties:
> +  compatible:
> +    const: semtech,sx9324
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    description:
> +      Generated by device to announce preceding read request has finished
> +      and data is available or that a close/far proximity event has happened.
> +    maxItems: 1
> +
> +  vdd-supply:
> +    description: Main power supply
> +
> +  svdd-supply:
> +    description: Host interface power supply
> +
> +  "#io-channel-cells":
> +    const: 1
> +
> +  semtech,ph0-pin:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description: |
> +      Array of 3 entries. Index represent the id of the CS pin.
> +      Value indicates how each CS pin is used during phase 0.
> +      Each of the 3 pins have the following value -
> +      0 : unused (high impedance)
> +      1 : measured input
> +      2 : dynamic shield
> +      3 : grounded.
> +      For instance, CS0 measured, CS1 shield and CS2 ground is [1, 2, 3]
> +    items:
> +      enum: [ 0, 1, 2, 3 ]
> +    minItems: 3
> +    maxItems: 3
> +
> +  semtech,ph1-pin:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description: Same as ph0-pin for phase 1.
> +    items:
> +      enum: [ 0, 1, 2, 3 ]
> +    minItems: 3
> +    maxItems: 3
> +
> +  semtech,ph2-pin:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description: Same as ph0-pin for phase 2.
> +    items:
> +      enum: [ 0, 1, 2, 3 ]
> +    minItems: 3
> +    maxItems: 3
> +
> +  semtech,ph3-pin:
> +    $ref: /schemas/types.yaml#/definitions/uint32-array
> +    description: Same as ph0-pin for phase 3.
> +    items:
> +      enum: [ 0, 1, 2, 3 ]
> +    minItems: 3
> +    maxItems: 3
> +
> +
> +  semtech,ph01-resolution:
> +    $ref: /schemas/types.yaml#definitions/uint32
> +    enum: [8, 16, 32, 64, 128, 256, 512, 1024]
> +    description:
> +      Capacitance measurement resolution. For phase 0 and 1.
> +      Higher the number, higher the resolution.
> +    default: 128
> +
> +  semtech,ph23-resolution:
> +    $ref: /schemas/types.yaml#definitions/uint32
> +    enum: [8, 16, 32, 64, 128, 256, 512, 1024]
> +    description:
> +      Capacitance measurement resolution. For phase 2 and 3
> +    default: 128
> +
> +  semtech,startup-sensor:
> +    $ref: /schemas/types.yaml#definitions/uint32
> +    enum: [0, 1, 2, 3]
> +    default: 0
> +    description: |
> +      Phase used for start-up proximity detection.
> +      It is used when we enable a phase to remove static offset and measure
> +      only capacitance changes introduced by the user.
> +
> +  semtech,ph01-proxraw-strength:
> +    $ref: /schemas/types.yaml#definitions/uint32
> +    min: 0
> +    max: 7
> +    default: 1
> +    description:
> +      PROXRAW filter strength for phase 0 and 1. A value of 0 represents off,
> +      and other values represent 1-1/2^N.
> +
> +  semtech,ph23-proxraw-strength:
> +    $ref: /schemas/types.yaml#definitions/uint32
> +    min: 0
> +    max: 7
> +    default: 1
> +    description:
> +      Same as proxraw-strength01, for phase 2 and 3.

We could have a single property then that uses index 0 for phase 0 and 1
and index 1 for phase 2 and 3 if we're worried about them being
different between the two joined phases. Same comment applies to the
resolution.

> +
> +  semtech,avg-pos-strength:
> +    $ref: /schemas/types.yaml#definitions/uint32
> +    enum: [0, 16, 64, 128, 256, 512, 1024, 4294967295]
> +    default: 16
> +    description: |
> +      Average positive filter strength. A value of 0 represents off and
> +      UINT_MAX (4294967295) represents infinite. Other values
> +      represent 1-1/N.
> +
> +required:
> +  - compatible
> +  - reg
> +  - "#io-channel-cells"
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +    i2c {
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +      proximity@28 {
> +        compatible = "semtech,sx9324";
> +        reg = <0x28>;
> +        interrupt-parent = <&pio>;
> +        interrupts = <5 IRQ_TYPE_LEVEL_LOW 5>;
> +        vdd-supply = <&pp3300_a>;
> +        svdd-supply = <&pp1800_prox>;
> +        #io-channel-cells = <1>;
> +        semtech,ph0-pin = <1, 2, 3>;
> +        semtech,ph1-pin = <3, 2, 1>;
> +        semtech,ph2-pin = <1, 2, 3>;
> +        semtech,ph3-pin = <3, 2, 1>;

The comma should be removed. Have you run 'make dt_binding_check'?

> +        semtech,ph01-resolution = 2;
> +        semtech,ph23-resolution = 2;
> +        semtech,startup-sensor = <1>;
> +        semtech,ph01-proxraw-strength = <2>;
> +        semtech,ph23-proxraw-strength = <2>;
> +        semtech,avg-pos-strength = <64>;
> +      };
> +    };
Gwendal Grignou Dec. 8, 2021, 7:22 a.m. UTC | #2
On Tue, Dec 7, 2021 at 8:42 PM Stephen Boyd <swboyd@chromium.org> wrote:
>
> +Rob *crosses fingers*
>
> Quoting Gwendal Grignou (2021-12-07 16:43:10)
> > Similar to SX9310, add biddings to setup sx9324 hardware properties.
> > SX9324 is a little different, introduce 4 phases to be configured in 2
> > pairs over 3 antennas.
> >
> > Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> > ---
> > Changes in v5:
> > - Use consistent field naming, prefixed with phX.
> >
> > Changes in v4:
> > - Use const instead of single enum
> > - Specify ph0-pin better
> > - Recopy type information for phX-pin
> > - Fix cut and paste errors.
> >
> > Changes in v3:
> > - Remove duplicate information.
> > - Use intervals instead of enum.
> > - Fix filter description.
> >
> > Changes in v2:
> > - Fix interrupt documentation wording.
> >
> >  .../iio/proximity/semtech,sx9324.yaml         | 161 ++++++++++++++++++
>
> Please add Rob for dt binding review. I'm not sure if the
> semi-autonomous robot runs without Cc robh+dt
>
> >  1 file changed, 161 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml b/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml
> > new file mode 100644
> > index 00000000000000..ac9581b0d31364
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml
> > @@ -0,0 +1,161 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/iio/proximity/semtech,sx9324.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Semtech's SX9324 capacitive proximity sensor
> > +
> > +maintainers:
> > +  - Gwendal Grignou <gwendal@chromium.org>
> > +  - Daniel Campello <campello@chromium.org>
> > +
> > +description: |
> > +  Semtech's SX9324 proximity sensor.
> > +
> > +properties:
> > +  compatible:
> > +    const: semtech,sx9324
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    description:
> > +      Generated by device to announce preceding read request has finished
> > +      and data is available or that a close/far proximity event has happened.
> > +    maxItems: 1
> > +
> > +  vdd-supply:
> > +    description: Main power supply
> > +
> > +  svdd-supply:
> > +    description: Host interface power supply
> > +
> > +  "#io-channel-cells":
> > +    const: 1
> > +
> > +  semtech,ph0-pin:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description: |
> > +      Array of 3 entries. Index represent the id of the CS pin.
> > +      Value indicates how each CS pin is used during phase 0.
> > +      Each of the 3 pins have the following value -
> > +      0 : unused (high impedance)
> > +      1 : measured input
> > +      2 : dynamic shield
> > +      3 : grounded.
> > +      For instance, CS0 measured, CS1 shield and CS2 ground is [1, 2, 3]
> > +    items:
> > +      enum: [ 0, 1, 2, 3 ]
> > +    minItems: 3
> > +    maxItems: 3
> > +
> > +  semtech,ph1-pin:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description: Same as ph0-pin for phase 1.
> > +    items:
> > +      enum: [ 0, 1, 2, 3 ]
> > +    minItems: 3
> > +    maxItems: 3
> > +
> > +  semtech,ph2-pin:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description: Same as ph0-pin for phase 2.
> > +    items:
> > +      enum: [ 0, 1, 2, 3 ]
> > +    minItems: 3
> > +    maxItems: 3
> > +
> > +  semtech,ph3-pin:
> > +    $ref: /schemas/types.yaml#/definitions/uint32-array
> > +    description: Same as ph0-pin for phase 3.
> > +    items:
> > +      enum: [ 0, 1, 2, 3 ]
> > +    minItems: 3
> > +    maxItems: 3
> > +
> > +
> > +  semtech,ph01-resolution:
> > +    $ref: /schemas/types.yaml#definitions/uint32
> > +    enum: [8, 16, 32, 64, 128, 256, 512, 1024]
> > +    description:
> > +      Capacitance measurement resolution. For phase 0 and 1.
> > +      Higher the number, higher the resolution.
> > +    default: 128
> > +
> > +  semtech,ph23-resolution:
> > +    $ref: /schemas/types.yaml#definitions/uint32
> > +    enum: [8, 16, 32, 64, 128, 256, 512, 1024]
> > +    description:
> > +      Capacitance measurement resolution. For phase 2 and 3
> > +    default: 128
> > +
> > +  semtech,startup-sensor:
> > +    $ref: /schemas/types.yaml#definitions/uint32
> > +    enum: [0, 1, 2, 3]
> > +    default: 0
> > +    description: |
> > +      Phase used for start-up proximity detection.
> > +      It is used when we enable a phase to remove static offset and measure
> > +      only capacitance changes introduced by the user.
> > +
> > +  semtech,ph01-proxraw-strength:
> > +    $ref: /schemas/types.yaml#definitions/uint32
> > +    min: 0
> > +    max: 7
> > +    default: 1
> > +    description:
> > +      PROXRAW filter strength for phase 0 and 1. A value of 0 represents off,
> > +      and other values represent 1-1/2^N.
> > +
> > +  semtech,ph23-proxraw-strength:
> > +    $ref: /schemas/types.yaml#definitions/uint32
> > +    min: 0
> > +    max: 7
> > +    default: 1
> > +    description:
> > +      Same as proxraw-strength01, for phase 2 and 3.
>
> We could have a single property then that uses index 0 for phase 0 and 1
> and index 1 for phase 2 and 3 if we're worried about them being
> different between the two joined phases. Same comment applies to the
> resolution.
>
> > +
> > +  semtech,avg-pos-strength:
> > +    $ref: /schemas/types.yaml#definitions/uint32
> > +    enum: [0, 16, 64, 128, 256, 512, 1024, 4294967295]
> > +    default: 16
> > +    description: |
> > +      Average positive filter strength. A value of 0 represents off and
> > +      UINT_MAX (4294967295) represents infinite. Other values
> > +      represent 1-1/N.
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - "#io-channel-cells"
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    #include <dt-bindings/interrupt-controller/irq.h>
> > +    i2c {
> > +      #address-cells = <1>;
> > +      #size-cells = <0>;
> > +      proximity@28 {
> > +        compatible = "semtech,sx9324";
> > +        reg = <0x28>;
> > +        interrupt-parent = <&pio>;
> > +        interrupts = <5 IRQ_TYPE_LEVEL_LOW 5>;
> > +        vdd-supply = <&pp3300_a>;
> > +        svdd-supply = <&pp1800_prox>;
> > +        #io-channel-cells = <1>;
> > +        semtech,ph0-pin = <1, 2, 3>;
> > +        semtech,ph1-pin = <3, 2, 1>;
> > +        semtech,ph2-pin = <1, 2, 3>;
> > +        semtech,ph3-pin = <3, 2, 1>;
>
> The comma should be removed. Have you run 'make dt_binding_check'?
I did not, and it spotted a lot of errors. I will resend this patch.
>
> > +        semtech,ph01-resolution = 2;
> > +        semtech,ph23-resolution = 2;
> > +        semtech,startup-sensor = <1>;
> > +        semtech,ph01-proxraw-strength = <2>;
> > +        semtech,ph23-proxraw-strength = <2>;
> > +        semtech,avg-pos-strength = <64>;
> > +      };
> > +    };
Rob Herring Dec. 8, 2021, 1:44 p.m. UTC | #3
On Tue, 07 Dec 2021 16:43:10 -0800, Gwendal Grignou wrote:
> Similar to SX9310, add biddings to setup sx9324 hardware properties.
> SX9324 is a little different, introduce 4 phases to be configured in 2
> pairs over 3 antennas.
> 
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> ---
> Changes in v5:
> - Use consistent field naming, prefixed with phX.
> 
> Changes in v4:
> - Use const instead of single enum
> - Specify ph0-pin better
> - Recopy type information for phX-pin
> - Fix cut and paste errors.
> 
> Changes in v3:
> - Remove duplicate information.
> - Use intervals instead of enum.
> - Fix filter description.
> 
> Changes in v2:
> - Fix interrupt documentation wording.
> 
>  .../iio/proximity/semtech,sx9324.yaml         | 161 ++++++++++++++++++
>  1 file changed, 161 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml
> 

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml: properties:semtech,ph01-proxraw-strength: 'min' is not one of ['$ref', 'additionalItems', 'additionalProperties', 'allOf', 'anyOf', 'const', 'contains', 'default', 'dependencies', 'dependentRequired', 'dependentSchemas', 'deprecated', 'description', 'else', 'enum', 'exclusiveMaximum', 'exclusiveMinimum', 'items', 'if', 'minItems', 'minimum', 'maxItems', 'maximum', 'multipleOf', 'not', 'oneOf', 'pattern', 'patternProperties', 'properties', 'required', 'then', 'type', 'typeSize', 'unevaluatedProperties', 'uniqueItems']
	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml: properties:semtech,ph01-proxraw-strength: 'max' is not one of ['$ref', 'additionalItems', 'additionalProperties', 'allOf', 'anyOf', 'const', 'contains', 'default', 'dependencies', 'dependentRequired', 'dependentSchemas', 'deprecated', 'description', 'else', 'enum', 'exclusiveMaximum', 'exclusiveMinimum', 'items', 'if', 'minItems', 'minimum', 'maxItems', 'maximum', 'multipleOf', 'not', 'oneOf', 'pattern', 'patternProperties', 'properties', 'required', 'then', 'type', 'typeSize', 'unevaluatedProperties', 'uniqueItems']
	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml: properties:semtech,ph23-proxraw-strength: 'min' is not one of ['$ref', 'additionalItems', 'additionalProperties', 'allOf', 'anyOf', 'const', 'contains', 'default', 'dependencies', 'dependentRequired', 'dependentSchemas', 'deprecated', 'description', 'else', 'enum', 'exclusiveMaximum', 'exclusiveMinimum', 'items', 'if', 'minItems', 'minimum', 'maxItems', 'maximum', 'multipleOf', 'not', 'oneOf', 'pattern', 'patternProperties', 'properties', 'required', 'then', 'type', 'typeSize', 'unevaluatedProperties', 'uniqueItems']
	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml: properties:semtech,ph23-proxraw-strength: 'max' is not one of ['$ref', 'additionalItems', 'additionalProperties', 'allOf', 'anyOf', 'const', 'contains', 'default', 'dependencies', 'dependentRequired', 'dependentSchemas', 'deprecated', 'description', 'else', 'enum', 'exclusiveMaximum', 'exclusiveMinimum', 'items', 'if', 'minItems', 'minimum', 'maxItems', 'maximum', 'multipleOf', 'not', 'oneOf', 'pattern', 'patternProperties', 'properties', 'required', 'then', 'type', 'typeSize', 'unevaluatedProperties', 'uniqueItems']
	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml: properties:semtech,avg-pos-strength: 'oneOf' conditional failed, one must be fixed:
	'type' is a required property
		hint: A vendor boolean property can use "type: boolean"
	Additional properties are not allowed ('default', 'enum', '$ref' were unexpected)
		hint: A vendor boolean property can use "type: boolean"
	Additional properties are not allowed ('default', '$ref' were unexpected)
		hint: A vendor string property with exact values has an implicit type
	'/schemas/types.yaml#definitions/uint32' does not match 'types.yaml#/definitions/'
		hint: A vendor property needs a $ref to types.yaml
	0 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	16 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	64 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	128 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	256 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	512 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	1024 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	4294967295 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	hint: Vendor specific properties must have a type and description unless they have a defined, common suffix.
	from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml: properties:semtech,ph01-proxraw-strength: 'oneOf' conditional failed, one must be fixed:
	'type' is a required property
		hint: A vendor boolean property can use "type: boolean"
	Additional properties are not allowed ('min', 'max', 'default', '$ref' were unexpected)
		hint: A vendor boolean property can use "type: boolean"
	/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml: properties:semtech,ph01-proxraw-strength: 'oneOf' conditional failed, one must be fixed:
		'enum' is a required property
		'const' is a required property
		hint: A vendor string property with exact values has an implicit type
		from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
	'/schemas/types.yaml#definitions/uint32' does not match 'types.yaml#/definitions/'
		hint: A vendor property needs a $ref to types.yaml
	hint: Vendor specific properties must have a type and description unless they have a defined, common suffix.
	from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml: properties:semtech,ph23-resolution: 'oneOf' conditional failed, one must be fixed:
	'type' is a required property
		hint: A vendor boolean property can use "type: boolean"
	Additional properties are not allowed ('default', 'enum', '$ref' were unexpected)
		hint: A vendor boolean property can use "type: boolean"
	Additional properties are not allowed ('default', '$ref' were unexpected)
		hint: A vendor string property with exact values has an implicit type
	'/schemas/types.yaml#definitions/uint32' does not match 'types.yaml#/definitions/'
		hint: A vendor property needs a $ref to types.yaml
	8 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	16 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	32 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	64 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	128 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	256 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	512 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	1024 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	hint: Vendor specific properties must have a type and description unless they have a defined, common suffix.
	from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml: properties:semtech,ph23-proxraw-strength: 'oneOf' conditional failed, one must be fixed:
	'type' is a required property
		hint: A vendor boolean property can use "type: boolean"
	Additional properties are not allowed ('min', 'max', 'default', '$ref' were unexpected)
		hint: A vendor boolean property can use "type: boolean"
	/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml: properties:semtech,ph23-proxraw-strength: 'oneOf' conditional failed, one must be fixed:
		'enum' is a required property
		'const' is a required property
		hint: A vendor string property with exact values has an implicit type
		from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
	'/schemas/types.yaml#definitions/uint32' does not match 'types.yaml#/definitions/'
		hint: A vendor property needs a $ref to types.yaml
	hint: Vendor specific properties must have a type and description unless they have a defined, common suffix.
	from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml: properties:semtech,ph01-resolution: 'oneOf' conditional failed, one must be fixed:
	'type' is a required property
		hint: A vendor boolean property can use "type: boolean"
	Additional properties are not allowed ('default', 'enum', '$ref' were unexpected)
		hint: A vendor boolean property can use "type: boolean"
	Additional properties are not allowed ('default', '$ref' were unexpected)
		hint: A vendor string property with exact values has an implicit type
	'/schemas/types.yaml#definitions/uint32' does not match 'types.yaml#/definitions/'
		hint: A vendor property needs a $ref to types.yaml
	8 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	16 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	32 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	64 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	128 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	256 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	512 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	1024 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	hint: Vendor specific properties must have a type and description unless they have a defined, common suffix.
	from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml: properties:semtech,startup-sensor: 'oneOf' conditional failed, one must be fixed:
	'type' is a required property
		hint: A vendor boolean property can use "type: boolean"
	Additional properties are not allowed ('default', 'enum', '$ref' were unexpected)
		hint: A vendor boolean property can use "type: boolean"
	Additional properties are not allowed ('default', '$ref' were unexpected)
		hint: A vendor string property with exact values has an implicit type
	'/schemas/types.yaml#definitions/uint32' does not match 'types.yaml#/definitions/'
		hint: A vendor property needs a $ref to types.yaml
	0 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	1 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	2 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	3 is not of type 'string'
		hint: A vendor string property with exact values has an implicit type
	hint: Vendor specific properties must have a type and description unless they have a defined, common suffix.
	from schema $id: http://devicetree.org/meta-schemas/vendor-props.yaml#
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml: ignoring, error in schema: properties: semtech,ph23-proxraw-strength
warning: no schema found in file: ./Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml
Error: Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.example.dts:31.33-34 syntax error
FATAL ERROR: Unable to parse input tree
make[1]: *** [scripts/Makefile.lib:373: Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.example.dt.yaml] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:1413: dt_binding_check] Error 2

doc reference errors (make refcheckdocs):
Documentation/Makefile:39: The 'sphinx-build' command was not found. Make sure you have Sphinx installed and in PATH, or set the SPHINXBUILD make variable to point to the full path of the 'sphinx-build' executable.

Detected OS: DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS".
Warning: better to also install "convert".
Warning: better to also install "dot".
Warning: better to also install "dvipng".
ERROR: please install "ensurepip", otherwise, build won't work.
Warning: better to also install "fonts-dejavu".
Warning: better to also install "fonts-noto-cjk".
Warning: better to also install "latexmk".
Warning: better to also install "rsvg-convert".
Warning: better to also install "xelatex".
You should run:

	sudo apt-get install imagemagick graphviz dvipng python3-venv fonts-dejavu fonts-noto-cjk latexmk librsvg2-bin texlive-xetex
note: If you want pdf, you need at least Sphinx 2.4.4.
To upgrade Sphinx, use:

Can't build as 2 mandatory dependencies are missing at ./scripts/sphinx-pre-install line 953.
	/usr/bin/python3 -m venv sphinx_2.4.4
	. sphinx_2.4.4/bin/activate
	pip install -r ./Documentation/sphinx/requirements.txt

If you want to exit the virtualenv, you can use:
	deactivate

See https://patchwork.ozlabs.org/patch/1565029

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml b/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml
new file mode 100644
index 00000000000000..ac9581b0d31364
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/proximity/semtech,sx9324.yaml
@@ -0,0 +1,161 @@ 
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/proximity/semtech,sx9324.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Semtech's SX9324 capacitive proximity sensor
+
+maintainers:
+  - Gwendal Grignou <gwendal@chromium.org>
+  - Daniel Campello <campello@chromium.org>
+
+description: |
+  Semtech's SX9324 proximity sensor.
+
+properties:
+  compatible:
+    const: semtech,sx9324
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    description:
+      Generated by device to announce preceding read request has finished
+      and data is available or that a close/far proximity event has happened.
+    maxItems: 1
+
+  vdd-supply:
+    description: Main power supply
+
+  svdd-supply:
+    description: Host interface power supply
+
+  "#io-channel-cells":
+    const: 1
+
+  semtech,ph0-pin:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description: |
+      Array of 3 entries. Index represent the id of the CS pin.
+      Value indicates how each CS pin is used during phase 0.
+      Each of the 3 pins have the following value -
+      0 : unused (high impedance)
+      1 : measured input
+      2 : dynamic shield
+      3 : grounded.
+      For instance, CS0 measured, CS1 shield and CS2 ground is [1, 2, 3]
+    items:
+      enum: [ 0, 1, 2, 3 ]
+    minItems: 3
+    maxItems: 3
+
+  semtech,ph1-pin:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description: Same as ph0-pin for phase 1.
+    items:
+      enum: [ 0, 1, 2, 3 ]
+    minItems: 3
+    maxItems: 3
+
+  semtech,ph2-pin:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description: Same as ph0-pin for phase 2.
+    items:
+      enum: [ 0, 1, 2, 3 ]
+    minItems: 3
+    maxItems: 3
+
+  semtech,ph3-pin:
+    $ref: /schemas/types.yaml#/definitions/uint32-array
+    description: Same as ph0-pin for phase 3.
+    items:
+      enum: [ 0, 1, 2, 3 ]
+    minItems: 3
+    maxItems: 3
+
+
+  semtech,ph01-resolution:
+    $ref: /schemas/types.yaml#definitions/uint32
+    enum: [8, 16, 32, 64, 128, 256, 512, 1024]
+    description:
+      Capacitance measurement resolution. For phase 0 and 1.
+      Higher the number, higher the resolution.
+    default: 128
+
+  semtech,ph23-resolution:
+    $ref: /schemas/types.yaml#definitions/uint32
+    enum: [8, 16, 32, 64, 128, 256, 512, 1024]
+    description:
+      Capacitance measurement resolution. For phase 2 and 3
+    default: 128
+
+  semtech,startup-sensor:
+    $ref: /schemas/types.yaml#definitions/uint32
+    enum: [0, 1, 2, 3]
+    default: 0
+    description: |
+      Phase used for start-up proximity detection.
+      It is used when we enable a phase to remove static offset and measure
+      only capacitance changes introduced by the user.
+
+  semtech,ph01-proxraw-strength:
+    $ref: /schemas/types.yaml#definitions/uint32
+    min: 0
+    max: 7
+    default: 1
+    description:
+      PROXRAW filter strength for phase 0 and 1. A value of 0 represents off,
+      and other values represent 1-1/2^N.
+
+  semtech,ph23-proxraw-strength:
+    $ref: /schemas/types.yaml#definitions/uint32
+    min: 0
+    max: 7
+    default: 1
+    description:
+      Same as proxraw-strength01, for phase 2 and 3.
+
+  semtech,avg-pos-strength:
+    $ref: /schemas/types.yaml#definitions/uint32
+    enum: [0, 16, 64, 128, 256, 512, 1024, 4294967295]
+    default: 16
+    description: |
+      Average positive filter strength. A value of 0 represents off and
+      UINT_MAX (4294967295) represents infinite. Other values
+      represent 1-1/N.
+
+required:
+  - compatible
+  - reg
+  - "#io-channel-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/irq.h>
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+      proximity@28 {
+        compatible = "semtech,sx9324";
+        reg = <0x28>;
+        interrupt-parent = <&pio>;
+        interrupts = <5 IRQ_TYPE_LEVEL_LOW 5>;
+        vdd-supply = <&pp3300_a>;
+        svdd-supply = <&pp1800_prox>;
+        #io-channel-cells = <1>;
+        semtech,ph0-pin = <1, 2, 3>;
+        semtech,ph1-pin = <3, 2, 1>;
+        semtech,ph2-pin = <1, 2, 3>;
+        semtech,ph3-pin = <3, 2, 1>;
+        semtech,ph01-resolution = 2;
+        semtech,ph23-resolution = 2;
+        semtech,startup-sensor = <1>;
+        semtech,ph01-proxraw-strength = <2>;
+        semtech,ph23-proxraw-strength = <2>;
+        semtech,avg-pos-strength = <64>;
+      };
+    };