[PATCH v3 5/7] dt-bindings: iio: bosch,bme680: Add supply properties

Vasileios Amoiridis posted 7 patches 3 weeks, 1 day ago
[PATCH v3 5/7] dt-bindings: iio: bosch,bme680: Add supply properties
Posted by Vasileios Amoiridis 3 weeks, 1 day ago
Extend dt-binding for BME680 gas sensor device. The device incorporates
as well temperature, pressure and relative humidity sensors.

Signed-off-by: Vasileios Amoiridis <vassilisamir@gmail.com>
---
 .../bindings/iio/chemical/bosch,bme680.yaml   | 62 +++++++++++++++++++
 .../devicetree/bindings/trivial-devices.yaml  |  2 -
 2 files changed, 62 insertions(+), 2 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/iio/chemical/bosch,bme680.yaml

diff --git a/Documentation/devicetree/bindings/iio/chemical/bosch,bme680.yaml b/Documentation/devicetree/bindings/iio/chemical/bosch,bme680.yaml
new file mode 100644
index 000000000000..0eac22e465e7
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/chemical/bosch,bme680.yaml
@@ -0,0 +1,62 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/chemical/bosch,bme680.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Bosch BME680 Gas sensor
+
+maintainers:
+  - Vasileios Amoiridis <vassilisamir@gmail.com>
+
+description: >
+  BME680 is a gas sensor which combines relative humidity, barometric pressure,
+  ambient temperature and gas (VOC - Volatile Organic Compounds) measurements.
+
+  https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme680-ds001.pdf
+
+properties:
+  compatible:
+    const: bosch,bme680
+
+  reg:
+    maxItems: 1
+
+  vdd-supply: true
+  vddio-supply: true
+
+required:
+  - compatible
+  - reg
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        bme680@77 {
+            compatible = "bosch,bme680";
+            reg = <0x77>;
+            vddio-supply = <&vddio>;
+            vdd-supply = <&vdd>;
+        };
+    };
+  - |
+    spi {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        bme680@0 {
+            compatible = "bosch,bme680";
+            reg = <0>;
+            spi-max-frequency = <500000>;
+            vddio-supply = <&vddio>;
+            vdd-supply = <&vdd>;
+        };
+    };
diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
index 9bf0fb17a05e..b651826e2d21 100644
--- a/Documentation/devicetree/bindings/trivial-devices.yaml
+++ b/Documentation/devicetree/bindings/trivial-devices.yaml
@@ -55,8 +55,6 @@ properties:
           - atmel,atsha204a
             # BPA-RS600: Power Supply
           - blutek,bpa-rs600
-            # Bosch Sensortec pressure, temperature, humididty and VOC sensor
-          - bosch,bme680
             # CM32181: Ambient Light Sensor
           - capella,cm32181
             # CM3232: Ambient Light Sensor
-- 
2.43.0
Re: [PATCH v3 5/7] dt-bindings: iio: bosch,bme680: Add supply properties
Posted by Jonathan Cameron 3 weeks, 1 day ago
On Sat,  2 Nov 2024 14:13:09 +0100
Vasileios Amoiridis <vassilisamir@gmail.com> wrote:

> Extend dt-binding for BME680 gas sensor device. The device incorporates
> as well temperature, pressure and relative humidity sensors.
This description should make it clear it is moving from trivial-devices.yaml

dt-bindings: iio: bosch,bme680: Move from trivial-bindings and add missing supplies.

Then say a little more on why you are moving it.

> 
> Signed-off-by: Vasileios Amoiridis <vassilisamir@gmail.com>

