1*fe88f5f7SAngeloGioacchino Del Regno# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*fe88f5f7SAngeloGioacchino Del Regno%YAML 1.2 3*fe88f5f7SAngeloGioacchino Del Regno--- 4*fe88f5f7SAngeloGioacchino Del Regno$id: http://devicetree.org/schemas/i2c/i2c-mt65xx.yaml# 5*fe88f5f7SAngeloGioacchino Del Regno$schema: http://devicetree.org/meta-schemas/core.yaml# 6*fe88f5f7SAngeloGioacchino Del Regno 7*fe88f5f7SAngeloGioacchino Del Regnotitle: MediaTek I2C controller 8*fe88f5f7SAngeloGioacchino Del Regno 9*fe88f5f7SAngeloGioacchino Del Regnodescription: 10*fe88f5f7SAngeloGioacchino Del Regno This driver interfaces with the native I2C controller present in 11*fe88f5f7SAngeloGioacchino Del Regno various MediaTek SoCs. 12*fe88f5f7SAngeloGioacchino Del Regno 13*fe88f5f7SAngeloGioacchino Del RegnoallOf: 14*fe88f5f7SAngeloGioacchino Del Regno - $ref: /schemas/i2c/i2c-controller.yaml# 15*fe88f5f7SAngeloGioacchino Del Regno 16*fe88f5f7SAngeloGioacchino Del Regnomaintainers: 17*fe88f5f7SAngeloGioacchino Del Regno - Qii Wang <qii.wang@mediatek.com> 18*fe88f5f7SAngeloGioacchino Del Regno 19*fe88f5f7SAngeloGioacchino Del Regnoproperties: 20*fe88f5f7SAngeloGioacchino Del Regno compatible: 21*fe88f5f7SAngeloGioacchino Del Regno oneOf: 22*fe88f5f7SAngeloGioacchino Del Regno - const: mediatek,mt2712-i2c 23*fe88f5f7SAngeloGioacchino Del Regno - const: mediatek,mt6577-i2c 24*fe88f5f7SAngeloGioacchino Del Regno - const: mediatek,mt6589-i2c 25*fe88f5f7SAngeloGioacchino Del Regno - const: mediatek,mt7622-i2c 26*fe88f5f7SAngeloGioacchino Del Regno - const: mediatek,mt8168-i2c 27*fe88f5f7SAngeloGioacchino Del Regno - const: mediatek,mt8173-i2c 28*fe88f5f7SAngeloGioacchino Del Regno - const: mediatek,mt8183-i2c 29*fe88f5f7SAngeloGioacchino Del Regno - const: mediatek,mt8186-i2c 30*fe88f5f7SAngeloGioacchino Del Regno - const: mediatek,mt8192-i2c 31*fe88f5f7SAngeloGioacchino Del Regno - items: 32*fe88f5f7SAngeloGioacchino Del Regno - enum: 33*fe88f5f7SAngeloGioacchino Del Regno - mediatek,mt7629-i2c 34*fe88f5f7SAngeloGioacchino Del Regno - mediatek,mt8516-i2c 35*fe88f5f7SAngeloGioacchino Del Regno - const: mediatek,mt2712-i2c 36*fe88f5f7SAngeloGioacchino Del Regno - items: 37*fe88f5f7SAngeloGioacchino Del Regno - enum: 38*fe88f5f7SAngeloGioacchino Del Regno - mediatek,mt2701-i2c 39*fe88f5f7SAngeloGioacchino Del Regno - mediatek,mt6797-i2c 40*fe88f5f7SAngeloGioacchino Del Regno - mediatek,mt7623-i2c 41*fe88f5f7SAngeloGioacchino Del Regno - const: mediatek,mt6577-i2c 42*fe88f5f7SAngeloGioacchino Del Regno - items: 43*fe88f5f7SAngeloGioacchino Del Regno - enum: 44*fe88f5f7SAngeloGioacchino Del Regno - mediatek,mt8195-i2c 45*fe88f5f7SAngeloGioacchino Del Regno - const: mediatek,mt8192-i2c 46*fe88f5f7SAngeloGioacchino Del Regno 47*fe88f5f7SAngeloGioacchino Del Regno reg: 48*fe88f5f7SAngeloGioacchino Del Regno items: 49*fe88f5f7SAngeloGioacchino Del Regno - description: Physical base address 50*fe88f5f7SAngeloGioacchino Del Regno - description: DMA base address 51*fe88f5f7SAngeloGioacchino Del Regno 52*fe88f5f7SAngeloGioacchino Del Regno interrupts: 53*fe88f5f7SAngeloGioacchino Del Regno maxItems: 1 54*fe88f5f7SAngeloGioacchino Del Regno 55*fe88f5f7SAngeloGioacchino Del Regno clocks: 56*fe88f5f7SAngeloGioacchino Del Regno minItems: 2 57*fe88f5f7SAngeloGioacchino Del Regno items: 58*fe88f5f7SAngeloGioacchino Del Regno - description: Main clock for I2C bus 59*fe88f5f7SAngeloGioacchino Del Regno - description: Clock for I2C via DMA 60*fe88f5f7SAngeloGioacchino Del Regno - description: Bus arbitrator clock 61*fe88f5f7SAngeloGioacchino Del Regno - description: Clock for I2C from PMIC 62*fe88f5f7SAngeloGioacchino Del Regno 63*fe88f5f7SAngeloGioacchino Del Regno clock-names: 64*fe88f5f7SAngeloGioacchino Del Regno minItems: 2 65*fe88f5f7SAngeloGioacchino Del Regno items: 66*fe88f5f7SAngeloGioacchino Del Regno - const: main 67*fe88f5f7SAngeloGioacchino Del Regno - const: dma 68*fe88f5f7SAngeloGioacchino Del Regno - const: arb 69*fe88f5f7SAngeloGioacchino Del Regno - const: pmic 70*fe88f5f7SAngeloGioacchino Del Regno 71*fe88f5f7SAngeloGioacchino Del Regno clock-div: 72*fe88f5f7SAngeloGioacchino Del Regno $ref: /schemas/types.yaml#/definitions/uint32 73*fe88f5f7SAngeloGioacchino Del Regno description: Frequency divider of clock source in I2C module 74*fe88f5f7SAngeloGioacchino Del Regno 75*fe88f5f7SAngeloGioacchino Del Regno clock-frequency: 76*fe88f5f7SAngeloGioacchino Del Regno default: 100000 77*fe88f5f7SAngeloGioacchino Del Regno description: 78*fe88f5f7SAngeloGioacchino Del Regno SCL frequency to use (in Hz). If omitted, 100kHz is used. 79*fe88f5f7SAngeloGioacchino Del Regno 80*fe88f5f7SAngeloGioacchino Del Regno mediatek,have-pmic: 81*fe88f5f7SAngeloGioacchino Del Regno description: Platform controls I2C from PMIC side 82*fe88f5f7SAngeloGioacchino Del Regno type: boolean 83*fe88f5f7SAngeloGioacchino Del Regno 84*fe88f5f7SAngeloGioacchino Del Regno mediatek,use-push-pull: 85*fe88f5f7SAngeloGioacchino Del Regno description: Use push-pull mode I/O config 86*fe88f5f7SAngeloGioacchino Del Regno type: boolean 87*fe88f5f7SAngeloGioacchino Del Regno 88*fe88f5f7SAngeloGioacchino Del Regno vbus-supply: 89*fe88f5f7SAngeloGioacchino Del Regno description: Phandle to the regulator providing power to SCL/SDA 90*fe88f5f7SAngeloGioacchino Del Regno 91*fe88f5f7SAngeloGioacchino Del Regnorequired: 92*fe88f5f7SAngeloGioacchino Del Regno - compatible 93*fe88f5f7SAngeloGioacchino Del Regno - reg 94*fe88f5f7SAngeloGioacchino Del Regno - clocks 95*fe88f5f7SAngeloGioacchino Del Regno - clock-names 96*fe88f5f7SAngeloGioacchino Del Regno - clock-div 97*fe88f5f7SAngeloGioacchino Del Regno - interrupts 98*fe88f5f7SAngeloGioacchino Del Regno 99*fe88f5f7SAngeloGioacchino Del RegnounevaluatedProperties: false 100*fe88f5f7SAngeloGioacchino Del Regno 101*fe88f5f7SAngeloGioacchino Del Regnoexamples: 102*fe88f5f7SAngeloGioacchino Del Regno - | 103*fe88f5f7SAngeloGioacchino Del Regno #include <dt-bindings/interrupt-controller/arm-gic.h> 104*fe88f5f7SAngeloGioacchino Del Regno #include <dt-bindings/interrupt-controller/irq.h> 105*fe88f5f7SAngeloGioacchino Del Regno 106*fe88f5f7SAngeloGioacchino Del Regno i2c0: i2c@1100d000 { 107*fe88f5f7SAngeloGioacchino Del Regno compatible = "mediatek,mt6577-i2c"; 108*fe88f5f7SAngeloGioacchino Del Regno reg = <0x1100d000 0x70>, <0x11000300 0x80>; 109*fe88f5f7SAngeloGioacchino Del Regno interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>; 110*fe88f5f7SAngeloGioacchino Del Regno clocks = <&i2c0_ck>, <&ap_dma_ck>; 111*fe88f5f7SAngeloGioacchino Del Regno clock-names = "main", "dma"; 112*fe88f5f7SAngeloGioacchino Del Regno clock-div = <16>; 113*fe88f5f7SAngeloGioacchino Del Regno clock-frequency = <400000>; 114*fe88f5f7SAngeloGioacchino Del Regno mediatek,have-pmic; 115*fe88f5f7SAngeloGioacchino Del Regno 116*fe88f5f7SAngeloGioacchino Del Regno #address-cells = <1>; 117*fe88f5f7SAngeloGioacchino Del Regno #size-cells = <0>; 118*fe88f5f7SAngeloGioacchino Del Regno }; 119