* [v7 0/3] Add support for Maxim MAX735x/MAX736x variants @ 2022-04-05 12:05 Patrick Rudolph 2022-04-05 12:05 ` [v7 1/3] dt-bindings: i2c: Add " Patrick Rudolph 0 siblings, 1 reply; 4+ messages in thread From: Patrick Rudolph @ 2022-04-05 12:05 UTC (permalink / raw) To: Laurent Pinchart, linux-i2c; +Cc: Patrick Rudolph, devicetree, linux-kernel 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 (3): dt-bindings: i2c: Add Maxim MAX735x/MAX736x variants i2c: muxes: pca954x: Add MAX735x/MAX736x support i2c: muxes: pca954x: Add regulator support .../bindings/i2c/i2c-mux-pca954x.yaml | 44 ++++-- drivers/i2c/muxes/Kconfig | 4 +- drivers/i2c/muxes/i2c-mux-pca954x.c | 126 ++++++++++++++++-- 3 files changed, 153 insertions(+), 21 deletions(-) -- 2.34.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [v7 1/3] dt-bindings: i2c: Add Maxim MAX735x/MAX736x variants 2022-04-05 12:05 [v7 0/3] Add support for Maxim MAX735x/MAX736x variants Patrick Rudolph @ 2022-04-05 12:05 ` Patrick Rudolph 2022-04-05 13:46 ` Laurent Pinchart 0 siblings, 1 reply; 4+ messages in thread From: Patrick Rudolph @ 2022-04-05 12:05 UTC (permalink / raw) To: Peter Rosin, Laurent Pinchart Cc: Patrick Rudolph, Rob Herring, 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 | 44 ++++++++++++++----- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml index 9f1726d0356b..132c3e54e7ab 100644 --- a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml @@ -4,21 +4,48 @@ $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. + The binding supports NXP PCA954x and PCA984x I2C mux/switch devices, + and the Maxim MAX735x and MAX736x I2C mux/switch devices. allOf: - $ref: /schemas/i2c/i2c-mux.yaml# + - if: + properties: + compatible: + contains: + enum: + - maxim,max7367 + - maxim,max7369 + - nxp,pca9542 + - nxp,pca9543 + - nxp,pca9544 + - nxp,pca9545 + then: + properties: + interrupts: + maxItems: 1 + + "#interrupt-cells": + const: 2 + + interrupt-controller: true properties: compatible: oneOf: - enum: + - maxim,max7356 + - maxim,max7357 + - maxim,max7358 + - maxim,max7367 + - maxim,max7368 + - maxim,max7369 - nxp,pca9540 - nxp,pca9542 - nxp,pca9543 @@ -38,14 +65,6 @@ properties: reg: maxItems: 1 - interrupts: - maxItems: 1 - - "#interrupt-cells": - const: 2 - - interrupt-controller: true - reset-gpios: maxItems: 1 @@ -59,6 +78,9 @@ 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 @@ -79,6 +101,8 @@ examples: #size-cells = <0>; reg = <0x74>; + vdd-supply = <&p3v3>; + interrupt-parent = <&ipic>; interrupts = <17 IRQ_TYPE_LEVEL_LOW>; interrupt-controller; -- 2.35.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [v7 1/3] dt-bindings: i2c: Add Maxim MAX735x/MAX736x variants 2022-04-05 12:05 ` [v7 1/3] dt-bindings: i2c: Add " Patrick Rudolph @ 2022-04-05 13:46 ` Laurent Pinchart 2022-04-06 18:43 ` Rob Herring 0 siblings, 1 reply; 4+ messages in thread From: Laurent Pinchart @ 2022-04-05 13:46 UTC (permalink / raw) To: Patrick Rudolph Cc: Peter Rosin, Rob Herring, linux-i2c, devicetree, linux-kernel Hi Patrick, Thank you for the patch. On Tue, Apr 05, 2022 at 02:05:49PM +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 | 44 ++++++++++++++----- > 1 file changed, 34 insertions(+), 10 deletions(-) > > diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml > index 9f1726d0356b..132c3e54e7ab 100644 > --- a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml > +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml > @@ -4,21 +4,48 @@ > $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. > + The binding supports NXP PCA954x and PCA984x I2C mux/switch devices, > + and the Maxim MAX735x and MAX736x I2C mux/switch devices. > > allOf: > - $ref: /schemas/i2c/i2c-mux.yaml# > + - if: > + properties: > + compatible: > + contains: > + enum: > + - maxim,max7367 > + - maxim,max7369 > + - nxp,pca9542 > + - nxp,pca9543 > + - nxp,pca9544 > + - nxp,pca9545 > + then: > + properties: > + interrupts: > + maxItems: 1 > + > + "#interrupt-cells": > + const: 2 > + > + interrupt-controller: true It feels a bit out of place to have those properties listed before the main "properties" property, but we can only have a sincel allOf. I wonder if the i2c-mux schema could be selected automatically based on node name, but that's out of scope for this patch. I thought it was more customary to define properties in the main "properties" property, and then have 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 don't mind much either way though, but if one option is preferred over the other, we may want to be consistent. Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > properties: > compatible: > oneOf: > - enum: > + - maxim,max7356 > + - maxim,max7357 > + - maxim,max7358 > + - maxim,max7367 > + - maxim,max7368 > + - maxim,max7369 > - nxp,pca9540 > - nxp,pca9542 > - nxp,pca9543 > @@ -38,14 +65,6 @@ properties: > reg: > maxItems: 1 > > - interrupts: > - maxItems: 1 > - > - "#interrupt-cells": > - const: 2 > - > - interrupt-controller: true > - > reset-gpios: > maxItems: 1 > > @@ -59,6 +78,9 @@ 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 > @@ -79,6 +101,8 @@ examples: > #size-cells = <0>; > reg = <0x74>; > > + vdd-supply = <&p3v3>; > + > interrupt-parent = <&ipic>; > interrupts = <17 IRQ_TYPE_LEVEL_LOW>; > interrupt-controller; -- Regards, Laurent Pinchart ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [v7 1/3] dt-bindings: i2c: Add Maxim MAX735x/MAX736x variants 2022-04-05 13:46 ` Laurent Pinchart @ 2022-04-06 18:43 ` Rob Herring 0 siblings, 0 replies; 4+ messages in thread From: Rob Herring @ 2022-04-06 18:43 UTC (permalink / raw) To: Laurent Pinchart Cc: Patrick Rudolph, Peter Rosin, linux-i2c, devicetree, linux-kernel On Tue, Apr 05, 2022 at 04:46:34PM +0300, Laurent Pinchart wrote: > Hi Patrick, > > Thank you for the patch. > > On Tue, Apr 05, 2022 at 02:05:49PM +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 | 44 ++++++++++++++----- > > 1 file changed, 34 insertions(+), 10 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml > > index 9f1726d0356b..132c3e54e7ab 100644 > > --- a/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml > > +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml > > @@ -4,21 +4,48 @@ > > $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. > > + The binding supports NXP PCA954x and PCA984x I2C mux/switch devices, > > + and the Maxim MAX735x and MAX736x I2C mux/switch devices. > > > > allOf: > > - $ref: /schemas/i2c/i2c-mux.yaml# > > + - if: > > + properties: > > + compatible: > > + contains: > > + enum: > > + - maxim,max7367 > > + - maxim,max7369 > > + - nxp,pca9542 > > + - nxp,pca9543 > > + - nxp,pca9544 > > + - nxp,pca9545 > > + then: > > + properties: > > + interrupts: > > + maxItems: 1 > > + > > + "#interrupt-cells": > > + const: 2 > > + > > + interrupt-controller: true > > It feels a bit out of place to have those properties listed before the > main "properties" property, but we can only have a sincel allOf. I > wonder if the i2c-mux schema could be selected automatically based on > node name, but that's out of scope for this patch. Yes, just move the allOf below 'properties' > I thought it was more customary to define properties in the main > "properties" property, and then have Yes, please do. Rob ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-04-06 20:23 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-04-05 12:05 [v7 0/3] Add support for Maxim MAX735x/MAX736x variants Patrick Rudolph 2022-04-05 12:05 ` [v7 1/3] dt-bindings: i2c: Add " Patrick Rudolph 2022-04-05 13:46 ` Laurent Pinchart 2022-04-06 18:43 ` Rob Herring
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).