summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/i2c/i2c-qcom-cci.txt
blob: 166865e48849c46ba199fc9a451f363059acc71a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
Qualcomm Camera Control Interface (CCI) I2C controller

PROPERTIES:

- compatible:
	Usage: required
	Value type: <string>
	Definition: must be one of:
		"qcom,msm8916-cci"
		"qcom,msm8974-cci"
		"qcom,msm8996-cci"
		"qcom,sdm845-cci"
		"qcom,sm8250-cci"
		"qcom,sm8450-cci"

- reg
	Usage: required
	Value type: <prop-encoded-array>
	Definition: base address CCI I2C controller and length of memory
		    mapped region.

- interrupts:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: specifies the CCI I2C interrupt. The format of the
		    specifier is defined by the binding document describing
		    the node's interrupt parent.

- clocks:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: a list of phandle, should contain an entry for each
		    entries in clock-names.

- clock-names
	Usage: required
	Value type: <string>
	Definition: a list of clock names, must include "cci" clock.

- power-domains
	Usage: required for "qcom,msm8996-cci"
	Value type: <prop-encoded-array>
	Definition:

SUBNODES:

The CCI provides I2C masters for one (msm8916) or two i2c busses (msm8974,
msm8996, sdm845, sm8250 and sm8450), described as subdevices named "i2c-bus@0"
and "i2c-bus@1".

PROPERTIES:

- reg:
	Usage: required
	Value type: <u32>
	Definition: Index of the CCI bus/master

- clock-frequency:
	Usage: optional
	Value type: <u32>
	Definition: Desired I2C bus clock frequency in Hz, defaults to 100
		    kHz if omitted.

Example:

	cci@a0c000 {
		compatible = "qcom,msm8996-cci";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0xa0c000 0x1000>;
		interrupts = <GIC_SPI 295 IRQ_TYPE_EDGE_RISING>;
		clocks = <&mmcc MMSS_MMAGIC_AHB_CLK>,
			 <&mmcc CAMSS_TOP_AHB_CLK>,
			 <&mmcc CAMSS_CCI_AHB_CLK>,
			 <&mmcc CAMSS_CCI_CLK>,
			 <&mmcc CAMSS_AHB_CLK>;
		clock-names = "mmss_mmagic_ahb",
			      "camss_top_ahb",
			      "cci_ahb",
			      "cci",
			      "camss_ahb";

		i2c-bus@0 {
			reg = <0>;
			clock-frequency = <400000>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

		i2c-bus@1 {
			reg = <1>;
			clock-frequency = <400000>;
			#address-cells = <1>;
			#size-cells = <0>;
		};
	};