xref: /linux/Documentation/devicetree/bindings/i2c/i2c-mt65xx.yaml (revision fe88f5f70b9f1df16eabab4a558cf5cf567a1940)
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