There was an open question on the previous version about
setting the supplies as required (which I see you've removed).
My understanding previously was that it is fine to make that change
in a binding if it reflects supplies that are required to be enabled
for the device to function at all.  If there were previously missing
that's a binding bug we should fix.

I'd like a clarification from the DT binding maintainers on that.
Obviously doesn't work for other users of dt bindings but in
Linux this would be fine as they were already on for any board
that worked and the regulator framework will through us a fake
regulator for cases like this.

https://lore.kernel.org/all/20241022182451.00007ac0@Huawei.com/

Jonathan

https://lore.kernel.org/all/20241022182451.00007ac0@Huawei.com/

> ---
>  .../bindings/iio/chemical/bosch,bme680.yaml   | 62 +++++++++++++++++++
>  .../devicetree/bindings/trivial-devices.yaml  |  2 -
>  2 files changed, 62 insertions(+), 2 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/iio/chemical/bosch,bme680.yaml
> 
> diff --git a/Documentation/devicetree/bindings/iio/chemical/bosch,bme680.yaml b/Documentation/devicetree/bindings/iio/chemical/bosch,bme680.yaml
> new file mode 100644
> index 000000000000..0eac22e465e7
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/chemical/bosch,bme680.yaml
> @@ -0,0 +1,62 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/chemical/bosch,bme680.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Bosch BME680 Gas sensor
> +
> +maintainers:
> +  - Vasileios Amoiridis <vassilisamir@gmail.com>
> +
> +description: >
> +  BME680 is a gas sensor which combines relative humidity, barometric pressure,
> +  ambient temperature and gas (VOC - Volatile Organic Compounds) measurements.
> +
> +  https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme680-ds001.pdf
> +
> +properties:
> +  compatible:
> +    const: bosch,bme680
> +
> +  reg:
> +    maxItems: 1
> +
> +  vdd-supply: true
> +  vddio-supply: true
> +
> +required:
> +  - compatible
> +  - reg
> +
> +allOf:
> +  - $ref: /schemas/spi/spi-peripheral-props.yaml#
> +
> +unevaluatedProperties: false
> +
> +examples:
> +  - |
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        bme680@77 {
> +            compatible = "bosch,bme680";
> +            reg = <0x77>;
> +            vddio-supply = <&vddio>;
> +            vdd-supply = <&vdd>;
> +        };
> +    };
> +  - |
> +    spi {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        bme680@0 {
> +            compatible = "bosch,bme680";
> +            reg = <0>;
> +            spi-max-frequency = <500000>;
> +            vddio-supply = <&vddio>;
> +            vdd-supply = <&vdd>;
> +        };
> +    };
> diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
> index 9bf0fb17a05e..b651826e2d21 100644
> --- a/Documentation/devicetree/bindings/trivial-devices.yaml
> +++ b/Documentation/devicetree/bindings/trivial-devices.yaml
> @@ -55,8 +55,6 @@ properties:
>            - atmel,atsha204a
>              # BPA-RS600: Power Supply
>            - blutek,bpa-rs600
> -            # Bosch Sensortec pressure, temperature, humididty and VOC sensor
> -          - bosch,bme680
>              # CM32181: Ambient Light Sensor
>            - capella,cm32181
>              # CM3232: Ambient Light Sensor
Re: [PATCH v3 5/7] dt-bindings: iio: bosch,bme680: Add supply properties
Posted by Krzysztof Kozlowski 3 weeks ago
On Sat, Nov 02, 2024 at 03:33:15PM +0000, Jonathan Cameron wrote:
> On Sat,  2 Nov 2024 14:13:09 +0100
> Vasileios Amoiridis <vassilisamir@gmail.com> wrote:
> 
> > Extend dt-binding for BME680 gas sensor device. The device incorporates
> > as well temperature, pressure and relative humidity sensors.
> This description should make it clear it is moving from trivial-devices.yaml
> 
> dt-bindings: iio: bosch,bme680: Move from trivial-bindings and add missing supplies.
> 
> Then say a little more on why you are moving it.
> 
> > 
> > Signed-off-by: Vasileios Amoiridis <vassilisamir@gmail.com>
> 
> There was an open question on the previous version about
> setting the supplies as required (which I see you've removed).
> My understanding previously was that it is fine to make that change
> in a binding if it reflects supplies that are required to be enabled
> for the device to function at all.  If there were previously missing
> that's a binding bug we should fix.
> 
> I'd like a clarification from the DT binding maintainers on that.
> Obviously doesn't work for other users of dt bindings but in
> Linux this would be fine as they were already on for any board
> that worked and the regulator framework will through us a fake
> regulator for cases like this.
> 
> https://lore.kernel.org/all/20241022182451.00007ac0@Huawei.com/
> 
> Jonathan

That was Rob's objection so I will leave it to him, but putting my two
cents in for Linux it is not an ABI break because missing regulator
supplies are substituted with dummy ones. Unless something changed...

Best regards,
Krzysztof
Re: [PATCH v3 5/7] dt-bindings: iio: bosch,bme680: Add supply properties
Posted by Rob Herring 2 weeks, 6 days ago
On Sun, Nov 03, 2024 at 10:46:46AM +0100, Krzysztof Kozlowski wrote:
> On Sat, Nov 02, 2024 at 03:33:15PM +0000, Jonathan Cameron wrote:
> > On Sat,  2 Nov 2024 14:13:09 +0100
> > Vasileios Amoiridis <vassilisamir@gmail.com> wrote:
> > 
> > > Extend dt-binding for BME680 gas sensor device. The device incorporates
> > > as well temperature, pressure and relative humidity sensors.
> > This description should make it clear it is moving from trivial-devices.yaml
> > 
> > dt-bindings: iio: bosch,bme680: Move from trivial-bindings and add missing supplies.
> > 
> > Then say a little more on why you are moving it.
> > 
> > > 
> > > Signed-off-by: Vasileios Amoiridis <vassilisamir@gmail.com>
> > 
> > There was an open question on the previous version about
> > setting the supplies as required (which I see you've removed).
> > My understanding previously was that it is fine to make that change
> > in a binding if it reflects supplies that are required to be enabled
> > for the device to function at all.  If there were previously missing
> > that's a binding bug we should fix.
> > 
> > I'd like a clarification from the DT binding maintainers on that.
> > Obviously doesn't work for other users of dt bindings but in
> > Linux this would be fine as they were already on for any board
> > that worked and the regulator framework will through us a fake
> > regulator for cases like this.
> > 
> > https://lore.kernel.org/all/20241022182451.00007ac0@Huawei.com/
> > 
> > Jonathan
> 
> That was Rob's objection so I will leave it to him, but putting my two
> cents in for Linux it is not an ABI break because missing regulator
> supplies are substituted with dummy ones. Unless something changed...

Shrug. I don't think we're entirely consistent on this. If we're saying 
supplies are always required, then every device in trivial-devices.yaml 
is wrong. Since Linux handles them missing, you can also argue that 
supplies are never required.

I'd prefer not to special case regulators as an exception I have to 
remember. I have some rudimentary ABI checking I'm working on that 
checks for things like new required properties. Though it wouldn't catch 
this particular change given it moves the schema.

Rob
Re: [PATCH v3 5/7] dt-bindings: iio: bosch,bme680: Add supply properties
Posted by Vasileios Amoiridis 1 week, 6 days ago
On Mon, Nov 04, 2024 at 10:10:33AM -0600, Rob Herring wrote:
> On Sun, Nov 03, 2024 at 10:46:46AM +0100, Krzysztof Kozlowski wrote:
> > On Sat, Nov 02, 2024 at 03:33:15PM +0000, Jonathan Cameron wrote:
> > > On Sat,  2 Nov 2024 14:13:09 +0100
> > > Vasileios Amoiridis <vassilisamir@gmail.com> wrote:
> > > 
> > > > Extend dt-binding for BME680 gas sensor device. The device incorporates
> > > > as well temperature, pressure and relative humidity sensors.
> > > This description should make it clear it is moving from trivial-devices.yaml
> > > 
> > > dt-bindings: iio: bosch,bme680: Move from trivial-bindings and add missing supplies.
> > > 
> > > Then say a little more on why you are moving it.
> > > 
> > > > 
> > > > Signed-off-by: Vasileios Amoiridis <vassilisamir@gmail.com>
> > > 
> > > There was an open question on the previous version about
> > > setting the supplies as required (which I see you've removed).
> > > My understanding previously was that it is fine to make that change
> > > in a binding if it reflects supplies that are required to be enabled
> > > for the device to function at all.  If there were previously missing
> > > that's a binding bug we should fix.
> > > 
> > > I'd like a clarification from the DT binding maintainers on that.
> > > Obviously doesn't work for other users of dt bindings but in
> > > Linux this would be fine as they were already on for any board
> > > that worked and the regulator framework will through us a fake
> > > regulator for cases like this.
> > > 
> > > https://lore.kernel.org/all/20241022182451.00007ac0@Huawei.com/
> > > 
> > > Jonathan
> > 
> > That was Rob's objection so I will leave it to him, but putting my two
> > cents in for Linux it is not an ABI break because missing regulator
> > supplies are substituted with dummy ones. Unless something changed...
> 
> Shrug. I don't think we're entirely consistent on this. If we're saying 
> supplies are always required, then every device in trivial-devices.yaml 
> is wrong. Since Linux handles them missing, you can also argue that 
> supplies are never required.
> 
> I'd prefer not to special case regulators as an exception I have to 
> remember. I have some rudimentary ABI checking I'm working on that 
> checks for things like new required properties. Though it wouldn't catch 
> this particular change given it moves the schema.
> 
> Rob

Hi Jonathan,

According to Rob's answer, do you think that we can move on with the
last 3 patches as they are or do you want some changes?

Cheers,
Vasilis
Re: [PATCH v3 5/7] dt-bindings: iio: bosch,bme680: Add supply properties
Posted by Rob Herring 5 days, 5 hours ago
On Mon, Nov 11, 2024 at 07:48:48PM +0100, Vasileios Amoiridis wrote:
> On Mon, Nov 04, 2024 at 10:10:33AM -0600, Rob Herring wrote:
> > On Sun, Nov 03, 2024 at 10:46:46AM +0100, Krzysztof Kozlowski wrote:
> > > On Sat, Nov 02, 2024 at 03:33:15PM +0000, Jonathan Cameron wrote:
> > > > On Sat,  2 Nov 2024 14:13:09 +0100
> > > > Vasileios Amoiridis <vassilisamir@gmail.com> wrote:
> > > > 
> > > > > Extend dt-binding for BME680 gas sensor device. The device incorporates
> > > > > as well temperature, pressure and relative humidity sensors.
> > > > This description should make it clear it is moving from trivial-devices.yaml
> > > > 
> > > > dt-bindings: iio: bosch,bme680: Move from trivial-bindings and add missing supplies.
> > > > 
> > > > Then say a little more on why you are moving it.
> > > > 
> > > > > 
> > > > > Signed-off-by: Vasileios Amoiridis <vassilisamir@gmail.com>
> > > > 
> > > > There was an open question on the previous version about
> > > > setting the supplies as required (which I see you've removed).
> > > > My understanding previously was that it is fine to make that change
> > > > in a binding if it reflects supplies that are required to be enabled
> > > > for the device to function at all.  If there were previously missing
> > > > that's a binding bug we should fix.
> > > > 
> > > > I'd like a clarification from the DT binding maintainers on that.
> > > > Obviously doesn't work for other users of dt bindings but in
> > > > Linux this would be fine as they were already on for any board
> > > > that worked and the regulator framework will through us a fake
> > > > regulator for cases like this.
> > > > 
> > > > https://lore.kernel.org/all/20241022182451.00007ac0@Huawei.com/
> > > > 
> > > > Jonathan
> > > 
> > > That was Rob's objection so I will leave it to him, but putting my two
> > > cents in for Linux it is not an ABI break because missing regulator
> > > supplies are substituted with dummy ones. Unless something changed...
> > 
> > Shrug. I don't think we're entirely consistent on this. If we're saying 
> > supplies are always required, then every device in trivial-devices.yaml 
> > is wrong. Since Linux handles them missing, you can also argue that 
> > supplies are never required.
> > 
> > I'd prefer not to special case regulators as an exception I have to 
> > remember. I have some rudimentary ABI checking I'm working on that 
> > checks for things like new required properties. Though it wouldn't catch 
> > this particular change given it moves the schema.
> > 
> > Rob
> 
> Hi Jonathan,
> 
> According to Rob's answer, do you think that we can move on with the
> last 3 patches as they are or do you want some changes?

Please update the commit message as Jonathan requested and resend 
(though you might as well wait til the end of the merge window now).

Rob