summaryrefslogtreecommitdiff
path: root/bindings/msm-cam-vfe.txt
blob: 2866d67cf5e2b6b650c292d9500f229143530b23 (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
* Qualcomm Technologies, Inc. MSM Camera VFE

Camera VFE device provides the definitions for enabling
the VFE hardware. It also provides the functions for the client
to control the VFE hardware.

=======================
Required Node Structure
=======================
The VFE device is described in one level of the device node.

======================================
First Level Node - CAM VFE device
======================================
Required properties:
- compatible
  Usage: required
  Value type: <string>
  Definition: Should specify the compatibility string for matching the
	driver. e.g. "qcom,vfe480", "qcom,vfe175", "qcom,vfe170", "qcom,vfe175_130",
	"qcom,vfe-lite480", "qcom,vfe-lite175", "qcom,vfe-lite175_130", "qcom,vfe-lite170".

- cell-index
  Usage: required
  Value type: <u32>
  Definition: Should specify the hardware index id.

- reg-names
  Usage: required
  Value type: <string>
  Definition: Should specify the name of the register block.

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

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

- interrupts
  Usage: Required
  Value type: <u32>
  Definition: Interrupt associated with VFE HW.

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

- xxxx-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 VFE HW.

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

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

- src-clock-name
  Usage: required
  Value type: <string>
  Definition: Source clock name.

Optional properties:
- clock-names-option
  Usage: optional
  Value type: <string>
  Definition: Optional clock names.

- clocks-option
  Usage: required if clock-names-option defined
  Value type: <phandle>
  Definition: List of optinal clocks used for VFE HW.

- clock-rates-option
  Usage: required if clock-names-option defined
  Value type: <u32>
  Definition: List of clocks rates for optional clocks.

- clock-control-debugfs
  Usage: optional
  Value type: <string>
  Definition: Enable/Disable clk rate control.

- qcom,cam-cx-ipeak:
  Usage: optional
  Value type: <phandle bit>
	phandle - phandle of CX Ipeak device node
	bit     - Every bit corresponds to a client of CX Ipeak
  Definition: CX Ipeak is a mitigation scheme which throttles camera frequency
	if all the clients are running at their respective threshold
	frequencies to limit CX peak current.
	driver in the relevant register.

- scl-clk-names:
  Usage: optional
  Value type: <string>
  Definition: Scalable clock names to identify which clocks needs to update
	along with source clock.

Example:
	qcom,vfe0@acaf000 {
		cell-index = <0>;
		compatible = "qcom,vfe480";
		reg-names = "ife";
		reg = <0xacaf000 0x4000>;
		interrupts = <0 465 0>;
		interrupt-names = "ife";
		vdd-names = "camss-vdd", "ife0-vdd";
		camss-vdd-supply = <&titan_top_gdsc>;
		ife0-vdd-supply = <&ife_0_gdsc>;
		clock-names = "soc_ahb_clk",
			"cpas_ahb_clk",
			"slow_ahb_clk_src",
			"ife_clk",
			"ife_clk_src",
			"ife_csid_clk",
			"ife_csid_clk_src",
			"camnoc_axi_clk",
			"ife_axi_clk",
		clocks = <&clock_camcc CAM_CC_SOC_AHB_CLK>,
			<&clock_camcc CAM_CC_CPAS_AHB_CLK>,
			<&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
			<&clock_camcc CAM_CC_IFE_0_CLK>,
			<&clock_camcc CAM_CC_IFE_0_CLK_SRC>,
			<&clock_camcc CAM_CC_IFE_0_CSID_CLK>,
			<&clock_camcc CAM_CC_IFE_0_CSID_CLK_SRC>,
			<&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
			<&clock_camcc CAM_CC_IFE_0_AXI_CLK>,
		clock-rates = <0 0 80000000 0 320000000 0 384000000 0 0 0>;
		src-clock-name = "ife_clk_src";
		clock-names-option = "ife_dsp_clk";
		clocks-option = <&clock_camcc CAM_CC_IFE_0_DSP_CLK>;
		clock-rates-option = <600000000>;
		scl-clk-en;
		scl-clk-names = "ife_axi_clk";
		qcom,cam-cx-ipeak = <&cx_ipeak_lm 2>;
		status = "ok";
	};