# Copyright (c) 2019 Mohamed ElShahawi (ExtremeGTX@hotmail.com)
# Copyright (c) 2022 Espressif Systems (Shanghai) Co., Ltd.
# SPDX-License-Identifier: Apache-2.0

description: ESP32 I2C

compatible: "espressif,esp32-i2c"

include: [i2c-controller.yaml, pinctrl-device.yaml]

properties:
  reg:
    required: true

  pinctrl-0:
    required: true

  pinctrl-names:
    required: true

  scl-gpios:
    type: phandle-array
    description: |
      GPIO to which the I2C SCL signal is routed. This is only required
      if the target SoC does not have support in hardware for clearing
      the I2C bus in case of a communication failure

  sda-gpios:
    type: phandle-array
    description: |
      GPIO to which the I2C SDA signal is routed. This is only required
      if the target SoC does not have support in hardware for clearing
      the I2C bus in case of a communication failure

  tx-lsb:
    type: boolean
    description: Set I2C TX data as LSB

  rx-lsb:
    type: boolean
    description: Set I2C RX data as LSB

  scl-timeout-us:
    type: int
    description: |
      Timeout for unchanged SCL during clock stretching of the I2C target in
      microseconds.

      If not set or 0, the timeout is disabled or set to the maximum possible
      value if the MCU does not support disabling the timeout.
