GNU Linux-libre 5.10.217-gnu1
[releases.git] / Documentation / devicetree / bindings / i2c / i2c-qcom-cci.txt
1 Qualcomm Camera Control Interface (CCI) I2C controller
2
3 PROPERTIES:
4
5 - compatible:
6         Usage: required
7         Value type: <string>
8         Definition: must be one of:
9                 "qcom,msm8916-cci"
10                 "qcom,msm8996-cci"
11                 "qcom,sdm845-cci"
12
13 - reg
14         Usage: required
15         Value type: <prop-encoded-array>
16         Definition: base address CCI I2C controller and length of memory
17                     mapped region.
18
19 - interrupts:
20         Usage: required
21         Value type: <prop-encoded-array>
22         Definition: specifies the CCI I2C interrupt. The format of the
23                     specifier is defined by the binding document describing
24                     the node's interrupt parent.
25
26 - clocks:
27         Usage: required
28         Value type: <prop-encoded-array>
29         Definition: a list of phandle, should contain an entry for each
30                     entries in clock-names.
31
32 - clock-names
33         Usage: required
34         Value type: <string>
35         Definition: a list of clock names, must include "cci" clock.
36
37 - power-domains
38         Usage: required for "qcom,msm8996-cci"
39         Value type: <prop-encoded-array>
40         Definition:
41
42 SUBNODES:
43
44 The CCI provides I2C masters for one (msm8916) or two i2c busses (msm8996 and
45 sdm845), described as subdevices named "i2c-bus@0" and "i2c-bus@1".
46
47 PROPERTIES:
48
49 - reg:
50         Usage: required
51         Value type: <u32>
52         Definition: Index of the CCI bus/master
53
54 - clock-frequency:
55         Usage: optional
56         Value type: <u32>
57         Definition: Desired I2C bus clock frequency in Hz, defaults to 100
58                     kHz if omitted.
59
60 Example:
61
62         cci@a0c000 {
63                 compatible = "qcom,msm8996-cci";
64                 #address-cells = <1>;
65                 #size-cells = <0>;
66                 reg = <0xa0c000 0x1000>;
67                 interrupts = <GIC_SPI 295 IRQ_TYPE_EDGE_RISING>;
68                 clocks = <&mmcc MMSS_MMAGIC_AHB_CLK>,
69                          <&mmcc CAMSS_TOP_AHB_CLK>,
70                          <&mmcc CAMSS_CCI_AHB_CLK>,
71                          <&mmcc CAMSS_CCI_CLK>,
72                          <&mmcc CAMSS_AHB_CLK>;
73                 clock-names = "mmss_mmagic_ahb",
74                               "camss_top_ahb",
75                               "cci_ahb",
76                               "cci",
77                               "camss_ahb";
78
79                 i2c-bus@0 {
80                         reg = <0>;
81                         clock-frequency = <400000>;
82                         #address-cells = <1>;
83                         #size-cells = <0>;
84                 };
85
86                 i2c-bus@1 {
87                         reg = <1>;
88                         clock-frequency = <400000>;
89                         #address-cells = <1>;
90                         #size-cells = <0>;
91                 };
92         };