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