M7350/kernel/Documentation/devicetree/bindings/media/video/msm-cpp.txt

126 lines
5.0 KiB
Plaintext
Raw Normal View History

2024-09-09 08:52:07 +00:00
* Qualcomm MSM CPP
Required properties:
- cell-index: cpp hardware core index
- compatible :
- "qcom,cpp"
- reg : offset and length of the register set for the device
for the cpp operating in compatible mode.
- reg-names : should specify relevant names to each reg property defined.
- cpp - has CPP MICRO register set.
- cpp_vbif - has VBIF core register set used by CPP.
- cpp_hw - has CPP hardware register set.
- interrupts : should contain the cpp interrupt.
- interrupt-names : should specify relevant names to each interrupts
property defined.
- vdd-supply: phandle to GDSC regulator controlling VFE & CPP core.
2024-09-09 08:57:42 +00:00
- clocks: list of phandles to the clock controller device and coresponding
clock names.
- clock-names: name of the clocks required for the device used by the consumer.
- qcom,clock-rates: clock rate in Hz.
- qcom,min-clock-rate: minimum clock rate in Hz, to be set to CPP hardware in
case dynamic clock scaling based on prevalent streams need lower clock rate.
- qcom,cpp-fw-payload-info: Child node for cpp node having infomration on
cpp firmware payload offsets. This is mandatory node.
Required properties of the child node:
- qcom,stripe-base = Base offset of stripes in cpp payload.
- qcom,plane-base = Base offset of planes in cpp payload.
- qcom,stripe-size = size of each stripe in payload.
- qcom,plane-size = size of each plane in payload.
- qcom,fe-ptr-off = offset from stripe base to fetch engine address
location in payload.
- qcom,we-ptr-off = offset from stripe base to write engine address
location in payload.
Optional properties of the child node:
- qcom,ref-fe-ptr-off = offset from stripe base to reference fetch engine
address location in payload.
- qcom,ref-we-ptr-off = offset from stripe base to reference write engine
address location in payload.
- qcom,we-meta-ptr-off = offset from stripe base to metadata address
location in payload.
- qcom,fe-mmu-pf-ptr-off = offset from plane base to fetch engine mmu prefetch
address min location in payload.
- qcom,ref-fe-mmu-pf-ptr-off = offset from plane base to reference fetch engine
mmu prefetch address min location in payload.
- qcom,we-mmu-pf-ptr-off = offset from plane base to write engine mmu prefetch
address min location in payload.
- qcom,dup-we-mmu-pf-ptr-off = offset from plane base to duplicate write engine
mmu prefetch address min location in payload.
- qcom,ref-we-mmu-pf-ptr-off = offset from plane base to reference write engine
mmu prefetch address min location in payload.
- qcom,set-group-buffer-len = length/size of set group buffer command used for
hfr.
- qcom,dup-frame-indicator-off = offset for duplicate frame indicator in a
batch for frames
Optional properties:
- mmagic-vdd-supply: phandle to GDSC regulator controlling mmagic.
- camss-vdd-supply: phandle to GDSC regulator controlling camss.
- qcom,bus-master: Flag for presence of CPP bus master. It has to be set only for
platforms that support such feature.
- qcom,vbif-setting: The offset and value for vbif core qos registers.
The first entry is register offset and second entry is register value.
2024-09-09 08:52:07 +00:00
Example:
2024-09-09 08:57:42 +00:00
qcom,cpp@fda04000 {
cell-index = <0>;
compatible = "qcom,cpp";
reg = <0xfda04000 0x100>,
<0xfda80000 0x200>,
<0xfda18000 0x008>,
<0xfd8c36D4 0x4>;
reg-names = "cpp", "cpp_vbif", "cpp_hw", "camss_cpp";
interrupts = <0 49 0>;
interrupt-names = "cpp";
mmagic-vdd-supply = <&gdsc_mmagic_camss>;
camss-vdd-supply = <&gdsc_camss_top>;
vdd-supply = <&gdsc_cpp>;
clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>,
<&clock_gcc clk_mmssnoc_axi_clk>,
<&clock_mmss clk_mmagic_camss_axi_clk>,
<&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_cpp_clk_src>,
<&clock_mmss clk_camss_cpp_ahb_clk>,
<&clock_mmss clk_camss_cpp_axi_clk>,
<&clock_mmss clk_camss_cpp_clk>,
<&clock_mmss clk_camss_micro_ahb_clk>,
<&clock_mmss clk_camss_ahb_clk>;
<&clock_mmss clk_smmu_cpp_axi_clk>,
<&clock_mmss clk_camss_cpp_vbif_ahb_clk>,
clock-names = "mmss_mmagic_ahb_clk", "mmssnoc_axi_clk",
"mmagic_camss_axi_clk", "camss_top_ahb_clk",
"cpp_core_clk", "camss_cpp_ahb_clk",
"camss_cpp_axi_clk", "camss_cpp_clk",
"micro_iface_clk", "camss_ahb_clk";
"smmu_cpp_axi_clk", "cpp_vbif_ahb_clk";
qcom,clock-rates = <0 0 0 0 465000000 0 0 465000000 0 0 0 0>;
qcom,min-clock-rate = <320000000>;
qcom,bus-master = <1>;
qcom,vbif-qos-setting = <0x20 0x10000000>,
<0x24 0x10000000>,
<0x28 0x10000000>,
<0x2C 0x10000000>;
qcom,cpp-fw-payload-info {
qcom,stripe-base = <553>;
qcom,plane-base = <481>;
qcom,stripe-size = <61>;
qcom,plane-size = <24>;
qcom,fe-ptr-off = <11>;
qcom,we-ptr-off = <23>;
qcom,ref-fe-ptr-off = <17>;
qcom,ref-we-ptr-off = <36>;
qcom,we-meta-ptr-off = <42>;
qcom,fe-mmu-pf-ptr-off = <6>;
qcom,ref-fe-mmu-pf-ptr-off = <9>;
qcom,we-mmu-pf-ptr-off = <12>;
qcom,dup-we-mmu-pf-ptr-off = <17>;
qcom,ref-we-mmu-pf-ptr-off = <22>;
qcom,set-group-buffer-len = <135>;
qcom,dup-frame-indicator-off = <70>;
};
};