git-subtree-dir: qcom/camera git-subtree-mainline:8263fe365e
git-subtree-split:a1378b76f0
204 lines
4.9 KiB
Plaintext
204 lines
4.9 KiB
Plaintext
* 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,cam170-cpas-cdm0", "qcom,cam480-cpas-cdm0",
|
|
"qcom,cam480-cpas-cdm1", "qcom,cam480-cpas-cdm2", "qcom,cam-cpas-cdm1_0",
|
|
"qcom,cam-cpas-cdm1_1", "qcom,cam-cpas-cdm1_2", "qcom,cam-ife-cdm1_2",
|
|
"qcom,cam-cpas-cdm2_0", "qcom,cam-ope-cdm2_0", "qcom,cam-cpas-cdm2_1",
|
|
"qcom,cam-rt-cdm2_1" or "qcom,cam-ope-cdm2_1"
|
|
|
|
- label
|
|
Usage: required
|
|
Value type: <string>
|
|
Definition: Should be "cpas-cdm", "ife-cdm", or "rt-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.
|
|
|
|
- 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.
|
|
|
|
- cdm-client-names
|
|
Usage: required
|
|
Value type: <string>
|
|
Definition: List of Clients supported by CDM HW node.
|
|
|
|
- config-fifo
|
|
Usage: required
|
|
Value type: <empty>
|
|
Definition: Flag to let driver know whether to load fifo depths
|
|
from property fifo-depths or not.
|
|
|
|
- fifo-depths
|
|
Usage: required
|
|
Value type: <u32>
|
|
Definition: List of fifo depths supported by device.
|
|
|
|
- single-context-cdm
|
|
Usage: required
|
|
Value type: <empty>
|
|
Definition: Flag to indicate that the CDM is being used in single
|
|
context mode.
|
|
|
|
- nrt-device
|
|
Usage: optional
|
|
Value type: <empty>
|
|
Definition: Flag to indicate whether this is non real time device.
|
|
|
|
- vmrm-resource-ids
|
|
Usage: optional
|
|
Value type: <u32>
|
|
Definition: should specify vmrm resource id list order is mem label,
|
|
mem tag, irq1 label, irq2 label.
|
|
|
|
- override-cdm-family
|
|
Usage: optional
|
|
Value type: <u32>
|
|
Definition: should specify cdm family.
|
|
|
|
- override-cdm-version
|
|
Usage: optional
|
|
Value type: <u32>
|
|
Definition: should specify cdm version.
|
|
|
|
Example:
|
|
qcom,cpas-cdm0@ac48000 {
|
|
cell-index = <0>;
|
|
compatible = "qcom,cam170-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>;
|
|
clock-cntl-level = "turbo";
|
|
nrt-device;
|
|
cdm-client-names = "ife0";
|
|
config-fifo;
|
|
fifo-depths = <64 0 0 0>;
|
|
single-context-cdm;
|
|
vmrm-resource-ids = <12 12 12>;
|
|
override-cdm-family = <0>;
|
|
override-cdm-version = <0x20020000>;
|
|
status = "ok";
|
|
};
|