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