# Copyright (c) 2020, Innoseis BV
# SPDX-License-Identifier: Apache-2.0

# Common fields for TI TCA954X I2C mux family

description: |
  TCA954x I2C switch

  Each channel is represented by a separate devicetree child node.
  The channel node can then be used as a standard i2c bus controller
  like in the following simplified example:

      /* The tca954x node must be a child of an i2c controller */
      mux: tca9546a@77 {
          compatible = "ti,tca9546a";
          reg = <0x77>;
          status = "okay";
          #address-cells = <1>;
          #size-cells = <0>;
          reset-gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;

          mux_i2c@0 {
              compatible: "ti,tca9546a-channel"
              reg = <0>;
              #address-cells = <1>;
              #size-cells = <0>;

              temp_sens_0: tmp116@49 {
                  compatible = "ti,tmp116";
                  reg = <0x49>;
              };
          };

          mux_i2c@1 {
            compatible: "ti,tca9546a-channel"
              reg = <1>;
              #address-cells = <1>;
              #size-cells = <0>;

              temp_sens_1: tmp116@49 {
                  compatible = "ti,tmp116";
                  reg = <0x49>;
              };
          };
      };

include: [i2c-device.yaml]

properties:
  reset-gpios:
    type: phandle-array
    description: |
      GPIO connected to the controller RESET pin. This pin is active-low.

child-binding:
  description: TCA954x I2C switch channel node
  include: [i2c-controller.yaml]
  on-bus: i2c
