1*7ea75dd3SSergiu Moga# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*7ea75dd3SSergiu Moga# Copyright (C) 2022 Microchip Technology, Inc. and its subsidiaries 3*7ea75dd3SSergiu Moga%YAML 1.2 4*7ea75dd3SSergiu Moga--- 5*7ea75dd3SSergiu Moga$id: http://devicetree.org/schemas/i2c/atmel,at91sam-i2c.yaml# 6*7ea75dd3SSergiu Moga$schema: http://devicetree.org/meta-schemas/core.yaml# 7*7ea75dd3SSergiu Moga 8*7ea75dd3SSergiu Mogatitle: I2C for Atmel/Microchip platforms 9*7ea75dd3SSergiu Moga 10*7ea75dd3SSergiu Mogamaintainers: 11*7ea75dd3SSergiu Moga - Alexandre Belloni <alexandre.belloni@bootlin.com> 12*7ea75dd3SSergiu Moga 13*7ea75dd3SSergiu Mogaproperties: 14*7ea75dd3SSergiu Moga compatible: 15*7ea75dd3SSergiu Moga enum: 16*7ea75dd3SSergiu Moga - atmel,at91rm9200-i2c 17*7ea75dd3SSergiu Moga - atmel,at91sam9261-i2c 18*7ea75dd3SSergiu Moga - atmel,at91sam9260-i2c 19*7ea75dd3SSergiu Moga - atmel,at91sam9g20-i2c 20*7ea75dd3SSergiu Moga - atmel,at91sam9g10-i2c 21*7ea75dd3SSergiu Moga - atmel,at91sam9x5-i2c 22*7ea75dd3SSergiu Moga - atmel,sama5d4-i2c 23*7ea75dd3SSergiu Moga - atmel,sama5d2-i2c 24*7ea75dd3SSergiu Moga - microchip,sam9x60-i2c 25*7ea75dd3SSergiu Moga 26*7ea75dd3SSergiu Moga reg: 27*7ea75dd3SSergiu Moga maxItems: 1 28*7ea75dd3SSergiu Moga 29*7ea75dd3SSergiu Moga interrupts: 30*7ea75dd3SSergiu Moga maxItems: 1 31*7ea75dd3SSergiu Moga 32*7ea75dd3SSergiu Moga "#address-cells": 33*7ea75dd3SSergiu Moga const: 1 34*7ea75dd3SSergiu Moga 35*7ea75dd3SSergiu Moga "#size-cells": 36*7ea75dd3SSergiu Moga const: 0 37*7ea75dd3SSergiu Moga 38*7ea75dd3SSergiu Moga clocks: 39*7ea75dd3SSergiu Moga maxItems: 1 40*7ea75dd3SSergiu Moga 41*7ea75dd3SSergiu Moga clock-frequency: 42*7ea75dd3SSergiu Moga default: 100000 43*7ea75dd3SSergiu Moga 44*7ea75dd3SSergiu Moga dmas: 45*7ea75dd3SSergiu Moga items: 46*7ea75dd3SSergiu Moga - description: TX DMA Channel Specifier 47*7ea75dd3SSergiu Moga - description: RX DMA Channel Specifier 48*7ea75dd3SSergiu Moga 49*7ea75dd3SSergiu Moga dma-names: 50*7ea75dd3SSergiu Moga items: 51*7ea75dd3SSergiu Moga - const: tx 52*7ea75dd3SSergiu Moga - const: rx 53*7ea75dd3SSergiu Moga 54*7ea75dd3SSergiu Moga atmel,fifo-size: 55*7ea75dd3SSergiu Moga $ref: /schemas/types.yaml#/definitions/uint32 56*7ea75dd3SSergiu Moga description: | 57*7ea75dd3SSergiu Moga Maximum number of data the RX and TX FIFOs can store for 58*7ea75dd3SSergiu Moga FIFO capable I2C controllers. 59*7ea75dd3SSergiu Moga 60*7ea75dd3SSergiu Moga scl-gpios: true 61*7ea75dd3SSergiu Moga 62*7ea75dd3SSergiu Moga sda-gpios: true 63*7ea75dd3SSergiu Moga 64*7ea75dd3SSergiu Mogarequired: 65*7ea75dd3SSergiu Moga - compatible 66*7ea75dd3SSergiu Moga - reg 67*7ea75dd3SSergiu Moga - interrupts 68*7ea75dd3SSergiu Moga - "#address-cells" 69*7ea75dd3SSergiu Moga - "#size-cells" 70*7ea75dd3SSergiu Moga - clocks 71*7ea75dd3SSergiu Moga 72*7ea75dd3SSergiu MogaallOf: 73*7ea75dd3SSergiu Moga - $ref: "i2c-controller.yaml" 74*7ea75dd3SSergiu Moga - if: 75*7ea75dd3SSergiu Moga properties: 76*7ea75dd3SSergiu Moga compatible: 77*7ea75dd3SSergiu Moga contains: 78*7ea75dd3SSergiu Moga enum: 79*7ea75dd3SSergiu Moga - atmel,sama5d4-i2c 80*7ea75dd3SSergiu Moga - atmel,sama5d2-i2c 81*7ea75dd3SSergiu Moga - microchip,sam9x60-i2c 82*7ea75dd3SSergiu Moga then: 83*7ea75dd3SSergiu Moga properties: 84*7ea75dd3SSergiu Moga i2c-sda-hold-time-ns: 85*7ea75dd3SSergiu Moga description: 86*7ea75dd3SSergiu Moga TWD hold time 87*7ea75dd3SSergiu Moga maxItems: 1 88*7ea75dd3SSergiu Moga 89*7ea75dd3SSergiu MogaunevaluatedProperties: false 90*7ea75dd3SSergiu Moga 91*7ea75dd3SSergiu Mogaexamples: 92*7ea75dd3SSergiu Moga - | 93*7ea75dd3SSergiu Moga #include <dt-bindings/interrupt-controller/irq.h> 94*7ea75dd3SSergiu Moga #include <dt-bindings/dma/at91.h> 95*7ea75dd3SSergiu Moga #include <dt-bindings/gpio/gpio.h> 96*7ea75dd3SSergiu Moga 97*7ea75dd3SSergiu Moga i2c0: i2c@fff84000 { 98*7ea75dd3SSergiu Moga compatible = "atmel,at91sam9g20-i2c"; 99*7ea75dd3SSergiu Moga reg = <0xfff84000 0x100>; 100*7ea75dd3SSergiu Moga interrupts = <12 IRQ_TYPE_LEVEL_HIGH 6>; 101*7ea75dd3SSergiu Moga #address-cells = <1>; 102*7ea75dd3SSergiu Moga #size-cells = <0>; 103*7ea75dd3SSergiu Moga clocks = <&twi0_clk>; 104*7ea75dd3SSergiu Moga clock-frequency = <400000>; 105*7ea75dd3SSergiu Moga 106*7ea75dd3SSergiu Moga eeprom@50 { 107*7ea75dd3SSergiu Moga compatible = "atmel,24c512"; 108*7ea75dd3SSergiu Moga reg = <0x50>; 109*7ea75dd3SSergiu Moga pagesize = <128>; 110*7ea75dd3SSergiu Moga }; 111*7ea75dd3SSergiu Moga }; 112*7ea75dd3SSergiu Moga 113*7ea75dd3SSergiu Moga i2c1: i2c@f8034600 { 114*7ea75dd3SSergiu Moga compatible = "atmel,sama5d2-i2c"; 115*7ea75dd3SSergiu Moga reg = <0xf8034600 0x100>; 116*7ea75dd3SSergiu Moga interrupts = <19 IRQ_TYPE_LEVEL_HIGH 7>; 117*7ea75dd3SSergiu Moga dmas = <&dma0 118*7ea75dd3SSergiu Moga (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)) 119*7ea75dd3SSergiu Moga AT91_XDMAC_DT_PERID(11)>, 120*7ea75dd3SSergiu Moga <&dma0 121*7ea75dd3SSergiu Moga (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)) 122*7ea75dd3SSergiu Moga AT91_XDMAC_DT_PERID(12)>; 123*7ea75dd3SSergiu Moga dma-names = "tx", "rx"; 124*7ea75dd3SSergiu Moga #address-cells = <1>; 125*7ea75dd3SSergiu Moga #size-cells = <0>; 126*7ea75dd3SSergiu Moga clocks = <&flx0>; 127*7ea75dd3SSergiu Moga atmel,fifo-size = <16>; 128*7ea75dd3SSergiu Moga i2c-sda-hold-time-ns = <336>; 129*7ea75dd3SSergiu Moga pinctrl-names = "default", "gpio"; 130*7ea75dd3SSergiu Moga pinctrl-0 = <&pinctrl_i2c0>; 131*7ea75dd3SSergiu Moga pinctrl-1 = <&pinctrl_i2c0_gpio>; 132*7ea75dd3SSergiu Moga sda-gpios = <&pioA 30 GPIO_ACTIVE_HIGH>; 133*7ea75dd3SSergiu Moga scl-gpios = <&pioA 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 134*7ea75dd3SSergiu Moga 135*7ea75dd3SSergiu Moga eeprom@54 { 136*7ea75dd3SSergiu Moga compatible = "atmel,24c02"; 137*7ea75dd3SSergiu Moga reg = <0x54>; 138*7ea75dd3SSergiu Moga pagesize = <16>; 139*7ea75dd3SSergiu Moga }; 140*7ea75dd3SSergiu Moga }; 141