1*c562570eSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2*c562570eSKrzysztof Kozlowski%YAML 1.2
3*c562570eSKrzysztof Kozlowski---
4*c562570eSKrzysztof Kozlowski$id: http://devicetree.org/schemas/i2c/qcom,i2c-qup.yaml#
5*c562570eSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*c562570eSKrzysztof Kozlowski
7*c562570eSKrzysztof Kozlowskititle: Qualcomm Universal Peripheral (QUP) I2C controller
8*c562570eSKrzysztof Kozlowski
9*c562570eSKrzysztof Kozlowskimaintainers:
10*c562570eSKrzysztof Kozlowski  - Andy Gross <agross@kernel.org>
11*c562570eSKrzysztof Kozlowski  - Bjorn Andersson <bjorn.andersson@linaro.org>
12*c562570eSKrzysztof Kozlowski  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
13*c562570eSKrzysztof Kozlowski
14*c562570eSKrzysztof KozlowskiallOf:
15*c562570eSKrzysztof Kozlowski  - $ref: /schemas/i2c/i2c-controller.yaml#
16*c562570eSKrzysztof Kozlowski
17*c562570eSKrzysztof Kozlowskiproperties:
18*c562570eSKrzysztof Kozlowski  compatible:
19*c562570eSKrzysztof Kozlowski    enum:
20*c562570eSKrzysztof Kozlowski      - qcom,i2c-qup-v1.1.1     # for 8660, 8960 and 8064
21*c562570eSKrzysztof Kozlowski      - qcom,i2c-qup-v2.1.1     # for 8974 v1
22*c562570eSKrzysztof Kozlowski      - qcom,i2c-qup-v2.2.1     # for 8974 v2 and later
23*c562570eSKrzysztof Kozlowski
24*c562570eSKrzysztof Kozlowski  clocks:
25*c562570eSKrzysztof Kozlowski    maxItems: 2
26*c562570eSKrzysztof Kozlowski
27*c562570eSKrzysztof Kozlowski  clock-names:
28*c562570eSKrzysztof Kozlowski    items:
29*c562570eSKrzysztof Kozlowski      - const: core
30*c562570eSKrzysztof Kozlowski      - const: iface
31*c562570eSKrzysztof Kozlowski
32*c562570eSKrzysztof Kozlowski  clock-frequency:
33*c562570eSKrzysztof Kozlowski    default: 100000
34*c562570eSKrzysztof Kozlowski
35*c562570eSKrzysztof Kozlowski  dmas:
36*c562570eSKrzysztof Kozlowski    maxItems: 2
37*c562570eSKrzysztof Kozlowski
38*c562570eSKrzysztof Kozlowski  dma-names:
39*c562570eSKrzysztof Kozlowski    items:
40*c562570eSKrzysztof Kozlowski      - const: tx
41*c562570eSKrzysztof Kozlowski      - const: rx
42*c562570eSKrzysztof Kozlowski
43*c562570eSKrzysztof Kozlowski  interrupts:
44*c562570eSKrzysztof Kozlowski    maxItems: 1
45*c562570eSKrzysztof Kozlowski
46*c562570eSKrzysztof Kozlowski  pinctrl-0: true
47*c562570eSKrzysztof Kozlowski  pinctrl-1: true
48*c562570eSKrzysztof Kozlowski
49*c562570eSKrzysztof Kozlowski  pinctrl-names:
50*c562570eSKrzysztof Kozlowski    minItems: 1
51*c562570eSKrzysztof Kozlowski    items:
52*c562570eSKrzysztof Kozlowski      - const: default
53*c562570eSKrzysztof Kozlowski      - const: sleep
54*c562570eSKrzysztof Kozlowski
55*c562570eSKrzysztof Kozlowski  reg:
56*c562570eSKrzysztof Kozlowski    maxItems: 1
57*c562570eSKrzysztof Kozlowski
58*c562570eSKrzysztof Kozlowskirequired:
59*c562570eSKrzysztof Kozlowski  - compatible
60*c562570eSKrzysztof Kozlowski  - clock-names
61*c562570eSKrzysztof Kozlowski  - clocks
62*c562570eSKrzysztof Kozlowski  - interrupts
63*c562570eSKrzysztof Kozlowski  - reg
64*c562570eSKrzysztof Kozlowski
65*c562570eSKrzysztof KozlowskiunevaluatedProperties: false
66*c562570eSKrzysztof Kozlowski
67*c562570eSKrzysztof Kozlowskiexamples:
68*c562570eSKrzysztof Kozlowski  - |
69*c562570eSKrzysztof Kozlowski    #include <dt-bindings/clock/qcom,gcc-msm8998.h>
70*c562570eSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
71*c562570eSKrzysztof Kozlowski
72*c562570eSKrzysztof Kozlowski    i2c@c175000 {
73*c562570eSKrzysztof Kozlowski        compatible = "qcom,i2c-qup-v2.2.1";
74*c562570eSKrzysztof Kozlowski        reg = <0x0c175000 0x600>;
75*c562570eSKrzysztof Kozlowski        interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
76*c562570eSKrzysztof Kozlowski
77*c562570eSKrzysztof Kozlowski        clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
78*c562570eSKrzysztof Kozlowski                 <&gcc GCC_BLSP1_AHB_CLK>;
79*c562570eSKrzysztof Kozlowski        clock-names = "core", "iface";
80*c562570eSKrzysztof Kozlowski        dmas = <&blsp1_dma 6>, <&blsp1_dma 7>;
81*c562570eSKrzysztof Kozlowski        dma-names = "tx", "rx";
82*c562570eSKrzysztof Kozlowski        pinctrl-names = "default", "sleep";
83*c562570eSKrzysztof Kozlowski        pinctrl-0 = <&blsp1_i2c1_default>;
84*c562570eSKrzysztof Kozlowski        pinctrl-1 = <&blsp1_i2c1_sleep>;
85*c562570eSKrzysztof Kozlowski        clock-frequency = <400000>;
86*c562570eSKrzysztof Kozlowski
87*c562570eSKrzysztof Kozlowski        #address-cells = <1>;
88*c562570eSKrzysztof Kozlowski        #size-cells = <0>;
89*c562570eSKrzysztof Kozlowski    };
90