# Copyright (c) 2023 Cypress Semiconductor Corporation (an Infineon company) or
# an affiliate of Cypress Semiconductor Corporation
#
# SPDX-License-Identifier: Apache-2.0

description: |
  Infineon CAT1 I2C driver

  This driver configures the SCB as an I2C device.

  Example devicetree configuration with vl53l0x Time-of-Flight (ToF)
  ranging sensor connected on the bus:

  i2c3: &scb3 {
      compatible = "infineon,cat1-i2c";
      status = "okay";

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

      pinctrl-0 = <&p6_0_scb3_i2c_scl &p6_1_scb3_i2c_sda>;
      pinctrl-names = "default";

      vl53l0x@29 {
        compatible = "st,vl53l0x";
        reg = <0x29>;
      };
  };

  The pinctrl nodes need to be configured as open-drain and
  input-enable:

  &p6_0_scb3_i2c_scl {
    drive-open-drain;
    input-enable;
  };

  &p6_1_scb3_i2c_sda {
    drive-open-drain;
    input-enable;
  };

compatible: "infineon,cat1-i2c"

include: [i2c-controller.yaml, pinctrl-device.yaml, "infineon,cat1-scb.yaml"]

properties:
  reg:
    type: array
    required: true

  interrupts:
    type: array
    required: true

  pinctrl-0:
    description: |
      PORT pin configuration for SCL, SDA signals.
      We expect that the phandles will reference pinctrl nodes. These
      nodes will have a nodelabel that matches the Infineon SoC Pinctrl
      defines and have following
      format: p<port>_<pin>_<peripheral inst>_<signal>.

      Examples:
        pinctrl-0 = <&p6_0_scb3_i2c_scl &p6_1_scb3_i2c_sda>;
    required: true

  pinctrl-names:
    required: true

  clock-frequency:
    type: int
    description: |
      Frequency that the I2C bus runs
