summaryrefslogtreecommitdiff
path: root/bindings/msm-cam-cdm.txt
blob: b376cad4a049560cc37cc75ffadd5cb72f8868db (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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
* Qualcomm Technologies, Inc. MSM Camera CDM

CDM (Camera Data Mover) is module intended to provide means for fast programming
camera registers and lookup tables.

=======================
Required Node Structure
=======================
CDM Interface node takes care of the handling has HW nodes and provide interface
for camera clients.

- compatible
  Usage: required
  Value type: <string>
  Definition: Should be "qcom,cam-cdm-intf".

- label
  Usage: required
  Value type: <string>
  Definition: Should be "cam-cdm-intf".

- num-hw-cdm
  Usage: required
  Value type: <u32>
  Definition: Number of supported HW blocks.

- cdm-client-names
  Usage: required
  Value type: <string>
  Definition: List of Clients supported by CDM interface.

Example:
	qcom,cam-cdm-intf {
		compatible = "qcom,cam-cdm-intf";
		label = "cam-cdm-intf";
		num-hw-cdm = <1>;
		cdm-client-names = "vfe",
			"jpeg-dma",
			"jpeg",
			"fd";
	};

=======================
Required Node Structure
=======================
CDM HW node provides interface for camera clients through
to CDM interface node.

- cell-index
  Usage: required
  Value type: <u32>
  Definition: Node instance number.

- compatible
  Usage: required
  Value type: <string>
  Definition: Should be "qcom,cam480-cpas-cdm0", "qcom,cam480-cpas-cdm1"
              "qcom,cam170-cpas-cdm0" or "qcom,cam480-cpas-cdm2".

- label
  Usage: required
  Value type: <string>
  Definition: Should be "cpas-cdm".

- reg-names
  Usage: required
  Value type: <string>
  Definition: Name of the register resources.

- reg
  Usage: required
  Value type: <u32>
  Definition: Register values.

- reg-cam-base
  Usage: required
  Value type: <u32>
  Definition: Offset of the register space compared to
	to Camera base register space.

- interrupt-names
  Usage: optional
  Value type: <string>
  Definition: Name of the interrupt.

- interrupts
  Usage: optional
  Value type: <u32>
  Definition: Interrupt associated with CDM HW.

- regulator-names
  Usage: required
  Value type: <string>
  Definition: Name of the regulator resources for CDM HW.

- camss-supply
  Usage: required
  Value type: <phandle>
  Definition: Regulator reference corresponding to the names listed
	in "regulator-names".

- clock-names
  Usage: required
  Value type: <string>
  Definition: List of clock names required for CDM HW.

- clocks
  Usage: required
  Value type: <phandle>
  Definition: List of clocks used for CDM HW.

- clock-rates
  Usage: required
  Value type: <u32>
  Definition: List of clocks rates.

- cdm-client-names
  Usage: required
  Value type: <string>
  Definition: List of Clients supported by CDM HW node.

- clock-cntl-level
  Usage: required
  Value type: <string>
  Definition: List of strings corresponds clock-rates levels.
  Supported strings: minsvs, lowsvs, svs, svs_l1, nominal, turbo.

Example:
	qcom,cpas-cdm0@ac48000 {
		cell-index = <0>;
		compatible = "qcom,cam480-cpas-cdm0";
		label = "cpas-cdm0";
		reg = <0xac48000 0x1000>;
		reg-names = "cpas-cdm";
		interrupts = <0 461 0>;
		interrupt-names = "cpas-cdm";
		regulator-names = "camss";
		camss-supply = <&titan_top_gdsc>;
		clock-names = "soc_ahb_clk",
			"titan_top_ahb_clk",
			"cam_axi_clk",
			"camcc_slow_ahb_clk_src",
			"cpas_top_ahb_clk",
			"camnoc_axi_clk";
		clocks = <&clock_camcc CAM_CC_SOC_AHB_CLK>,
			<&clock_gcc GCC_CAMERA_AHB_CLK>,
			<&clock_gcc GCC_CAMERA_AXI_CLK>,
			<&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
			<&clock_camcc CAM_CC_CPAS_AHB_CLK>,
			<&clock_camcc CAM_CC_CAMNOC_AXI_CLK>;
		qcom,clock-rates = <0 80000000 80000000 80000000 80000000 80000000>;
		cdm-client-names = "ife";
		clock-cntl-level = "turbo";
		status = "ok";
	};