git-subtree-dir: qcom/camera git-subtree-mainline:8263fe365e
git-subtree-split:a1378b76f0
203 lines
4.9 KiB
Plaintext
203 lines
4.9 KiB
Plaintext
* Qualcomm Technologies, Inc. MSM Camera JPEG
|
|
|
|
The MSM camera JPEG devices are implemented multiple device nodes.
|
|
The root JPEG device node has properties defined to hint the driver
|
|
about the number of Encoder and DMA nodes available during the
|
|
probe sequence. Each node has multiple properties defined
|
|
for interrupts, clocks and regulators.
|
|
|
|
=======================
|
|
Required Node Structure
|
|
=======================
|
|
JPEG root interface node takes care of the handling account for number
|
|
of Encoder and DMA devices present on the hardware.
|
|
|
|
- compatible
|
|
Usage: required
|
|
Value type: <string>
|
|
Definition: Should be "qcom,cam-jpeg".
|
|
|
|
- compat-hw-name
|
|
Usage: required
|
|
Value type: <string>
|
|
Definition: Should be "qcom,jpegenc" or "qcom,jpegdma".
|
|
|
|
- num-jpeg-enc
|
|
Usage: required
|
|
Value type: <u32>
|
|
Definition: Number of supported Encoder HW blocks.
|
|
|
|
- num-jpeg-dma
|
|
Usage: required
|
|
Value type: <u32>
|
|
Definition: Number of supported DMA HW blocks.
|
|
|
|
Example:
|
|
qcom,cam-jpeg {
|
|
compatible = "qcom,cam-jpeg";
|
|
compat-hw-name = "qcom,jpegenc",
|
|
"qcom,jpegdma";
|
|
num-jpeg-enc = <1>;
|
|
num-jpeg-dma = <1>;
|
|
status = "ok";
|
|
};
|
|
|
|
|
|
=======================
|
|
Required Node Structure
|
|
=======================
|
|
Encoder/DMA Nodes provide interface for JPEG driver about
|
|
the device register map, interrupt map, clocks and regulators.
|
|
Compatible string definition should be based on target.
|
|
|
|
- cell-index
|
|
Usage: required
|
|
Value type: <u32>
|
|
Definition: Node instance number.
|
|
|
|
- compatible
|
|
Usage: required
|
|
Value type: <string>
|
|
Definition: Should be "qcom,cam_jpeg_enc".
|
|
Definition: Should be "qcom,cam_jpeg_enc_165".
|
|
Definition: Should be "qcom,cam_jpeg_enc_580".
|
|
Definition: Should be "qcom,cam_jpeg_enc_680".
|
|
Definition: Should be "qcom,cam_jpeg_dma".
|
|
Definition: Should be "qcom,cam_jpeg_dma_165".
|
|
Definition: Should be "qcom,cam_jpeg_dma_580".
|
|
Definition: Should be "qcom,cam_jpeg_dma_680".
|
|
|
|
- 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 associated with JPEG HW.
|
|
|
|
- regulator-names
|
|
Usage: required
|
|
Value type: <string>
|
|
Definition: Name of the regulator resources for JPEG 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 JPEG HW.
|
|
|
|
- clocks
|
|
Usage: required
|
|
Value type: <phandle>
|
|
Definition: List of clocks used for JPEG 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-cntl-level
|
|
Usage: required
|
|
Value type: <string>
|
|
Definition: List of strings corresponds clock-rates levels.
|
|
Supported strings: minsvs, lowsvs, svs, svs_l1, nominal, turbo.
|
|
|
|
- shared-clks
|
|
Usage: optional
|
|
Value type: <u32>
|
|
Definition: List of 0 or 1 values indicating whether shared clk or not.
|
|
|
|
- nrt-device
|
|
Usage: optional
|
|
Value type: <empty>
|
|
Definition: Flag to indicate whether this is non real time device.
|
|
|
|
- cam_hw_pid:
|
|
Usage: optional
|
|
Value type: <u32>
|
|
Definition: HW unique Pid values
|
|
|
|
- cam_hw_rd_mid:
|
|
Usage: optional
|
|
Value type: <u32>
|
|
Definition: HW port read mid value
|
|
|
|
- cam_hw_wr_mid:
|
|
Usage: optional
|
|
Value type: <u32>
|
|
Definition: HW port write mid value
|
|
|
|
Examples:
|
|
cam_jpeg_enc: qcom,jpegenc@ac4e000 {
|
|
cell-index = <0>;
|
|
compatible = "qcom,cam_jpeg_enc";
|
|
reg-names = "jpege_hw";
|
|
reg = <0xac4e000 0x4000>;
|
|
reg-cam-base = <0x4e000>;
|
|
interrupt-names = "jpeg";
|
|
interrupts = <0 474 0>;
|
|
regulator-names = "camss-vdd";
|
|
camss-vdd-supply = <&titan_top_gdsc>;
|
|
shared-clks = <1 0>;
|
|
clock-names = "jpegenc_clk_src",
|
|
"jpegenc_clk";
|
|
clocks = <&clock_camcc CAM_CC_JPEG_CLK_SRC>,
|
|
<&clock_camcc CAM_CC_JPEG_CLK>;
|
|
clock-rates = <600000000 0>;
|
|
src-clock-name = "jpegenc_clk_src";
|
|
clock-cntl-level = "nominal";
|
|
nrt-device;
|
|
status = "ok";
|
|
};
|
|
|
|
cam_jpeg_dma: qcom,jpegdma@0xac52000{
|
|
cell-index = <0>;
|
|
compatible = "qcom,cam_jpeg_dma";
|
|
reg-names = "jpegdma_hw";
|
|
reg = <0xac52000 0x4000>;
|
|
reg-cam-base = <0x52000>;
|
|
interrupt-names = "jpegdma";
|
|
interrupts = <0 475 0>;
|
|
regulator-names = "camss-vdd";
|
|
camss-vdd-supply = <&titan_top_gdsc>;
|
|
shared-clks = <1 0>;
|
|
clock-names = "jpegdma_clk_src",
|
|
"jpegdma_clk";
|
|
clocks = <&clock_camcc CAM_CC_JPEG_CLK_SRC>,
|
|
<&clock_camcc CAM_CC_JPEG_CLK>;
|
|
|
|
clock-rates = <600000000 0>;
|
|
src-clock-name = "jpegdma_clk_src";
|
|
clock-cntl-level = "nominal";
|
|
nrt-device;
|
|
status = "ok";
|
|
};
|