* [v9 0/4] Add support for Maxim MAX735x/MAX736x variants
@ 2022-10-07 7:53 Patrick Rudolph
2022-10-07 7:53 ` [v9 1/4] dt-bindings: i2c: Add " Patrick Rudolph
0 siblings, 1 reply; 6+ messages in thread
From: Patrick Rudolph @ 2022-10-07 7:53 UTC (permalink / raw)
To: Laurent Pinchart, linux-i2c
Cc: robh, peda, wsa, Patrick Rudolph, devicetree, linux-kernel
v9:
- Fix 'then' not aligned with 'if' in dt-bindings
- Split enhanced mode configuration into separate patch
- Add MAX7357/MAX7358 register definitions
- Rename config register defines
- Update comments and explain non default config being applied on MAX7357
- Check for I2C_FUNC_SMBUS_WRITE_BYTE_DATA functionality
v8:
- Move allOf in dt-binding and use double negation
v7:
- Reworked the commit message, comments and renamed a struct
field. No functional change.
v6:
- Fix typo in dt-bindings
v5:
- Remove optional and make vdd-supply mandatory
v4:
- Add missing maxitems dt-bindings property
v3:
- Merge dt-bindings into i2c-mux-pca954x.yaml
v2:
- Move dt-bindings to separate file
- Added support for MAX736x as they are very similar
- Fixed an issue found by kernel test robot
- Dropped max735x property and custom IRQ check
- Added MAX7357 config register defines instead of magic values
- Renamed vcc-supply to vdd-supply
Patrick Rudolph (4):
dt-bindings: i2c: Add Maxim MAX735x/MAX736x variants
i2c: muxes: pca954x: Add MAX735x/MAX736x support
i2c: muxes: pca954x: Configure MAX7357 in enhanced mode
i2c: muxes: pca954x: Add regulator support
.../bindings/i2c/i2c-mux-pca954x.yaml | 39 ++++-
drivers/i2c/muxes/Kconfig | 6 +-
drivers/i2c/muxes/i2c-mux-pca954x.c | 140 +++++++++++++++++-
3 files changed, 170 insertions(+), 15 deletions(-)
--
2.37.3
^ permalink raw reply [flat|nested] 6+ messages in thread
* [v9 1/4] dt-bindings: i2c: Add Maxim MAX735x/MAX736x variants
2022-10-07 7:53 [v9 0/4] Add support for Maxim MAX735x/MAX736x variants Patrick Rudolph
@ 2022-10-07 7:53 ` Patrick Rudolph
2022-10-08 11:50 ` Serge Semin
0 siblings, 1 reply; 6+ messages in thread
From: Patrick Rudolph @ 2022-10-07 7:53 UTC (permalink / raw)
To: Peter Rosin, Laurent Pinchart
Cc: robh, wsa, Patrick Rudolph, Rob Herring, Krzysztof Kozlowski,
linux-i2c, devicetree, linux-kernel
Update the pca954x bindings to add support for the Maxim MAX735x/MAX736x
chips. The functionality will be provided by the exisintg pca954x driver.
While on it make the interrupts support conditionally as not all of the
existing chips have interrupts.
For chips that are powered off by default add an optional regulator
called vdd-supply.
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
---
.../bindings/i2c/i2c-mux-pca954x.yaml | 39 ++++++++++++++++---
1 file changed, 34 insertions(+), 5 deletions(-)
diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
index 9f1726d0356b..efad0a95806f 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
+++ b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
@@ -4,21 +4,25 @@
$id: http://devicetree.org/schemas/i2c/i2c-mux-pca954x.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
-title: NXP PCA954x I2C bus switch
+title: NXP PCA954x I2C and compatible bus switches
maintainers:
- Laurent Pinchart <laurent.pinchart@ideasonboard.com>
description:
- The binding supports NXP PCA954x and PCA984x I2C mux/switch devices.
-
-allOf:
- - $ref: /schemas/i2c/i2c-mux.yaml#
+ The binding supports NXP PCA954x and PCA984x I2C mux/switch devices,
+ and the Maxim MAX735x and MAX736x I2C mux/switch devices.
properties:
compatible:
oneOf:
- enum:
+ - maxim,max7356
+ - maxim,max7357
+ - maxim,max7358
+ - maxim,max7367
+ - maxim,max7368
+ - maxim,max7369
- nxp,pca9540
- nxp,pca9542
- nxp,pca9543
@@ -59,10 +63,33 @@ properties:
description: if present, overrides i2c-mux-idle-disconnect
$ref: /schemas/mux/mux-controller.yaml#/properties/idle-state
+ vdd-supply:
+ description: A voltage regulator supplying power to the chip.
+
required:
- compatible
- reg
+allOf:
+ - $ref: /schemas/i2c/i2c-mux.yaml#
+ - if:
+ not:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - maxim,max7367
+ - maxim,max7369
+ - nxp,pca9542
+ - nxp,pca9543
+ - nxp,pca9544
+ - nxp,pca9545
+ then:
+ properties:
+ interrupts: false
+ "#interrupt-cells": false
+ interrupt-controller: false
+
unevaluatedProperties: false
examples:
@@ -79,6 +106,8 @@ examples:
#size-cells = <0>;
reg = <0x74>;
+ vdd-supply = <&p3v3>;
+
interrupt-parent = <&ipic>;
interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
interrupt-controller;
--
2.37.3
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [v9 1/4] dt-bindings: i2c: Add Maxim MAX735x/MAX736x variants
2022-10-07 7:53 ` [v9 1/4] dt-bindings: i2c: Add " Patrick Rudolph
@ 2022-10-08 11:50 ` Serge Semin
2022-10-09 15:25 ` Krzysztof Kozlowski
0 siblings, 1 reply; 6+ messages in thread
From: Serge Semin @ 2022-10-08 11:50 UTC (permalink / raw)
To: Patrick Rudolph
Cc: Peter Rosin, Laurent Pinchart, robh, wsa, Rob Herring,
Krzysztof Kozlowski, linux-i2c, devicetree, linux-kernel
On Fri, Oct 07, 2022 at 09:53:50AM +0200, Patrick Rudolph wrote:
> Update the pca954x bindings to add support for the Maxim MAX735x/MAX736x
> chips. The functionality will be provided by the exisintg pca954x driver.
>
> While on it make the interrupts support conditionally as not all of the
> existing chips have interrupts.
>
> For chips that are powered off by default add an optional regulator
> called vdd-supply.
>
> Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
> ---
> .../bindings/i2c/i2c-mux-pca954x.yaml | 39 ++++++++++++++++---
> 1 file changed, 34 insertions(+), 5 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
> index 9f1726d0356b..efad0a95806f 100644
> --- a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
> +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
> @@ -4,21 +4,25 @@
> $id: http://devicetree.org/schemas/i2c/i2c-mux-pca954x.yaml#
> $schema: http://devicetree.org/meta-schemas/core.yaml#
>
> -title: NXP PCA954x I2C bus switch
> +title: NXP PCA954x I2C and compatible bus switches
>
> maintainers:
> - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>
> description:
> - The binding supports NXP PCA954x and PCA984x I2C mux/switch devices.
> -
> -allOf:
> - - $ref: /schemas/i2c/i2c-mux.yaml#
Why do you move the allOf statement to the bottom of the schema?
> + The binding supports NXP PCA954x and PCA984x I2C mux/switch devices,
> + and the Maxim MAX735x and MAX736x I2C mux/switch devices.
What about combining the sentence: "The binding supports NXP
PCA954x/PCA984x and Maxim MAX735x/MAX736x I2C mux/switch devices." ?
Currently it does look a bit bulky.
>
> properties:
> compatible:
> oneOf:
> - enum:
> + - maxim,max7356
> + - maxim,max7357
> + - maxim,max7358
> + - maxim,max7367
> + - maxim,max7368
> + - maxim,max7369
> - nxp,pca9540
> - nxp,pca9542
> - nxp,pca9543
> @@ -59,10 +63,33 @@ properties:
> description: if present, overrides i2c-mux-idle-disconnect
> $ref: /schemas/mux/mux-controller.yaml#/properties/idle-state
>
> + vdd-supply:
> + description: A voltage regulator supplying power to the chip.
> +
> required:
> - compatible
> - reg
>
> +allOf:
> + - $ref: /schemas/i2c/i2c-mux.yaml#
> + - if:
> + not:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - maxim,max7367
> + - maxim,max7369
> + - nxp,pca9542
> + - nxp,pca9543
> + - nxp,pca9544
> + - nxp,pca9545
> + then:
> + properties:
> + interrupts: false
> + "#interrupt-cells": false
> + interrupt-controller: false
I'd suggest to add an opposite definition. Evaluate the properties for
the devices which expect them being evaluated instead of falsing their
existence for the devices which don't support the interrupts.
-Sergey
> +
> unevaluatedProperties: false
>
> examples:
> @@ -79,6 +106,8 @@ examples:
> #size-cells = <0>;
> reg = <0x74>;
>
> + vdd-supply = <&p3v3>;
> +
> interrupt-parent = <&ipic>;
> interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
> interrupt-controller;
> --
> 2.37.3
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [v9 1/4] dt-bindings: i2c: Add Maxim MAX735x/MAX736x variants
2022-10-08 11:50 ` Serge Semin
@ 2022-10-09 15:25 ` Krzysztof Kozlowski
2022-10-09 18:03 ` Serge Semin
0 siblings, 1 reply; 6+ messages in thread
From: Krzysztof Kozlowski @ 2022-10-09 15:25 UTC (permalink / raw)
To: Serge Semin, Patrick Rudolph
Cc: Peter Rosin, Laurent Pinchart, robh, wsa, Rob Herring,
Krzysztof Kozlowski, linux-i2c, devicetree, linux-kernel
On 08/10/2022 13:50, Serge Semin wrote:
> On Fri, Oct 07, 2022 at 09:53:50AM +0200, Patrick Rudolph wrote:
>> Update the pca954x bindings to add support for the Maxim MAX735x/MAX736x
>> chips. The functionality will be provided by the exisintg pca954x driver.
>>
>> While on it make the interrupts support conditionally as not all of the
>> existing chips have interrupts.
>>
>> For chips that are powered off by default add an optional regulator
>> called vdd-supply.
>>
>> Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
>> ---
>> .../bindings/i2c/i2c-mux-pca954x.yaml | 39 ++++++++++++++++---
>> 1 file changed, 34 insertions(+), 5 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
>> index 9f1726d0356b..efad0a95806f 100644
>> --- a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
>> +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
>> @@ -4,21 +4,25 @@
>> $id: http://devicetree.org/schemas/i2c/i2c-mux-pca954x.yaml#
>> $schema: http://devicetree.org/meta-schemas/core.yaml#
>>
>> -title: NXP PCA954x I2C bus switch
>> +title: NXP PCA954x I2C and compatible bus switches
>>
>> maintainers:
>> - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>
>> description:
>> - The binding supports NXP PCA954x and PCA984x I2C mux/switch devices.
>> -
>
>> -allOf:
>> - - $ref: /schemas/i2c/i2c-mux.yaml#
>
> Why do you move the allOf statement to the bottom of the schema?
Because it goes with 'ifs' at the bottom of the schema...
>
>> + The binding supports NXP PCA954x and PCA984x I2C mux/switch devices,
>> + and the Maxim MAX735x and MAX736x I2C mux/switch devices.
>
> What about combining the sentence: "The binding supports NXP
> PCA954x/PCA984x and Maxim MAX735x/MAX736x I2C mux/switch devices." ?
> Currently it does look a bit bulky.
Drop "The binding supports". Instead describe the hardware.
>
>>
>> properties:
>> compatible:
>> oneOf:
>> - enum:
>> + - maxim,max7356
>> + - maxim,max7357
>> + - maxim,max7358
>> + - maxim,max7367
>> + - maxim,max7368
>> + - maxim,max7369
>> - nxp,pca9540
>> - nxp,pca9542
>> - nxp,pca9543
>> @@ -59,10 +63,33 @@ properties:
>> description: if present, overrides i2c-mux-idle-disconnect
>> $ref: /schemas/mux/mux-controller.yaml#/properties/idle-state
>>
>> + vdd-supply:
>> + description: A voltage regulator supplying power to the chip.
>> +
>> required:
>> - compatible
>> - reg
>>
>> +allOf:
>> + - $ref: /schemas/i2c/i2c-mux.yaml#
>> + - if:
>> + not:
>> + properties:
>> + compatible:
>> + contains:
>> + enum:
>> + - maxim,max7367
>> + - maxim,max7369
>> + - nxp,pca9542
>> + - nxp,pca9543
>> + - nxp,pca9544
>> + - nxp,pca9545
>> + then:
>
>> + properties:
>> + interrupts: false
>> + "#interrupt-cells": false
>> + interrupt-controller: false
>
> I'd suggest to add an opposite definition. Evaluate the properties for
> the devices which expect them being evaluated instead of falsing their
> existence for the devices which don't support the interrupts.
The properties rather should be defined in top-level than in "if", so I
am not sure how would you want to achieve opposite way.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [v9 1/4] dt-bindings: i2c: Add Maxim MAX735x/MAX736x variants
2022-10-09 15:25 ` Krzysztof Kozlowski
@ 2022-10-09 18:03 ` Serge Semin
2022-10-10 10:26 ` Krzysztof Kozlowski
0 siblings, 1 reply; 6+ messages in thread
From: Serge Semin @ 2022-10-09 18:03 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Patrick Rudolph, Peter Rosin, Laurent Pinchart, robh, wsa,
Rob Herring, Krzysztof Kozlowski, linux-i2c, devicetree,
linux-kernel
On Sun, Oct 09, 2022 at 05:25:22PM +0200, Krzysztof Kozlowski wrote:
> On 08/10/2022 13:50, Serge Semin wrote:
> > On Fri, Oct 07, 2022 at 09:53:50AM +0200, Patrick Rudolph wrote:
> >> Update the pca954x bindings to add support for the Maxim MAX735x/MAX736x
> >> chips. The functionality will be provided by the exisintg pca954x driver.
> >>
> >> While on it make the interrupts support conditionally as not all of the
> >> existing chips have interrupts.
> >>
> >> For chips that are powered off by default add an optional regulator
> >> called vdd-supply.
> >>
> >> Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
> >> ---
> >> .../bindings/i2c/i2c-mux-pca954x.yaml | 39 ++++++++++++++++---
> >> 1 file changed, 34 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
> >> index 9f1726d0356b..efad0a95806f 100644
> >> --- a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
> >> +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
> >> @@ -4,21 +4,25 @@
> >> $id: http://devicetree.org/schemas/i2c/i2c-mux-pca954x.yaml#
> >> $schema: http://devicetree.org/meta-schemas/core.yaml#
> >>
> >> -title: NXP PCA954x I2C bus switch
> >> +title: NXP PCA954x I2C and compatible bus switches
> >>
> >> maintainers:
> >> - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> >>
> >> description:
> >> - The binding supports NXP PCA954x and PCA984x I2C mux/switch devices.
> >> -
> >
> >> -allOf:
> >> - - $ref: /schemas/i2c/i2c-mux.yaml#
> >
> > Why do you move the allOf statement to the bottom of the schema?
>
> Because it goes with 'ifs' at the bottom of the schema...
Is there a requirement to move the allOf array to the bottom of the
schema if it contains the 'if' statement? If only there were some
kernel doc with all such implicit conventions...
>
> >
> >> + The binding supports NXP PCA954x and PCA984x I2C mux/switch devices,
> >> + and the Maxim MAX735x and MAX736x I2C mux/switch devices.
> >
> > What about combining the sentence: "The binding supports NXP
> > PCA954x/PCA984x and Maxim MAX735x/MAX736x I2C mux/switch devices." ?
> > Currently it does look a bit bulky.
>
> Drop "The binding supports". Instead describe the hardware.
>
> >
> >>
> >> properties:
> >> compatible:
> >> oneOf:
> >> - enum:
> >> + - maxim,max7356
> >> + - maxim,max7357
> >> + - maxim,max7358
> >> + - maxim,max7367
> >> + - maxim,max7368
> >> + - maxim,max7369
> >> - nxp,pca9540
> >> - nxp,pca9542
> >> - nxp,pca9543
> >> @@ -59,10 +63,33 @@ properties:
> >> description: if present, overrides i2c-mux-idle-disconnect
> >> $ref: /schemas/mux/mux-controller.yaml#/properties/idle-state
> >>
> >> + vdd-supply:
> >> + description: A voltage regulator supplying power to the chip.
> >> +
> >> required:
> >> - compatible
> >> - reg
> >>
> >> +allOf:
> >> + - $ref: /schemas/i2c/i2c-mux.yaml#
> >> + - if:
> >> + not:
> >> + properties:
> >> + compatible:
> >> + contains:
> >> + enum:
> >> + - maxim,max7367
> >> + - maxim,max7369
> >> + - nxp,pca9542
> >> + - nxp,pca9543
> >> + - nxp,pca9544
> >> + - nxp,pca9545
> >> + then:
> >
> >> + properties:
> >> + interrupts: false
> >> + "#interrupt-cells": false
> >> + interrupt-controller: false
> >
> > I'd suggest to add an opposite definition. Evaluate the properties for
> > the devices which expect them being evaluated instead of falsing their
> > existence for the devices which don't support the interrupts.
>
> The properties rather should be defined in top-level than in "if", so I
> am not sure how would you want to achieve opposite way.
With one more implicit convention like "preferably define the
properties in the top-level than in if" of course I can't. Otherwise I
thought something like this would work:
+allOf:
+ - ...
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum: [...]
+ then:
+ properties:
+ interrupts: ...
+ "#interrupt-cells": ...
+ interrupt-controller: ...
...
- interrupts:
- "#interrupt-cells":
- interrupt-controller: ...
With unevaluatedProperties set to false and evaluation performed for
the particular compatibles such schema shall work with the same
semantic.
-Sergey
>
>
> Best regards,
> Krzysztof
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [v9 1/4] dt-bindings: i2c: Add Maxim MAX735x/MAX736x variants
2022-10-09 18:03 ` Serge Semin
@ 2022-10-10 10:26 ` Krzysztof Kozlowski
0 siblings, 0 replies; 6+ messages in thread
From: Krzysztof Kozlowski @ 2022-10-10 10:26 UTC (permalink / raw)
To: Serge Semin
Cc: Patrick Rudolph, Peter Rosin, Laurent Pinchart, robh, wsa,
Rob Herring, Krzysztof Kozlowski, linux-i2c, devicetree,
linux-kernel
On 09/10/2022 14:03, Serge Semin wrote:
> On Sun, Oct 09, 2022 at 05:25:22PM +0200, Krzysztof Kozlowski wrote:
>> On 08/10/2022 13:50, Serge Semin wrote:
>>> On Fri, Oct 07, 2022 at 09:53:50AM +0200, Patrick Rudolph wrote:
>>>> Update the pca954x bindings to add support for the Maxim MAX735x/MAX736x
>>>> chips. The functionality will be provided by the exisintg pca954x driver.
>>>>
>>>> While on it make the interrupts support conditionally as not all of the
>>>> existing chips have interrupts.
>>>>
>>>> For chips that are powered off by default add an optional regulator
>>>> called vdd-supply.
>>>>
>>>> Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
>>>> ---
>>>> .../bindings/i2c/i2c-mux-pca954x.yaml | 39 ++++++++++++++++---
>>>> 1 file changed, 34 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
>>>> index 9f1726d0356b..efad0a95806f 100644
>>>> --- a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
>>>> +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml
>>>> @@ -4,21 +4,25 @@
>>>> $id: http://devicetree.org/schemas/i2c/i2c-mux-pca954x.yaml#
>>>> $schema: http://devicetree.org/meta-schemas/core.yaml#
>>>>
>>>> -title: NXP PCA954x I2C bus switch
>>>> +title: NXP PCA954x I2C and compatible bus switches
>>>>
>>>> maintainers:
>>>> - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>>>>
>>>> description:
>>>> - The binding supports NXP PCA954x and PCA984x I2C mux/switch devices.
>>>> -
>>>
>>>> -allOf:
>>>> - - $ref: /schemas/i2c/i2c-mux.yaml#
>>>
>>> Why do you move the allOf statement to the bottom of the schema?
>>
>
>> Because it goes with 'ifs' at the bottom of the schema...
>
> Is there a requirement to move the allOf array to the bottom of the
> schema if it contains the 'if' statement? If only there were some
> kernel doc with all such implicit conventions...
It's just a convention, although quite logical because "ifs" can grow
significantly, so putting it before properties is outside of context.
Reader does not know yet to what this if applies.
>
>>
>>>
>>>> + The binding supports NXP PCA954x and PCA984x I2C mux/switch devices,
>>>> + and the Maxim MAX735x and MAX736x I2C mux/switch devices.
>>>
>>> What about combining the sentence: "The binding supports NXP
>>> PCA954x/PCA984x and Maxim MAX735x/MAX736x I2C mux/switch devices." ?
>>> Currently it does look a bit bulky.
>>
>> Drop "The binding supports". Instead describe the hardware.
>>
>>>
>>>>
>>>> properties:
>>>> compatible:
>>>> oneOf:
>>>> - enum:
>>>> + - maxim,max7356
>>>> + - maxim,max7357
>>>> + - maxim,max7358
>>>> + - maxim,max7367
>>>> + - maxim,max7368
>>>> + - maxim,max7369
>>>> - nxp,pca9540
>>>> - nxp,pca9542
>>>> - nxp,pca9543
>>>> @@ -59,10 +63,33 @@ properties:
>>>> description: if present, overrides i2c-mux-idle-disconnect
>>>> $ref: /schemas/mux/mux-controller.yaml#/properties/idle-state
>>>>
>>>> + vdd-supply:
>>>> + description: A voltage regulator supplying power to the chip.
>>>> +
>>>> required:
>>>> - compatible
>>>> - reg
>>>>
>>>> +allOf:
>>>> + - $ref: /schemas/i2c/i2c-mux.yaml#
>>>> + - if:
>>>> + not:
>>>> + properties:
>>>> + compatible:
>>>> + contains:
>>>> + enum:
>>>> + - maxim,max7367
>>>> + - maxim,max7369
>>>> + - nxp,pca9542
>>>> + - nxp,pca9543
>>>> + - nxp,pca9544
>>>> + - nxp,pca9545
>>>> + then:
>>>
>>>> + properties:
>>>> + interrupts: false
>>>> + "#interrupt-cells": false
>>>> + interrupt-controller: false
>>>
>>> I'd suggest to add an opposite definition. Evaluate the properties for
>>> the devices which expect them being evaluated instead of falsing their
>>> existence for the devices which don't support the interrupts.
>>
>
>> The properties rather should be defined in top-level than in "if", so I
>> am not sure how would you want to achieve opposite way.
>
> With one more implicit convention like "preferably define the
> properties in the top-level than in if" of course I can't. Otherwise I
> thought something like this would work:
> +allOf:
> + - ...
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum: [...]
> + then:
> + properties:
> + interrupts: ...
> + "#interrupt-cells": ...
> + interrupt-controller: ...
> ...
> - interrupts:
> - "#interrupt-cells":
> - interrupt-controller: ...
>
> With unevaluatedProperties set to false and evaluation performed for
> the particular compatibles such schema shall work with the same
> semantic.
Yes, this will work, but defining properties inside "if" is usually not
readable.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-10-10 10:28 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-07 7:53 [v9 0/4] Add support for Maxim MAX735x/MAX736x variants Patrick Rudolph
2022-10-07 7:53 ` [v9 1/4] dt-bindings: i2c: Add " Patrick Rudolph
2022-10-08 11:50 ` Serge Semin
2022-10-09 15:25 ` Krzysztof Kozlowski
2022-10-09 18:03 ` Serge Semin
2022-10-10 10:26 ` Krzysztof Kozlowski
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).