* Qualcomm Technologies, Inc. MSM Camera LRME The MSM camera Low Resolution Motion Estimation device provides dependency definitions for enabling Camera LRME HW. MSM camera LRME is implemented in multiple device nodes. The root LRME device node has properties defined to hint the driver about the LRME HW nodes available during the probe sequence. Each node has multiple properties defined for interrupts, clocks and regulators. ======================= Required Node Structure ======================= LRME root interface node takes care of the handling LRME high level driver handling and controls underlying LRME hardware present. - compatible Usage: required Value type: Definition: Should be "qcom,cam-lrme" - compat-hw-name Usage: required Value type: Definition: Should be "qcom,lrme" - num-lrme Usage: required Value type: Definition: Number of supported LRME HW blocks Example: qcom,cam-lrme { compatible = "qcom,cam-lrme"; compat-hw-name = "qcom,lrme"; num-lrme = <1>; }; ======================= Required Node Structure ======================= LRME Node provides interface for Low Resolution Motion Estimation hardware driver about the device register map, interrupt map, clocks, regulators. - cell-index Usage: required Value type: Definition: Node instance number - compatible Usage: required Value type: Definition: Should be "qcom,lrme" - reg-names Usage: optional Value type: Definition: Name of the register resources - reg Usage: optional Value type: Definition: Register values - reg-cam-base Usage: optional 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 line associated with LRME HW - regulator-names Usage: required Value type: Definition: Name of the regulator resources for LRME 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 LRME HW - clocks Usage: required Value type: Definition: List of clocks required for LRME 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 - src-clock-name Usage: required Value type: Definition: Source clock name Examples: cam_lrme: qcom,lrme@ac6b000 { cell-index = <0>; compatible = "qcom,lrme"; reg-names = "lrme"; reg = <0xac6b000 0xa00>; reg-cam-base = <0x6b000>; interrupt-names = "lrme"; interrupts = <0 476 0>; regulator-names = "camss"; camss-supply = <&titan_top_gdsc>; clock-names = "camera_ahb", "camera_axi", "soc_ahb_clk", "cpas_ahb_clk", "camnoc_axi_clk", "lrme_clk_src", "lrme_clk"; clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>, <&clock_gcc GCC_CAMERA_AXI_CLK>, <&clock_camcc CAM_CC_SOC_AHB_CLK>, <&clock_camcc CAM_CC_CPAS_AHB_CLK>, <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>, <&clock_camcc CAM_CC_LRME_CLK_SRC>, <&clock_camcc CAM_CC_LRME_CLK>; clock-rates = <0 0 0 0 0 0 0>, <0 0 0 0 0 19200000 19200000>, <0 0 0 0 0 19200000 19200000>, <0 0 0 0 0 19200000 19200000>; clock-cntl-level = "lowsvs", "svs", "svs_l1", "turbo"; src-clock-name = "lrme_core_clk_src"; };