Re: [PATCH v2 1/4] dt-bindings: i2c: Add Maxim MAX735x/MAX736x variants

From: Laurent Pinchart
Date: Sat Jan 08 2022 - 18:18:55 EST


Hi Patrick,

Thank you for the patch.

On Sat, Jan 08, 2022 at 07:57:55PM +0100, Patrick Rudolph wrote:
> Add the Maxim MAX735x/MAX736x as supported chip and give an example
> how to use it. The functionality will be provided by the exisintg
> pca954x driver.

While DT bindings and drivers are decoupled, the fact that the same
driver provides support for the MAX735x/MAX736x indicates there's some
similarity between those and the PCA954x chips. Would they be similar
enough to have a single DT binding schema file ? This file looks very
similar to Documentation/devicetree/bindings/i2c/i2c-mux-pca954x.yaml.

> Signed-off-by: Patrick Rudolph <patrick.rudolph@xxxxxxxxxxxxx>
> ---
> .../bindings/i2c/i2c-mux-max735x.yaml | 101 ++++++++++++++++++
> 1 file changed, 101 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/i2c/i2c-mux-max735x.yaml
>
> diff --git a/Documentation/devicetree/bindings/i2c/i2c-mux-max735x.yaml b/Documentation/devicetree/bindings/i2c/i2c-mux-max735x.yaml
> new file mode 100644
> index 000000000000..dc924ec934ca
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/i2c/i2c-mux-max735x.yaml
> @@ -0,0 +1,101 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/i2c/i2c-mux-max735x.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Maxim MAX735x/MAX736x I2C bus switch
> +
> +maintainers:
> + - Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> +
> +description:
> + The binding supports Maxim MAX735x and MAX736x I2C mux/switch devices.
> +
> +allOf:
> + - $ref: /schemas/i2c/i2c-mux.yaml#
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - maxim,max7367
> + - maxim,max7369
> + then:
> + properties:
> + interrupts: true
> +
> + "#interrupt-cells":
> + const: 2
> +
> + interrupt-controller: true
> +
> +properties:
> + compatible:
> + oneOf:
> + - enum:
> + - maxim,max7356
> + - maxim,max7357
> + - maxim,max7358
> + - maxim,max7367
> + - maxim,max7368
> + - maxim,max7369
> +
> + reg:
> + maxItems: 1
> +
> + reset-gpios:
> + maxItems: 1
> +
> + i2c-mux-idle-disconnect:
> + type: boolean
> + description: Forces mux to disconnect all children in idle state. This is
> + necessary for example, if there are several multiplexers on the bus and
> + the devices behind them use same I2C addresses.
> +
> + idle-state:
> + description: if present, overrides i2c-mux-idle-disconnect
> + $ref: /schemas/mux/mux-controller.yaml#/properties/idle-state
> +
> +required:
> + - compatible
> + - reg
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + i2c {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + i2c-mux@74 {
> + compatible = "maxim,max7357";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <0x74>;
> +
> + i2c@1 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <1>;
> +
> + eeprom@54 {
> + compatible = "atmel,24c08";
> + reg = <0x54>;
> + };
> + };
> +
> + i2c@7 {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <7>;
> +
> + rtc@51 {
> + compatible = "nxp,pcf8563";
> + reg = <0x51>;
> + };
> + };
> + };
> + };
> +...

--
Regards,

Laurent Pinchart