# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (C) 2022 Microchip Technology, Inc. and its subsidiaries
%YAML 1.2
---
$id: http://devicetree.org/schemas/i2c/atmel,at91sam-i2c.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: I2C for Atmel/Microchip platforms

maintainers:
  - Alexandre Belloni <alexandre.belloni@bootlin.com>

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - atmel,at91rm9200-i2c
              - atmel,at91sam9261-i2c
              - atmel,at91sam9260-i2c
              - atmel,at91sam9g20-i2c
              - atmel,at91sam9g10-i2c
              - atmel,at91sam9x5-i2c
              - atmel,sama5d4-i2c
              - atmel,sama5d2-i2c
              - microchip,sam9x60-i2c
      - items:
          - const: microchip,sama7g5-i2c
          - const: microchip,sam9x60-i2c

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  clocks:
    maxItems: 1

  clock-frequency:
    default: 100000

  dmas:
    items:
      - description: TX DMA Channel Specifier
      - description: RX DMA Channel Specifier

  dma-names:
    items:
      - const: tx
      - const: rx

  atmel,fifo-size:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: |
      Maximum number of data the RX and TX FIFOs can store for
      FIFO capable I2C controllers.

  scl-gpios: true

  sda-gpios: true

required:
  - compatible
  - reg
  - interrupts
  - "#address-cells"
  - "#size-cells"
  - clocks

allOf:
  - $ref: "i2c-controller.yaml"
  - if:
      properties:
        compatible:
          contains:
            enum:
              - atmel,sama5d4-i2c
              - atmel,sama5d2-i2c
              - microchip,sam9x60-i2c
              - microchip,sama7g5-i2c
    then:
      properties:
        i2c-sda-hold-time-ns:
          description:
            TWD hold time
          maxItems: 1

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/dma/at91.h>
    #include <dt-bindings/gpio/gpio.h>

    i2c0: i2c@fff84000 {
        compatible = "atmel,at91sam9g20-i2c";
        reg = <0xfff84000 0x100>;
        interrupts = <12 IRQ_TYPE_LEVEL_HIGH 6>;
        #address-cells = <1>;
        #size-cells = <0>;
        clocks = <&twi0_clk>;
        clock-frequency = <400000>;

        eeprom@50 {
            compatible = "atmel,24c512";
            reg = <0x50>;
            pagesize = <128>;
        };
    };

    i2c1: i2c@f8034600 {
        compatible = "atmel,sama5d2-i2c";
        reg = <0xf8034600 0x100>;
        interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>;
        dmas = <&dma0
            (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1))
            AT91_XDMAC_DT_PERID(11)>,
               <&dma0
            (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1))
            AT91_XDMAC_DT_PERID(12)>;
        dma-names = "tx", "rx";
        #address-cells = <1>;
        #size-cells = <0>;
        clocks = <&flx0>;
        atmel,fifo-size = <16>;
        i2c-sda-hold-time-ns = <336>;
        pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c0>;
        pinctrl-1 = <&pinctrl_i2c0_gpio>;
        sda-gpios = <&pioA 30 GPIO_ACTIVE_HIGH>;
        scl-gpios = <&pioA 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;

        eeprom@54 {
            compatible = "atmel,24c02";
            reg = <0x54>;
            pagesize = <16>;
        };
    };
