# Copyright (c) 2017 I-SENSE group of ICCS
# SPDX-License-Identifier: Apache-2.0

description: STM32 I2C V2 controller

compatible: "st,stm32-i2c-v2"

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

properties:
    reg:
      required: true

    interrupts:
      required: true

    pinctrl-0:
      required: true

    pinctrl-names:
      required: true

    timings:
        type: array
        description: |
            An optional table of pre-computed i2c timing values with the
            matching clock configuration.

            Precise timings values for a given Hardware can be pre-computed
            with a tool like STM32CubeMX or directly from I2C_TIMINGR register
            description.

            Because timing value is valid for a given I2C peripheral clock
            frequency and target I2C bus clock, each timing value must be
            provided with the matching configuration.

            The resulting table entries should look like <periph_clock
            clock-frequency timing>

            For example timings could be defined as

                timings = <64000000 I2C_BITRATE_STANDARD 0x10707DBC>,
                          <64000000 I2C_BITRATE_FAST 0x00603D56>,
                          <56000000 I2C_BITRATE_STANDARD 0x10606DA4>,
                          <56000000 I2C_BITRATE_FAST 0x00501D63>;
