xref: /linux/Documentation/devicetree/bindings/i2c/qcom,i2c-geni-qcom.yaml (revision fe7ce2983ba56ff482b5f275e72fb9af447fa2c8)
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:
15cb29d4e6SNeil Armstrong    enum:
16cb29d4e6SNeil Armstrong      - qcom,geni-i2c
17cb29d4e6SNeil Armstrong      - qcom,geni-i2c-master-hub
18ae8f4223SKuldeep Singh
19ae8f4223SKuldeep Singh  clocks:
20cb29d4e6SNeil Armstrong    minItems: 1
21cb29d4e6SNeil Armstrong    maxItems: 2
22ae8f4223SKuldeep Singh
23ae8f4223SKuldeep Singh  clock-names:
24cb29d4e6SNeil Armstrong    minItems: 1
25cb29d4e6SNeil 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:
39cb29d4e6SNeil Armstrong    minItems: 2
40ae8f4223SKuldeep Singh    maxItems: 3
41ae8f4223SKuldeep Singh
42ae8f4223SKuldeep Singh  interconnect-names:
43cb29d4e6SNeil Armstrong    minItems: 2
44cb29d4e6SNeil Armstrong    maxItems: 3
45ae8f4223SKuldeep Singh
46ae8f4223SKuldeep Singh  interrupts:
47ae8f4223SKuldeep Singh    maxItems: 1
48ae8f4223SKuldeep Singh
49*fe7ce298SKrzysztof Kozlowski  operating-points-v2: true
50*fe7ce298SKrzysztof Kozlowski
51ae8f4223SKuldeep Singh  pinctrl-0: true
52ae8f4223SKuldeep Singh  pinctrl-1: true
53ae8f4223SKuldeep Singh
54ae8f4223SKuldeep Singh  pinctrl-names:
55ae8f4223SKuldeep Singh    minItems: 1
56ae8f4223SKuldeep Singh    items:
57ae8f4223SKuldeep Singh      - const: default
58ae8f4223SKuldeep Singh      - const: sleep
59ae8f4223SKuldeep Singh
60ae8f4223SKuldeep Singh  power-domains:
61ae8f4223SKuldeep Singh    maxItems: 1
62ae8f4223SKuldeep Singh
63ae8f4223SKuldeep Singh  reg:
64ae8f4223SKuldeep Singh    maxItems: 1
65ae8f4223SKuldeep Singh
66ae8f4223SKuldeep Singh  required-opps:
67ae8f4223SKuldeep Singh    maxItems: 1
68ae8f4223SKuldeep Singh
69ae8f4223SKuldeep Singhrequired:
70ae8f4223SKuldeep Singh  - compatible
71ae8f4223SKuldeep Singh  - interrupts
72ae8f4223SKuldeep Singh  - clocks
73ae8f4223SKuldeep Singh  - clock-names
74ae8f4223SKuldeep Singh  - reg
75ae8f4223SKuldeep Singh
76cb29d4e6SNeil ArmstrongallOf:
77cb29d4e6SNeil Armstrong  - $ref: /schemas/i2c/i2c-controller.yaml#
78cb29d4e6SNeil Armstrong  - if:
79cb29d4e6SNeil Armstrong      properties:
80cb29d4e6SNeil Armstrong        compatible:
81cb29d4e6SNeil Armstrong          contains:
82cb29d4e6SNeil Armstrong            const: qcom,geni-i2c-master-hub
83cb29d4e6SNeil Armstrong    then:
84cb29d4e6SNeil Armstrong      properties:
85cb29d4e6SNeil Armstrong        clocks:
86cb29d4e6SNeil Armstrong          minItems: 2
87cb29d4e6SNeil Armstrong
88cb29d4e6SNeil Armstrong        clock-names:
89cb29d4e6SNeil Armstrong          items:
90cb29d4e6SNeil Armstrong            - const: se
91cb29d4e6SNeil Armstrong            - const: core
92cb29d4e6SNeil Armstrong
93cb29d4e6SNeil Armstrong        dmas: false
94cb29d4e6SNeil Armstrong        dma-names: false
95cb29d4e6SNeil Armstrong
96cb29d4e6SNeil Armstrong        interconnects:
97cb29d4e6SNeil Armstrong          maxItems: 2
98cb29d4e6SNeil Armstrong
99cb29d4e6SNeil Armstrong        interconnect-names:
100cb29d4e6SNeil Armstrong          items:
101cb29d4e6SNeil Armstrong            - const: qup-core
102cb29d4e6SNeil Armstrong            - const: qup-config
103cb29d4e6SNeil Armstrong    else:
104cb29d4e6SNeil Armstrong      properties:
105cb29d4e6SNeil Armstrong        clocks:
106cb29d4e6SNeil Armstrong          maxItems: 1
107cb29d4e6SNeil Armstrong
108cb29d4e6SNeil Armstrong        clock-names:
109cb29d4e6SNeil Armstrong          const: se
110cb29d4e6SNeil Armstrong
111cb29d4e6SNeil Armstrong        interconnects:
112cb29d4e6SNeil Armstrong          minItems: 3
113cb29d4e6SNeil Armstrong
114cb29d4e6SNeil Armstrong        interconnect-names:
115cb29d4e6SNeil Armstrong          items:
116cb29d4e6SNeil Armstrong            - const: qup-core
117cb29d4e6SNeil Armstrong            - const: qup-config
118cb29d4e6SNeil Armstrong            - const: qup-memory
119cb29d4e6SNeil Armstrong
120ae8f4223SKuldeep SinghunevaluatedProperties: false
121ae8f4223SKuldeep Singh
122ae8f4223SKuldeep Singhexamples:
123ae8f4223SKuldeep Singh  - |
124ae8f4223SKuldeep Singh    #include <dt-bindings/interrupt-controller/arm-gic.h>
125ae8f4223SKuldeep Singh    #include <dt-bindings/clock/qcom,gcc-sc7180.h>
126ae8f4223SKuldeep Singh    #include <dt-bindings/interconnect/qcom,sc7180.h>
127ae8f4223SKuldeep Singh    #include <dt-bindings/power/qcom-rpmpd.h>
128ae8f4223SKuldeep Singh
129ae8f4223SKuldeep Singh    i2c@88000 {
130ae8f4223SKuldeep Singh        compatible = "qcom,geni-i2c";
131ae8f4223SKuldeep Singh        reg = <0x00880000 0x4000>;
132ae8f4223SKuldeep Singh        clock-names = "se";
133ae8f4223SKuldeep Singh        clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
134ae8f4223SKuldeep Singh        pinctrl-names = "default";
135ae8f4223SKuldeep Singh        pinctrl-0 = <&qup_i2c0_default>;
136ae8f4223SKuldeep Singh        interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
137ae8f4223SKuldeep Singh        #address-cells = <1>;
138ae8f4223SKuldeep Singh        #size-cells = <0>;
139ae8f4223SKuldeep Singh        interconnects = <&qup_virt MASTER_QUP_CORE_0 0 &qup_virt SLAVE_QUP_CORE_0 0>,
140ae8f4223SKuldeep Singh                        <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_QUP_0 0>,
141ae8f4223SKuldeep Singh                        <&aggre1_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
142ae8f4223SKuldeep Singh        interconnect-names = "qup-core", "qup-config", "qup-memory";
143ae8f4223SKuldeep Singh        power-domains = <&rpmhpd SC7180_CX>;
144ae8f4223SKuldeep Singh        required-opps = <&rpmhpd_opp_low_svs>;
145ae8f4223SKuldeep Singh    };
146ae8f4223SKuldeep Singh...
147