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 FD
The MSM camera Face Detection device provides dependency definitions
for enabling Camera FD HW. MSM camera FD is implemented in multiple
device nodes. The root FD device node has properties defined to hint
the driver about the FD HW nodes available during the probe sequence.
Each node has multiple properties defined for interrupts, clocks and
regulators.
=======================
Required Node Structure
=======================
FD root interface node takes care of the handling Face Detection high level
driver handling and controls underlying FD hardware present.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cam-fd".
- compat-hw-name
Usage: required
Value type: <string>
Definition: Should be "qcom,fd".
- num-fd
Usage: required
Value type: <u32>
Definition: Number of supported FD HW blocks.
Example:
qcom,cam-fd {
compatible = "qcom,cam-fd";
compat-hw-name = "qcom,fd";
num-fd = <1>;
};
=======================
Required Node Structure
=======================
FD Node provides interface for Face Detection hardware driver
about the device register map, interrupt map, clocks, regulators.
- cell-index
Usage: required
Value type: <u32>
Definition: Node instance number.
- compatible
Usage: required
Value type: <string>
Definition: Should be one of "qcom,fd41", "qcom,fd501",
"qcom,fd600".
- reg-names
Usage: optional
Value type: <string>
Definition: Name of the register resources.
- reg
Usage: optional
Value type: <u32>
Definition: Register values.
- reg-cam-base
Usage: optional
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 line associated with FD HW.
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for FD HW.
- camss-vdd-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 FD HW.
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks required for FD 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.
- clock-control-debugfs
Usage: optional
Value type: <string>
Definition: Enable/Disable clk rate control.
- 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.
Examples:
cam_fd: qcom,fd@ac5a000 {
cell-index = <0>;
compatible = "qcom,fd600";
reg-names = "fd_core", "fd_wrapper";
reg = <0xac5a000 0x1000>,
<0xac5b000 0x400>;
reg-cam-base = <0x5a000 0x5b000>;
interrupt-names = "fd";
interrupts = <0 462 0>;
regulator-names = "camss-vdd";
camss-vdd-supply = <&titan_top_gdsc>;
clock-names = "gcc_ahb_clk",
"gcc_axi_clk",
"soc_ahb_clk",
"cpas_ahb_clk",
"camnoc_axi_clk",
"fd_core_clk_src",
"fd_core_clk",
"fd_core_uar_clk";
clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
<&clock_gcc GCC_CAMERA_AXI_CLK>,
<&clock_camcc CAM_CC_SOC_AHB_CLK>,
<&clock_camcc CAM_CC_CPAS_AHB_CLK>,
<&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
<&clock_camcc CAM_CC_FD_CORE_CLK_SRC>,
<&clock_camcc CAM_CC_FD_CORE_CLK>,
<&clock_camcc CAM_CC_FD_CORE_UAR_CLK>;
src-clock-name = "fd_core_clk_src";
clock-cntl-level = "svs";
clock-rates = <0 0 0 0 0 400000000 0 0>;
};
|