* 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: Definition: Should be "qcom,cam-cdm-intf". - label Usage: required Value type: Definition: Should be "cam-cdm-intf". - num-hw-cdm Usage: required Value type: Definition: Number of supported HW blocks. - cdm-client-names Usage: required Value type: 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: Definition: Node instance number. - compatible Usage: required Value type: 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: Definition: Should be "cpas-cdm", "ife-cdm", or "rt-cdm". - reg-names Usage: required Value type: Definition: Name of the register resources. - reg Usage: required Value type: Definition: Register values. - reg-cam-base Usage: required Value type: Definition: Offset of the register space compared to to Camera base register space. - interrupt-names Usage: optional Value type: Definition: Name of the interrupt. - interrupts Usage: optional Value type: Definition: Interrupt associated with CDM HW. - regulator-names Usage: required Value type: Definition: Name of the regulator resources for CDM HW. - camss-supply Usage: required Value type: Definition: Regulator reference corresponding to the names listed in "regulator-names". - clock-names Usage: required Value type: Definition: List of clock names required for CDM HW. - clocks Usage: required Value type: Definition: List of clocks used for CDM HW. - clock-rates Usage: required Value type: Definition: List of clocks rates. - clock-cntl-level Usage: required Value type: Definition: List of strings corresponds clock-rates levels. Supported strings: minsvs, lowsvs, svs, svs_l1, nominal, turbo. - cdm-client-names Usage: required Value type: Definition: List of Clients supported by CDM HW node. - config-fifo Usage: required Value type: Definition: Flag to let driver know whether to load fifo depths from property fifo-depths or not. - fifo-depths Usage: required Value type: Definition: List of fifo depths supported by device. - single-context-cdm Usage: required Value type: Definition: Flag to indicate that the CDM is being used in single context mode. - nrt-device Usage: optional Value type: Definition: Flag to indicate whether this is non real time device. 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; status = "ok"; };