# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/i2c/i2c-demux-pinctrl.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Pinctrl-based I2C Bus Demultiplexer

maintainers:
  - Wolfram Sang <wsa+renesas@sang-engineering.com>

description: |
  This binding describes an I2C bus demultiplexer that uses pin multiplexing to
  route the I2C signals, and represents the pin multiplexing configuration
  using the pinctrl device tree bindings.  This may be used to select one I2C
  IP core at runtime which may have a better feature set for a given task than
  another I2C IP core on the SoC.  The most simple example is to fall back to
  GPIO bitbanging if your current runtime configuration hits an errata of the
  internal IP core.

      +-------------------------------+
      | SoC                           |
      |                               |   +-----+  +-----+
      |   +------------+              |   | dev |  | dev |
      |   |I2C IP Core1|--\           |   +-----+  +-----+
      |   +------------+   \-------+  |      |        |
      |                    |Pinctrl|--|------+--------+
      |   +------------+   +-------+  |
      |   |I2C IP Core2|--/           |
      |   +------------+              |
      |                               |
      +-------------------------------+

allOf:
  - $ref: /schemas/i2c/i2c-controller.yaml#

properties:
  compatible:
    const: i2c-demux-pinctrl

  i2c-parent:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    items:
      maxItems: 1
    description:
      List of phandles of I2C masters available for selection.  The first one
      will be used as default.

  i2c-bus-name:
    $ref: /schemas/types.yaml#/definitions/string
    description:
      The name of this bus.  Also needed as pinctrl-name for the I2C parents.

required:
  - compatible
  - i2c-parent
  - i2c-bus-name

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    gpioi2c2: i2c-9 {
        #address-cells = <1>;
        #size-cells = <0>;
        compatible = "i2c-gpio";
        scl-gpios = <&gpio5 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        sda-gpios = <&gpio5 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        i2c-gpio,delay-us = <5>;

        // The I2C controller must have its status "disabled".  The I2C bus
        // demultiplexer will enable it at runtime when needed.
        status = "disabled";
    };

    iic2: i2c@e6520000 {
        reg = <0xe6520000 0x425>;
        pinctrl-0 = <&iic2_pins>;
        // The pinctrl property for the parent I2C controller needs a pinctrl
        // state with the same name as i2c-bus-name in the I2C bus demultiplexer
        // node, not "default"!
        pinctrl-names = "i2c-hdmi";

        clock-frequency = <100000>;

        // The I2C controller must have its status "disabled".  The I2C bus
        // demultiplexer will enable it at runtime when needed.
        status = "disabled";
    };

    i2c2: i2c@e6530000 {
        reg = <0 0xe6530000 0 0x40>;
        pinctrl-0 = <&i2c2_pins>;
        // The pinctrl property for the parent I2C controller needs a pinctrl
        // state with the same name as i2c-bus-name in the I2C bus demultiplexer
        // node, not "default"!
        pinctrl-names = "i2c-hdmi";

        clock-frequency = <100000>;

        // The I2C controller must have its status "disabled".  The I2C bus
        // demultiplexer will enable it at runtime when needed.
        status = "disabled";
    };

    // Example for a bus to be demuxed.  It contains various I2C clients for
    // HDMI, so the bus is named "i2c-hdmi":
    i2chdmi: i2c-mux3 {
        compatible = "i2c-demux-pinctrl";
        i2c-parent = <&iic2>, <&i2c2>, <&gpioi2c2>;
        i2c-bus-name = "i2c-hdmi";
        #address-cells = <1>;
        #size-cells = <0>;

        ak4643: codec@12 {
            compatible = "asahi-kasei,ak4643";
            #sound-dai-cells = <0>;
            reg = <0x12>;
        };

        composite-in@20 {
            compatible = "adi,adv7180";
            reg = <0x20>;

            port {
                adv7180: endpoint {
                    bus-width = <8>;
                    remote-endpoint = <&vin1ep0>;
                };
            };
        };

        hdmi@39 {
            compatible = "adi,adv7511w";
            reg = <0x39>;
            interrupt-parent = <&gpio1>;
            interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
            clocks = <&cec_clock>;
            clock-names = "cec";

            avdd-supply = <&fixedregulator1v8>;
            dvdd-supply = <&fixedregulator1v8>;
            pvdd-supply = <&fixedregulator1v8>;
            dvdd-3v-supply = <&fixedregulator3v3>;
            bgvdd-supply = <&fixedregulator1v8>;

            adi,input-depth = <8>;
            adi,input-colorspace = "rgb";
            adi,input-clock = "1x";

            ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@0 {
                    reg = <0>;
                    adv7511_in: endpoint {
                        remote-endpoint = <&lvds0_out>;
                    };
                };

                port@1 {
                    reg = <1>;
                    adv7511_out: endpoint {
                        remote-endpoint = <&hdmi_con_out>;
                    };
                };
            };
        };
    };
