xref: /linux/Documentation/devicetree/bindings/i2c/qcom,i2c-geni-qcom.yaml (revision cb29d4e6a9ef004eed24774bc26839aa9e373ba4)
1ae8f4223SKuldeep Singh# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2ae8f4223SKuldeep Singh%YAML 1.2
3ae8f4223SKuldeep Singh---
4ae8f4223SKuldeep Singh$id: "http://devicetree.org/schemas/i2c/qcom,i2c-geni-qcom.yaml#"
5ae8f4223SKuldeep Singh$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6ae8f4223SKuldeep Singh
7ae8f4223SKuldeep Singhtitle: Qualcomm Geni based QUP I2C Controller
8ae8f4223SKuldeep Singh
9ae8f4223SKuldeep Singhmaintainers:
10ae8f4223SKuldeep Singh  - Andy Gross <agross@kernel.org>
11ae8f4223SKuldeep Singh  - Bjorn Andersson <bjorn.andersson@linaro.org>
12ae8f4223SKuldeep Singh
13ae8f4223SKuldeep Singhproperties:
14ae8f4223SKuldeep Singh  compatible:
15*cb29d4e6SNeil Armstrong    enum:
16*cb29d4e6SNeil Armstrong      - qcom,geni-i2c
17*cb29d4e6SNeil Armstrong      - qcom,geni-i2c-master-hub
18ae8f4223SKuldeep Singh
19ae8f4223SKuldeep Singh  clocks:
20*cb29d4e6SNeil Armstrong    minItems: 1
21*cb29d4e6SNeil Armstrong    maxItems: 2
22ae8f4223SKuldeep Singh
23ae8f4223SKuldeep Singh  clock-names:
24*cb29d4e6SNeil Armstrong    minItems: 1
25*cb29d4e6SNeil Armstrong    maxItems: 2
26ae8f4223SKuldeep Singh
27ae8f4223SKuldeep Singh  clock-frequency:
28ae8f4223SKuldeep Singh    default: 100000
29ae8f4223SKuldeep Singh
30ae8f4223SKuldeep Singh  dmas:
31ae8f4223SKuldeep Singh    maxItems: 2
32ae8f4223SKuldeep Singh
33ae8f4223SKuldeep Singh  dma-names:
34ae8f4223SKuldeep Singh    items:
35ae8f4223SKuldeep Singh      - const: tx
36ae8f4223SKuldeep Singh      - const: rx
37ae8f4223SKuldeep Singh
38ae8f4223SKuldeep Singh  interconnects:
39*cb29d4e6SNeil Armstrong    minItems: 2
40ae8f4223SKuldeep Singh    maxItems: 3
41ae8f4223SKuldeep Singh
42ae8f4223SKuldeep Singh  interconnect-names:
43*cb29d4e6SNeil Armstrong    minItems: 2
44*cb29d4e6SNeil Armstrong    maxItems: 3
45ae8f4223SKuldeep Singh
46ae8f4223SKuldeep Singh  interrupts:
47ae8f4223SKuldeep Singh    maxItems: 1
48ae8f4223SKuldeep Singh
49ae8f4223SKuldeep Singh  pinctrl-0: true
50ae8f4223SKuldeep Singh  pinctrl-1: true
51ae8f4223SKuldeep Singh
52ae8f4223SKuldeep Singh  pinctrl-names:
53ae8f4223SKuldeep Singh    minItems: 1
54ae8f4223SKuldeep Singh    items:
55ae8f4223SKuldeep Singh      - const: default
56ae8f4223SKuldeep Singh      - const: sleep
57ae8f4223SKuldeep Singh
58ae8f4223SKuldeep Singh  power-domains:
59ae8f4223SKuldeep Singh    maxItems: 1
60ae8f4223SKuldeep Singh
61ae8f4223SKuldeep Singh  reg:
62ae8f4223SKuldeep Singh    maxItems: 1
63ae8f4223SKuldeep Singh
64ae8f4223SKuldeep Singh  required-opps:
65ae8f4223SKuldeep Singh    maxItems: 1
66ae8f4223SKuldeep Singh
67ae8f4223SKuldeep Singhrequired:
68ae8f4223SKuldeep Singh  - compatible
69ae8f4223SKuldeep Singh  - interrupts
70ae8f4223SKuldeep Singh  - clocks
71ae8f4223SKuldeep Singh  - clock-names
72ae8f4223SKuldeep Singh  - reg
73ae8f4223SKuldeep Singh
74*cb29d4e6SNeil ArmstrongallOf:
75*cb29d4e6SNeil Armstrong  - $ref: /schemas/i2c/i2c-controller.yaml#
76*cb29d4e6SNeil Armstrong  - if:
77*cb29d4e6SNeil Armstrong      properties:
78*cb29d4e6SNeil Armstrong        compatible:
79*cb29d4e6SNeil Armstrong          contains:
80*cb29d4e6SNeil Armstrong            const: qcom,geni-i2c-master-hub
81*cb29d4e6SNeil Armstrong    then:
82*cb29d4e6SNeil Armstrong      properties:
83*cb29d4e6SNeil Armstrong        clocks:
84*cb29d4e6SNeil Armstrong          minItems: 2
85*cb29d4e6SNeil Armstrong
86*cb29d4e6SNeil Armstrong        clock-names:
87*cb29d4e6SNeil Armstrong          items:
88*cb29d4e6SNeil Armstrong            - const: se
89*cb29d4e6SNeil Armstrong            - const: core
90*cb29d4e6SNeil Armstrong
91*cb29d4e6SNeil Armstrong        dmas: false
92*cb29d4e6SNeil Armstrong        dma-names: false
93*cb29d4e6SNeil Armstrong
94*cb29d4e6SNeil Armstrong        interconnects:
95*cb29d4e6SNeil Armstrong          maxItems: 2
96*cb29d4e6SNeil Armstrong
97*cb29d4e6SNeil Armstrong        interconnect-names:
98*cb29d4e6SNeil Armstrong          items:
99*cb29d4e6SNeil Armstrong            - const: qup-core
100*cb29d4e6SNeil Armstrong            - const: qup-config
101*cb29d4e6SNeil Armstrong    else:
102*cb29d4e6SNeil Armstrong      properties:
103*cb29d4e6SNeil Armstrong        clocks:
104*cb29d4e6SNeil Armstrong          maxItems: 1
105*cb29d4e6SNeil Armstrong
106*cb29d4e6SNeil Armstrong        clock-names:
107*cb29d4e6SNeil Armstrong          const: se
108*cb29d4e6SNeil Armstrong
109*cb29d4e6SNeil Armstrong        interconnects:
110*cb29d4e6SNeil Armstrong          minItems: 3
111*cb29d4e6SNeil Armstrong
112*cb29d4e6SNeil Armstrong        interconnect-names:
113*cb29d4e6SNeil Armstrong          items:
114*cb29d4e6SNeil Armstrong            - const: qup-core
115*cb29d4e6SNeil Armstrong            - const: qup-config
116*cb29d4e6SNeil Armstrong            - const: qup-memory
117*cb29d4e6SNeil Armstrong
118ae8f4223SKuldeep SinghunevaluatedProperties: false
119ae8f4223SKuldeep Singh
120ae8f4223SKuldeep Singhexamples:
121ae8f4223SKuldeep Singh  - |
122ae8f4223SKuldeep Singh    #include <dt-bindings/interrupt-controller/arm-gic.h>
123ae8f4223SKuldeep Singh    #include <dt-bindings/clock/qcom,gcc-sc7180.h>
124ae8f4223SKuldeep Singh    #include <dt-bindings/interconnect/qcom,sc7180.h>
125ae8f4223SKuldeep Singh    #include <dt-bindings/power/qcom-rpmpd.h>
126ae8f4223SKuldeep Singh
127ae8f4223SKuldeep Singh    i2c@88000 {
128ae8f4223SKuldeep Singh        compatible = "qcom,geni-i2c";
129ae8f4223SKuldeep Singh        reg = <0x00880000 0x4000>;
130ae8f4223SKuldeep Singh        clock-names = "se";
131ae8f4223SKuldeep Singh        clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
132ae8f4223SKuldeep Singh        pinctrl-names = "default";
133ae8f4223SKuldeep Singh        pinctrl-0 = <&qup_i2c0_default>;
134ae8f4223SKuldeep Singh        interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
135ae8f4223SKuldeep Singh        #address-cells = <1>;
136ae8f4223SKuldeep Singh        #size-cells = <0>;
137ae8f4223SKuldeep Singh        interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
138ae8f4223SKuldeep Singh                        <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_QUP_0 0>,
139ae8f4223SKuldeep Singh                        <&aggre1_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
140ae8f4223SKuldeep Singh        interconnect-names = "qup-core", "qup-config", "qup-memory";
141ae8f4223SKuldeep Singh        power-domains = <&rpmhpd SC7180_CX>;
142ae8f4223SKuldeep Singh        required-opps = <&rpmhpd_opp_low_svs>;
143ae8f4223SKuldeep Singh    };
144ae8f4223SKuldeep Singh...
145