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