# 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

properties:
    reg:
      required: true

    interrupts:
      required: true

    timings:
        type: array
        required: false
        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>;
