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