* 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.
- 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.

Example:

	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>;

		};
	};
