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