From eb63869f6286f33faad20788b0e415a511c3e22a Mon Sep 17 00:00:00 2001 From: zhuo Date: Tue, 9 Jan 2024 15:03:32 -0800 Subject: [PATCH 01/24] ARM: dts: msm: Add vmrm resource id parameter Add vmrm resource id parameter for vmrm driver, parameter definition is memory label, memory tag, interrupt label. CRs-Fixed: 3683770 Change-Id: I3715f7fa32ff4ba1fd402c8294a40220678f287f Signed-off-by: zhuo --- bindings/msm-cam-cci.txt | 7 +++++ bindings/msm-cam-cdm.txt | 7 +++++ bindings/msm-cam-cpas.txt | 7 +++++ bindings/msm-cam-csiphy.txt | 7 +++++ bindings/msm-cam-eeprom.txt | 7 +++++ bindings/msm-cam-icp.txt | 10 +++++++ bindings/msm-cam-sfe.txt | 7 +++++ bindings/msm-cam-vfe.txt | 7 +++++ pineapple-camera-sensor-cdp.dtsi | 15 +++++++++++ pineapple-camera-sensor-mtp.dtsi | 15 +++++++++++ pineapple-camera-sensor-qrd.dtsi | 15 +++++++++++ pineapple-camera.dtsi | 31 ++++++++++++++++++++++ trustedvm-pineapple-camera-sensor-cdp.dtsi | 8 ++++++ trustedvm-pineapple-camera-sensor-mtp.dtsi | 8 ++++++ trustedvm-pineapple-camera-sensor-qrd.dtsi | 8 ++++++ trustedvm-pineapple-camera.dtsi | 28 +++++++++++++++++++ 16 files changed, 187 insertions(+) diff --git a/bindings/msm-cam-cci.txt b/bindings/msm-cam-cci.txt index f84f2c34..93f4eb02 100644 --- a/bindings/msm-cam-cci.txt +++ b/bindings/msm-cam-cci.txt @@ -126,6 +126,12 @@ First Level Node - CCI device Value type: Definition: should contain mmagic regulator used for mmagic clocks. +- vmrm-resource-ids + Usage: optional + Value type: + Definition: should specify vmrm resource id list order is mem label, + mem tag, irq1 label, irq2 label. + ========================= CCI clock settings ========================= @@ -201,6 +207,7 @@ Example: pinctrl-1 = <&cci0_suspend>; pinctrl-2 = <&cci1_active>; pinctrl-3 = <&cci1_suspend>; + vmrm-resource-ids = <7 7 7>; i2c_freq_100Khz: qcom,i2c_standard_mode { hw-thigh = <78>; hw-tlow = <114>; diff --git a/bindings/msm-cam-cdm.txt b/bindings/msm-cam-cdm.txt index 0e188fec..4ecef893 100644 --- a/bindings/msm-cam-cdm.txt +++ b/bindings/msm-cam-cdm.txt @@ -150,6 +150,12 @@ to CDM interface node. Value type: Definition: Flag to indicate whether this is non real time device. +- vmrm-resource-ids + Usage: optional + Value type: + Definition: should specify vmrm resource id list order is mem label, + mem tag, irq1 label, irq2 label. + Example: qcom,cpas-cdm0@ac48000 { cell-index = <0>; @@ -180,5 +186,6 @@ Example: config-fifo; fifo-depths = <64 0 0 0>; single-context-cdm; + vmrm-resource-ids = <12 12 12>; status = "ok"; }; diff --git a/bindings/msm-cam-cpas.txt b/bindings/msm-cam-cpas.txt index 179a4e76..e3d889e9 100644 --- a/bindings/msm-cam-cpas.txt +++ b/bindings/msm-cam-cpas.txt @@ -298,6 +298,12 @@ First Level Node - CAM CPAS device properties for those need to be included for this property to work. +- vmrm-resource-ids + Usage: optional + Value type: + Definition: should specify vmrm resource id list order is mem label, + mem tag, irq1 label, irq2 label. + =================================================================== Third Level Node - CAMNOC Level nodes =================================================================== @@ -521,6 +527,7 @@ Example: rt-wr-lowstress-indicator-threshold = <0>; rt-wr-bw-ratio-scale-factor = <1>; enable-cam-drv; + vmrm-resource-ids = <10 10 10>; camera-bus-nodes { level3-nodes { level-index = <3>; diff --git a/bindings/msm-cam-csiphy.txt b/bindings/msm-cam-csiphy.txt index b6fc719d..dd6402e6 100644 --- a/bindings/msm-cam-csiphy.txt +++ b/bindings/msm-cam-csiphy.txt @@ -139,6 +139,12 @@ First Level Node - CSIPHY device Value type: Definition: List of 0 or 1 values indicating whether shared clk or not. +- vmrm-resource-ids + Usage: optional + Value type: + Definition: should specify vmrm resource id list order is mem label, + mem tag, irq1 label, irq2 label. + Example: cam_csiphy0: qcom,csiphy0@ace4000 { @@ -171,5 +177,6 @@ cam_csiphy0: qcom,csiphy0@ace4000 { clock-cntl-level = "nominal"; clock-rates = <480000000 0 400000000 0>; + vmrm-resource-ids = <1 1 1>; status = "ok"; }; diff --git a/bindings/msm-cam-eeprom.txt b/bindings/msm-cam-eeprom.txt index d692385b..16485426 100644 --- a/bindings/msm-cam-eeprom.txt +++ b/bindings/msm-cam-eeprom.txt @@ -141,6 +141,12 @@ First Level Node - CAM EEPROM device Value type: Definition: List of clocks rates. +- vmrm-resource-ids + Usage: optional + Value type: + Definition: should specify vmrm resource id list order is mem label, + mem tag, irq1 label, irq2 label. + Example: eeprom0: qcom,eeprom@0 { @@ -174,6 +180,7 @@ Example: clock-names = "cam_clk"; clock-cntl-level = "turbo"; clock-rates = <24000000>; + vmrm-resource-ids = <32 32>; }; ======================================================= diff --git a/bindings/msm-cam-icp.txt b/bindings/msm-cam-icp.txt index aada7cc7..021a8fe9 100644 --- a/bindings/msm-cam-icp.txt +++ b/bindings/msm-cam-icp.txt @@ -179,6 +179,12 @@ and name of firmware image. Value type: Definition: Flag to indicate whether this is non real time device. +- vmrm-resource-ids + Usage: optional + Value type: + Definition: should specify vmrm resource id list order is mem label, + mem tag, irq1 label, irq2 label. + Examples: cam_a5: qcom,a5 { cell-index = <0>; @@ -258,6 +264,7 @@ cam_lx7: qcom,lx7 { ubwc-ipe-write-cfg = <0x161ef 0x1620f>; ubwc-bps-fetch-cfg = <0x707b 0x7083>; ubwc-bps-write-cfg = <0x161ef 0x1620f>; + vmrm-resource-ids = <29 29 29>; status = "ok"; }; @@ -299,6 +306,7 @@ cam_ipe0: qcom,ipe0@ac42000 { clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal", "turbo"; nrt-device; + vmrm-resource-ids = <30 30 30>; status = "ok"; }; @@ -326,6 +334,7 @@ qcom,ipe1 { <0 0 0 0 600000000>; clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal", "turbo"; + vmrm-resource-ids = <31 31 31>; nrt-device; }; @@ -363,5 +372,6 @@ cam_bps: qcom,bps@ac2c000 { clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal", "turbo"; nrt-device; + vmrm-resource-ids = <32 32 32>; status = "ok"; }; diff --git a/bindings/msm-cam-sfe.txt b/bindings/msm-cam-sfe.txt index 607bf02d..50bb675c 100644 --- a/bindings/msm-cam-sfe.txt +++ b/bindings/msm-cam-sfe.txt @@ -101,6 +101,12 @@ Required properties: Value type: Definition: Enable/Disable clk rate control. +- vmrm-resource-ids + Usage: optional + Value type: + Definition: should specify vmrm resource id list order is mem label, + mem tag, irq1 label, irq2 label. + Example: cam_sfe0: qcom,sfe0@ac9e000 { cell-index = <0>; @@ -133,5 +139,6 @@ cam_sfe0: qcom,sfe0@ac9e000 { src-clock-name = "sfe_clk_src"; scl-clk-names = "sfe_0_ahb"; clock-control-debugfs = "true"; + vmrm-resource-ids = <16 16 16>; status = "ok"; }; diff --git a/bindings/msm-cam-vfe.txt b/bindings/msm-cam-vfe.txt index cf3f7ffc..3f3e7000 100644 --- a/bindings/msm-cam-vfe.txt +++ b/bindings/msm-cam-vfe.txt @@ -132,6 +132,12 @@ Optional properties: Value type: Definition: HW unique Pid values +- vmrm-resource-ids + Usage: optional + Value type: + Definition: should specify vmrm resource id list order is mem label, + mem tag, irq1 label, irq2 label. + Example: cam_vfe0: qcom,ife0@ac62000 { cell-index = <0>; @@ -173,4 +179,5 @@ cam_vfe0: qcom,ife0@ac62000 { ubwc-static-cfg = <0x1026 0x1036>; cam_hw_pid = <16 28 20 8>; status = "ok"; + vmrm-resource-ids = <20 20 20>; }; diff --git a/pineapple-camera-sensor-cdp.dtsi b/pineapple-camera-sensor-cdp.dtsi index 24fd3fc1..e0f47524 100644 --- a/pineapple-camera-sensor-cdp.dtsi +++ b/pineapple-camera-sensor-cdp.dtsi @@ -110,6 +110,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <32 32>; status = "ok"; }; @@ -146,6 +147,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <33 33>; status = "ok"; }; @@ -187,6 +189,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <34 34>; status = "ok"; }; @@ -231,6 +234,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <35 35>; status = "ok"; }; @@ -282,6 +286,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <36 36>; status = "ok"; }; @@ -324,6 +329,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <37 37>; status = "ok"; }; @@ -363,6 +369,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <38 38>; status = "ok"; }; @@ -404,6 +411,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <39 39>; status = "ok"; }; }; @@ -460,6 +468,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <40 40>; status = "ok"; }; @@ -496,6 +505,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <41 41>; status = "ok"; }; @@ -542,6 +552,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <42 42>; status = "ok"; }; @@ -591,6 +602,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <43 43>; status = "ok"; }; }; @@ -649,6 +661,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <44 44>; status = "ok"; }; @@ -711,6 +724,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <45 45>; status = "ok"; }; @@ -760,6 +774,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <46 46>; status = "ok"; }; }; diff --git a/pineapple-camera-sensor-mtp.dtsi b/pineapple-camera-sensor-mtp.dtsi index 24fd3fc1..e0f47524 100644 --- a/pineapple-camera-sensor-mtp.dtsi +++ b/pineapple-camera-sensor-mtp.dtsi @@ -110,6 +110,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <32 32>; status = "ok"; }; @@ -146,6 +147,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <33 33>; status = "ok"; }; @@ -187,6 +189,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <34 34>; status = "ok"; }; @@ -231,6 +234,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <35 35>; status = "ok"; }; @@ -282,6 +286,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <36 36>; status = "ok"; }; @@ -324,6 +329,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <37 37>; status = "ok"; }; @@ -363,6 +369,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <38 38>; status = "ok"; }; @@ -404,6 +411,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <39 39>; status = "ok"; }; }; @@ -460,6 +468,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <40 40>; status = "ok"; }; @@ -496,6 +505,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <41 41>; status = "ok"; }; @@ -542,6 +552,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <42 42>; status = "ok"; }; @@ -591,6 +602,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <43 43>; status = "ok"; }; }; @@ -649,6 +661,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <44 44>; status = "ok"; }; @@ -711,6 +724,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <45 45>; status = "ok"; }; @@ -760,6 +774,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <46 46>; status = "ok"; }; }; diff --git a/pineapple-camera-sensor-qrd.dtsi b/pineapple-camera-sensor-qrd.dtsi index 24fd3fc1..e0f47524 100644 --- a/pineapple-camera-sensor-qrd.dtsi +++ b/pineapple-camera-sensor-qrd.dtsi @@ -110,6 +110,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <32 32>; status = "ok"; }; @@ -146,6 +147,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <33 33>; status = "ok"; }; @@ -187,6 +189,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <34 34>; status = "ok"; }; @@ -231,6 +234,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <35 35>; status = "ok"; }; @@ -282,6 +286,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <36 36>; status = "ok"; }; @@ -324,6 +329,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <37 37>; status = "ok"; }; @@ -363,6 +369,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <38 38>; status = "ok"; }; @@ -404,6 +411,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <39 39>; status = "ok"; }; }; @@ -460,6 +468,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <40 40>; status = "ok"; }; @@ -496,6 +505,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <41 41>; status = "ok"; }; @@ -542,6 +552,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <42 42>; status = "ok"; }; @@ -591,6 +602,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <43 43>; status = "ok"; }; }; @@ -649,6 +661,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <44 44>; status = "ok"; }; @@ -711,6 +724,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <45 45>; status = "ok"; }; @@ -760,6 +774,7 @@ clock-names = "cam_clk"; clock-cntl-level = "nominal"; clock-rates = <24000000>; + vmrm-resource-ids = <46 46>; status = "ok"; }; }; diff --git a/pineapple-camera.dtsi b/pineapple-camera.dtsi index ba0cd546..6ce7c0bc 100644 --- a/pineapple-camera.dtsi +++ b/pineapple-camera.dtsi @@ -907,6 +907,7 @@ clock-rates = <400000000 0 400000000 0>, <480000000 0 400000000 0>; + vmrm-resource-ids = <1 1 1>; status = "ok"; }; @@ -940,6 +941,7 @@ clock-rates = <400000000 0 400000000 0>, <480000000 0 400000000 0>; + vmrm-resource-ids = <2 2 2>; status = "ok"; }; @@ -973,6 +975,7 @@ clock-rates = <400000000 0 400000000 0>, <480000000 0 400000000 0>; + vmrm-resource-ids = <3 3 3>; status = "ok"; }; @@ -1006,6 +1009,7 @@ clock-rates = <400000000 0 400000000 0>, <480000000 0 400000000 0>; + vmrm-resource-ids = <4 4 4>; status = "ok"; }; @@ -1039,6 +1043,7 @@ clock-rates = <400000000 0 400000000 0>, <480000000 0 400000000 0>; + vmrm-resource-ids = <5 5 5>; status = "ok"; }; @@ -1072,6 +1077,7 @@ clock-rates = <400000000 0 400000000 0>, <480000000 0 400000000 0>; + vmrm-resource-ids = <6 6 6>; status = "ok"; }; @@ -1100,6 +1106,7 @@ pinctrl-1 = <&cci_i2c_scl0_suspend &cci_i2c_sda0_suspend>; pinctrl-2 = <&cci_i2c_scl1_active &cci_i2c_sda1_active>; pinctrl-3 = <&cci_i2c_scl1_suspend &cci_i2c_sda1_suspend>; + vmrm-resource-ids = <7 7 7>; status = "ok"; i2c_freq_100Khz_cci0: qcom,i2c_standard_mode { @@ -1188,6 +1195,7 @@ pinctrl-1 = <&cci_i2c_scl2_suspend &cci_i2c_sda2_suspend>; pinctrl-2 = <&cci_i2c_scl3_active &cci_i2c_sda3_active>; pinctrl-3 = <&cci_i2c_scl3_suspend &cci_i2c_sda3_suspend>; + vmrm-resource-ids = <8 8 8>; status = "ok"; i2c_freq_100Khz_cci1: qcom,i2c_standard_mode { @@ -1276,6 +1284,7 @@ pinctrl-1 = <&cci_i2c_scl4_suspend &cci_i2c_sda4_suspend>; pinctrl-2 = <&cci_i2c_scl5_active &cci_i2c_sda5_active>; pinctrl-3 = <&cci_i2c_scl5_suspend &cci_i2c_sda5_suspend>; + vmrm-resource-ids = <9 9 9>; status = "ok"; i2c_freq_100Khz_cci2: qcom,i2c_standard_mode { @@ -1679,6 +1688,7 @@ rt-wr-highstress-indicator-threshold = <50>; rt-wr-lowstress-indicator-threshold = <0>; rt-wr-bw-ratio-scale-factor = <1>; + vmrm-resource-ids = <10 10 10>; status = "ok"; camera-bus-nodes { @@ -2515,6 +2525,7 @@ cam_hw_pid = <25>; cam-hw-mid = <0>; single-context-cdm; + vmrm-resource-ids = <11 11 11>; status = "ok"; }; @@ -2540,6 +2551,7 @@ cam_hw_pid = <26>; cam-hw-mid = <0>; single-context-cdm; + vmrm-resource-ids = <12 12 12>; status = "ok"; }; @@ -2565,6 +2577,7 @@ cam_hw_pid = <27>; cam-hw-mid = <0>; single-context-cdm; + vmrm-resource-ids = <13 13 13>; status = "ok"; }; @@ -2590,6 +2603,7 @@ cam_hw_pid = <24>; cam-hw-mid = <0>; single-context-cdm; + vmrm-resource-ids = <14 14 14>; status = "ok"; }; @@ -2615,6 +2629,7 @@ cam_hw_pid = <30>; cam-hw-mid = <0>; single-context-cdm; + vmrm-resource-ids = <15 15 15>; status = "ok"; }; @@ -2657,6 +2672,7 @@ src-clock-name = "sfe_0_clk_src"; cam_hw_pid = <11 0>; clock-control-debugfs = "true"; + vmrm-resource-ids = <16 16 16>; status = "ok"; }; @@ -2693,6 +2709,7 @@ src-clock-name = "sfe_1_clk_src"; cam_hw_pid = <12 1>; clock-control-debugfs = "true"; + vmrm-resource-ids = <17 17 17>; status = "ok"; }; @@ -2729,6 +2746,7 @@ src-clock-name = "sfe_2_clk_src"; cam_hw_pid = <13 2>; clock-control-debugfs = "true"; + vmrm-resource-ids = <18 18 18>; status = "ok"; }; @@ -2763,6 +2781,7 @@ "turbo"; src-clock-name = "csid_clk_src"; clock-control-debugfs = "true"; + vmrm-resource-ids = <19 19 19>; status = "ok"; }; @@ -2801,6 +2820,7 @@ clock-control-debugfs = "true"; ubwc-static-cfg = <0x1026 0x1036>; cam_hw_pid = <16 20 24 8>; + vmrm-resource-ids = <20 20 20>; status = "ok"; }; @@ -2835,6 +2855,7 @@ "turbo"; src-clock-name = "csid_clk_src"; clock-control-debugfs = "true"; + vmrm-resource-ids = <21 21 21>; status = "ok"; }; @@ -2873,6 +2894,7 @@ clock-control-debugfs = "true"; ubwc-static-cfg = <0x1026 0x1036>; cam_hw_pid = <17 21 25 9>; + vmrm-resource-ids = <22 22 22>; status = "ok"; }; @@ -2907,6 +2929,7 @@ "turbo"; src-clock-name = "csid_clk_src"; clock-control-debugfs = "true"; + vmrm-resource-ids = <23 23 23>; status = "ok"; }; @@ -2945,6 +2968,7 @@ clock-control-debugfs = "true"; ubwc-static-cfg = <0x1026 0x1036>; cam_hw_pid = <18 22 26 10>; + vmrm-resource-ids = <24 24 24>; status = "ok"; }; @@ -2984,6 +3008,7 @@ "turbo"; src-clock-name = "ife_lite_csid_clk_src"; clock-control-debugfs = "true"; + vmrm-resource-ids = <25 25 25>; status = "ok"; }; @@ -3024,6 +3049,7 @@ src-clock-name = "ife_lite_clk_src"; clock-control-debugfs = "true"; cam_hw_pid = <27>; + vmrm-resource-ids = <26 26 26>; status = "ok"; }; @@ -3063,6 +3089,7 @@ "turbo"; src-clock-name = "ife_lite_csid_clk_src"; clock-control-debugfs = "true"; + vmrm-resource-ids = <27 27 27>; status = "ok"; }; @@ -3103,6 +3130,7 @@ src-clock-name = "ife_lite_clk_src"; clock-control-debugfs = "true"; cam_hw_pid = <28>; + vmrm-resource-ids = <28 28 28>; status = "ok"; }; @@ -3243,6 +3271,7 @@ ubwc-bps-write-cfg = <0x161ef 0x1620f>; qos-val = <0x808>; cam_hw_pid = <11>; + vmrm-resource-ids = <29 29 29>; status = "ok"; }; @@ -3282,6 +3311,7 @@ src-clock-name = "ipe_nps_clk_src"; clock-control-debugfs = "true"; cam_hw_pid = <15 14 13 31>; + vmrm-resource-ids = <30 30 30>; status = "ok"; }; @@ -3317,6 +3347,7 @@ src-clock-name = "bps_clk_src"; clock-control-debugfs = "true"; cam_hw_pid = <6 30>; + vmrm-resource-ids = <31 31 31>; status = "ok"; }; diff --git a/trustedvm-pineapple-camera-sensor-cdp.dtsi b/trustedvm-pineapple-camera-sensor-cdp.dtsi index 4a13f9e2..e6275269 100644 --- a/trustedvm-pineapple-camera-sensor-cdp.dtsi +++ b/trustedvm-pineapple-camera-sensor-cdp.dtsi @@ -67,6 +67,7 @@ gpio-req-tbl-label = "CAMIF_MCLK0", "CAM_RESET0"; cci-master = ; + vmrm-resource-ids = <32 32>; status = "ok"; }; @@ -87,6 +88,7 @@ gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET1"; cci-master = ; + vmrm-resource-ids = <33 33>; status = "ok"; }; @@ -112,6 +114,7 @@ gpio-req-tbl-label = "CAMIF_MCLK0", "CAM_RESET0"; cci-master = <0>; + vmrm-resource-ids = <34 34>; status = "ok"; }; @@ -140,6 +143,7 @@ gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET1"; cci-master = ; + vmrm-resource-ids = <35 35>; status = "ok"; }; @@ -170,6 +174,7 @@ gpio-req-tbl-label = "CAMIF_MCLK3", "CAM_RESET3"; cci-master = ; + vmrm-resource-ids = <36 36>; status = "ok"; }; @@ -197,6 +202,7 @@ gpio-req-tbl-label = "CAMIF_MCLK3", "CAM_RESET3"; cci-master = ; + vmrm-resource-ids = <37 37>; status = "ok"; }; @@ -220,6 +226,7 @@ gpio-req-tbl-label = "CAMIF_MCLK5", "CAM_RESET5"; cci-master = ; + vmrm-resource-ids = <38 38>; status = "ok"; }; @@ -245,6 +252,7 @@ gpio-req-tbl-label = "CAMIF_MCLK5", "CAM_RESET5"; cci-master = ; + vmrm-resource-ids = <39 39>; status = "ok"; }; }; diff --git a/trustedvm-pineapple-camera-sensor-mtp.dtsi b/trustedvm-pineapple-camera-sensor-mtp.dtsi index 4a13f9e2..e6275269 100644 --- a/trustedvm-pineapple-camera-sensor-mtp.dtsi +++ b/trustedvm-pineapple-camera-sensor-mtp.dtsi @@ -67,6 +67,7 @@ gpio-req-tbl-label = "CAMIF_MCLK0", "CAM_RESET0"; cci-master = ; + vmrm-resource-ids = <32 32>; status = "ok"; }; @@ -87,6 +88,7 @@ gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET1"; cci-master = ; + vmrm-resource-ids = <33 33>; status = "ok"; }; @@ -112,6 +114,7 @@ gpio-req-tbl-label = "CAMIF_MCLK0", "CAM_RESET0"; cci-master = <0>; + vmrm-resource-ids = <34 34>; status = "ok"; }; @@ -140,6 +143,7 @@ gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET1"; cci-master = ; + vmrm-resource-ids = <35 35>; status = "ok"; }; @@ -170,6 +174,7 @@ gpio-req-tbl-label = "CAMIF_MCLK3", "CAM_RESET3"; cci-master = ; + vmrm-resource-ids = <36 36>; status = "ok"; }; @@ -197,6 +202,7 @@ gpio-req-tbl-label = "CAMIF_MCLK3", "CAM_RESET3"; cci-master = ; + vmrm-resource-ids = <37 37>; status = "ok"; }; @@ -220,6 +226,7 @@ gpio-req-tbl-label = "CAMIF_MCLK5", "CAM_RESET5"; cci-master = ; + vmrm-resource-ids = <38 38>; status = "ok"; }; @@ -245,6 +252,7 @@ gpio-req-tbl-label = "CAMIF_MCLK5", "CAM_RESET5"; cci-master = ; + vmrm-resource-ids = <39 39>; status = "ok"; }; }; diff --git a/trustedvm-pineapple-camera-sensor-qrd.dtsi b/trustedvm-pineapple-camera-sensor-qrd.dtsi index 4a13f9e2..e6275269 100644 --- a/trustedvm-pineapple-camera-sensor-qrd.dtsi +++ b/trustedvm-pineapple-camera-sensor-qrd.dtsi @@ -67,6 +67,7 @@ gpio-req-tbl-label = "CAMIF_MCLK0", "CAM_RESET0"; cci-master = ; + vmrm-resource-ids = <32 32>; status = "ok"; }; @@ -87,6 +88,7 @@ gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET1"; cci-master = ; + vmrm-resource-ids = <33 33>; status = "ok"; }; @@ -112,6 +114,7 @@ gpio-req-tbl-label = "CAMIF_MCLK0", "CAM_RESET0"; cci-master = <0>; + vmrm-resource-ids = <34 34>; status = "ok"; }; @@ -140,6 +143,7 @@ gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET1"; cci-master = ; + vmrm-resource-ids = <35 35>; status = "ok"; }; @@ -170,6 +174,7 @@ gpio-req-tbl-label = "CAMIF_MCLK3", "CAM_RESET3"; cci-master = ; + vmrm-resource-ids = <36 36>; status = "ok"; }; @@ -197,6 +202,7 @@ gpio-req-tbl-label = "CAMIF_MCLK3", "CAM_RESET3"; cci-master = ; + vmrm-resource-ids = <37 37>; status = "ok"; }; @@ -220,6 +226,7 @@ gpio-req-tbl-label = "CAMIF_MCLK5", "CAM_RESET5"; cci-master = ; + vmrm-resource-ids = <38 38>; status = "ok"; }; @@ -245,6 +252,7 @@ gpio-req-tbl-label = "CAMIF_MCLK5", "CAM_RESET5"; cci-master = ; + vmrm-resource-ids = <39 39>; status = "ok"; }; }; diff --git a/trustedvm-pineapple-camera.dtsi b/trustedvm-pineapple-camera.dtsi index ca15437e..7efe2a8c 100644 --- a/trustedvm-pineapple-camera.dtsi +++ b/trustedvm-pineapple-camera.dtsi @@ -889,6 +889,7 @@ interrupt-names = "CSIPHY0"; interrupts = ; regulator-names = "gdscr", "csi-vdd-1p2", "csi-vdd-0p9"; + vmrm-resource-ids = <1 1 1>; status = "ok"; }; @@ -901,6 +902,7 @@ interrupt-names = "CSIPHY1"; interrupts = ; regulator-names = "gdscr", "csi-vdd-1p2", "csi-vdd-0p9"; + vmrm-resource-ids = <2 2 2>; status = "ok"; }; @@ -913,6 +915,7 @@ interrupt-names = "CSIPHY2"; interrupts = ; regulator-names = "gdscr", "csi-vdd-1p2", "csi-vdd-0p9"; + vmrm-resource-ids = <3 3 3>; status = "ok"; }; @@ -925,6 +928,7 @@ interrupt-names = "CSIPHY3"; interrupts = ; regulator-names = "gdscr", "csi-vdd-1p2", "csi-vdd-0p9"; + vmrm-resource-ids = <4 4 4>; status = "ok"; }; @@ -937,6 +941,7 @@ interrupt-names = "CSIPHY4"; interrupts = ; regulator-names = "gdscr", "csi-vdd-1p2", "csi-vdd-0p9"; + vmrm-resource-ids = <5 5 5>; status = "ok"; }; @@ -949,6 +954,7 @@ interrupt-names = "CSIPHY5"; interrupts = ; regulator-names = "gdscr", "csi-vdd-1p2", "csi-vdd-0p9"; + vmrm-resource-ids = <6 6 6>; status = "ok"; }; @@ -969,6 +975,7 @@ pinctrl-1 = <&cci_i2c_scl0_suspend &cci_i2c_sda0_suspend>; pinctrl-2 = <&cci_i2c_scl1_active &cci_i2c_sda1_active>; pinctrl-3 = <&cci_i2c_scl1_suspend &cci_i2c_sda1_suspend>; + vmrm-resource-ids = <7 7 7>; status = "ok"; i2c_freq_100Khz_cci0: qcom,i2c_standard_mode { @@ -1049,6 +1056,7 @@ pinctrl-1 = <&cci_i2c_scl2_suspend &cci_i2c_sda2_suspend>; pinctrl-2 = <&cci_i2c_scl3_active &cci_i2c_sda3_active>; pinctrl-3 = <&cci_i2c_scl3_suspend &cci_i2c_sda3_suspend>; + vmrm-resource-ids = <8 8 8>; status = "ok"; i2c_freq_100Khz_cci1: qcom,i2c_standard_mode { @@ -1129,6 +1137,7 @@ pinctrl-1 = <&cci_i2c_scl4_suspend &cci_i2c_sda4_suspend>; pinctrl-2 = <&cci_i2c_scl5_active &cci_i2c_sda5_active>; pinctrl-3 = <&cci_i2c_scl5_suspend &cci_i2c_sda5_suspend>; + vmrm-resource-ids = <9 9 9>; status = "ok"; i2c_freq_100Khz_cci2: qcom,i2c_standard_mode { @@ -1409,6 +1418,7 @@ rt-wr-highstress-indicator-threshold = <50>; rt-wr-lowstress-indicator-threshold = <0>; rt-wr-bw-ratio-scale-factor = <1>; + vmrm-resource-ids = <10 10 10>; status = "ok"; camera-bus-nodes { @@ -2243,6 +2253,7 @@ cam_hw_pid = <25>; cam-hw-mid = <0>; single-context-cdm; + vmrm-resource-ids = <11 11 11>; status = "ok"; }; @@ -2263,6 +2274,7 @@ cam_hw_pid = <26>; cam-hw-mid = <0>; single-context-cdm; + vmrm-resource-ids = <12 12 12>; status = "ok"; }; @@ -2283,6 +2295,7 @@ cam_hw_pid = <27>; cam-hw-mid = <0>; single-context-cdm; + vmrm-resource-ids = <13 13 13>; status = "ok"; }; @@ -2303,6 +2316,7 @@ cam_hw_pid = <24>; cam-hw-mid = <0>; single-context-cdm; + vmrm-resource-ids = <14 14 14>; status = "ok"; }; @@ -2323,6 +2337,7 @@ cam_hw_pid = <30>; cam-hw-mid = <0>; single-context-cdm; + vmrm-resource-ids = <15 15 15>; status = "ok"; }; @@ -2344,6 +2359,7 @@ regulator-names = "gdsc", "sfe0"; cam_hw_pid = <11 0>; clock-control-debugfs = "true"; + vmrm-resource-ids = <16 16 16>; status = "ok"; }; @@ -2359,6 +2375,7 @@ regulator-names = "gdsc", "sfe1"; cam_hw_pid = <12 1>; clock-control-debugfs = "true"; + vmrm-resource-ids = <17 17 17>; status = "ok"; }; @@ -2374,6 +2391,7 @@ regulator-names = "gdsc", "sfe2"; cam_hw_pid = <13 2>; clock-control-debugfs = "true"; + vmrm-resource-ids = <18 18 18>; status = "ok"; }; @@ -2391,6 +2409,7 @@ regulator-names = "gdsc"; src-clock-name = "csid_clk_src"; clock-control-debugfs = "true"; + vmrm-resource-ids = <19 19 19>; status = "ok"; }; @@ -2407,6 +2426,7 @@ regulator-names = "gdsc", "ife0"; ubwc-static-cfg = <0x1026 0x1036>; cam_hw_pid = <16 20 24 8>; + vmrm-resource-ids = <20 20 20>; status = "ok"; }; @@ -2424,6 +2444,7 @@ regulator-names = "gdsc"; src-clock-name = "csid_clk_src"; clock-control-debugfs = "true"; + vmrm-resource-ids = <21 21 21>; status = "ok"; }; @@ -2440,6 +2461,7 @@ regulator-names = "gdsc", "ife1"; ubwc-static-cfg = <0x1026 0x1036>; cam_hw_pid = <17 21 25 9>; + vmrm-resource-ids = <22 22 22>; status = "ok"; }; @@ -2457,6 +2479,7 @@ regulator-names = "gdsc"; src-clock-name = "csid_clk_src"; clock-control-debugfs = "true"; + vmrm-resource-ids = <23 23 23>; status = "ok"; }; @@ -2473,6 +2496,7 @@ regulator-names = "gdsc", "ife2"; ubwc-static-cfg = <0x1026 0x1036>; cam_hw_pid = <18 22 26 10>; + vmrm-resource-ids = <24 24 24>; status = "ok"; }; @@ -2490,6 +2514,7 @@ "turbo"; src-clock-name = "ife_lite_csid_clk_src"; clock-control-debugfs = "true"; + vmrm-resource-ids = <25 25 25>; status = "ok"; }; @@ -2506,6 +2531,7 @@ src-clock-name = "ife_lite_clk_src"; clock-control-debugfs = "true"; cam_hw_pid = <27>; + vmrm-resource-ids = <26 26 26>; status = "ok"; }; @@ -2523,6 +2549,7 @@ "turbo"; src-clock-name = "ife_lite_csid_clk_src"; clock-control-debugfs = "true"; + vmrm-resource-ids = <27 27 27>; status = "ok"; }; @@ -2539,6 +2566,7 @@ src-clock-name = "ife_lite_clk_src"; clock-control-debugfs = "true"; cam_hw_pid = <28>; + vmrm-resource-ids = <28 28 28>; status = "ok"; }; From 3731fcbe55be68097fa3ca43937416bdcb8bef53 Mon Sep 17 00:00:00 2001 From: zhuo Date: Tue, 9 Jan 2024 15:03:36 -0800 Subject: [PATCH 02/24] ARM: dts: msm: Add cpas and cdm version parameter Add cpas and cdm version parameter for probe stage using in tvm. CRs-Fixed: 3684173 Change-Id: I1668b603f7dbfab628ff8322f438f8019a6e3197 Signed-off-by: zhuo --- bindings/msm-cam-cdm.txt | 12 ++++++++++++ bindings/msm-cam-cpas.txt | 18 ++++++++++++++++++ trustedvm-pineapple-camera.dtsi | 13 +++++++++++++ 3 files changed, 43 insertions(+) diff --git a/bindings/msm-cam-cdm.txt b/bindings/msm-cam-cdm.txt index 4ecef893..7d9d7df7 100644 --- a/bindings/msm-cam-cdm.txt +++ b/bindings/msm-cam-cdm.txt @@ -156,6 +156,16 @@ to CDM interface node. Definition: should specify vmrm resource id list order is mem label, mem tag, irq1 label, irq2 label. +- override-cdm-family + Usage: optional + Value type: + Definition: should specify cdm family. + +- override-cdm-version + Usage: optional + Value type: + Definition: should specify cdm version. + Example: qcom,cpas-cdm0@ac48000 { cell-index = <0>; @@ -187,5 +197,7 @@ Example: fifo-depths = <64 0 0 0>; single-context-cdm; vmrm-resource-ids = <12 12 12>; + override-cdm-family = <0>; + override-cdm-version = <0x20020000>; status = "ok"; }; diff --git a/bindings/msm-cam-cpas.txt b/bindings/msm-cam-cpas.txt index e3d889e9..fa5d7c0d 100644 --- a/bindings/msm-cam-cpas.txt +++ b/bindings/msm-cam-cpas.txt @@ -304,6 +304,21 @@ First Level Node - CAM CPAS device Definition: should specify vmrm resource id list order is mem label, mem tag, irq1 label, irq2 label. +- cam-version + Usage: optional + Value type: + Definition: should specify camera version. + +- cpas-version + Usage: optional + Value type: + Definition: should specify cpas version. + +- camera-capability + Usage: optional + Value type: + Definition: should specify camera capability. + =================================================================== Third Level Node - CAMNOC Level nodes =================================================================== @@ -528,6 +543,9 @@ Example: rt-wr-bw-ratio-scale-factor = <1>; enable-cam-drv; vmrm-resource-ids = <10 10 10>; + cam-version = <0x80800>; + cpas-version = <0x10000000>; + camera-capability = <0x9fffedeb 0x8>; camera-bus-nodes { level3-nodes { level-index = <3>; diff --git a/trustedvm-pineapple-camera.dtsi b/trustedvm-pineapple-camera.dtsi index 7efe2a8c..0818592c 100644 --- a/trustedvm-pineapple-camera.dtsi +++ b/trustedvm-pineapple-camera.dtsi @@ -1419,6 +1419,9 @@ rt-wr-lowstress-indicator-threshold = <0>; rt-wr-bw-ratio-scale-factor = <1>; vmrm-resource-ids = <10 10 10>; + cam-version = <0x80800>; + cpas-version = <0x10000000>; + camera-capability = <0x9fffedeb 0x8>; status = "ok"; camera-bus-nodes { @@ -2254,6 +2257,8 @@ cam-hw-mid = <0>; single-context-cdm; vmrm-resource-ids = <11 11 11>; + override-cdm-family = <0>; + override-cdm-version = <0x20020000>; status = "ok"; }; @@ -2275,6 +2280,8 @@ cam-hw-mid = <0>; single-context-cdm; vmrm-resource-ids = <12 12 12>; + override-cdm-family = <0>; + override-cdm-version = <0x20020000>; status = "ok"; }; @@ -2296,6 +2303,8 @@ cam-hw-mid = <0>; single-context-cdm; vmrm-resource-ids = <13 13 13>; + override-cdm-family = <0>; + override-cdm-version = <0x20020000>; status = "ok"; }; @@ -2317,6 +2326,8 @@ cam-hw-mid = <0>; single-context-cdm; vmrm-resource-ids = <14 14 14>; + override-cdm-family = <0>; + override-cdm-version = <0x20020000>; status = "ok"; }; @@ -2338,6 +2349,8 @@ cam-hw-mid = <0>; single-context-cdm; vmrm-resource-ids = <15 15 15>; + override-cdm-family = <0>; + override-cdm-version = <0x20020000>; status = "ok"; }; From 3cecbc1b09c9b807cc209f94c70b2c9c37472d5b Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Fri, 12 Jan 2024 11:16:29 -0800 Subject: [PATCH 03/24] CAMX: Snap for drop 01/10/2023 mainline 1120 LA.VENDOR.14.3.0.AU383 Change-Id: I7a3ac8d4c095b43072336cf222ecd14799d0549e Signed-off-by: Wasim Khan From 45fdf32375451ec09a8d023bb98207a7183bac8f Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Fri, 12 Jan 2024 11:16:31 -0800 Subject: [PATCH 04/24] CAMX: Snap for drop 01/11/2023 mainline 1121 LA.VENDOR.14.3.0.AU383 Change-Id: I9533c1a75e221f442d95ff656bc1ac7c4948878b Signed-off-by: Wasim Khan From 8b7623a845c766a2204f89fcf6d90c0abf46bf7a Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Fri, 12 Jan 2024 18:32:56 -0800 Subject: [PATCH 05/24] CAMX: Snap for drop 01/12/2023 mainline 1122 LA.VENDOR.14.3.0.AU383 Change-Id: Icb241f4115cc658cf052ff192e0fbb562ec357b7 Signed-off-by: Wasim Khan From 6fdb0bb346018e3a2e7267a2cd39464aff4ab001 Mon Sep 17 00:00:00 2001 From: Soumen Ghosh Date: Wed, 17 Jan 2024 12:52:23 -0800 Subject: [PATCH 06/24] ARM: dts: msm: replace existing use of iommu-dma-addr-pool with iommu-addresses 'qcom,iommu-dma-addr-pool' describe the addresses which a device CAN use 'iommu-addresses' describes the addresses it CANNOT use. CRs-Fixed: 3697699 Change-Id: Ia0253d015073423ac50d0b4ace91278c7120f91f Signed-off-by: Soumen Ghosh --- sun-camera.dtsi | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/sun-camera.dtsi b/sun-camera.dtsi index 69a79d94..bd0431a4 100644 --- a/sun-camera.dtsi +++ b/sun-camera.dtsi @@ -1342,14 +1342,18 @@ #address-cells = <2>; #size-cells = <2>; - msm_cam_smmu_ife { + msm_cam_smmu_ife: msm_cam_smmu_ife { compatible = "qcom,msm-cam-smmu-cb"; iommus = <&apps_smmu 0x1C00 0x00>; - qcom,iommu-dma-addr-pool = <0x0 0x100000 0xf 0xffe00000>; qcom,iommu-faults = "stall-disable", "non-fatal"; dma-coherent; cam-smmu-label = "ife"; multiple-client-devices; + memory-region = <&cam_smmu_ife_resv_region>; + cam_smmu_ife_resv_region: cam_smmu_ife_resv_region { + iommu-addresses = <&msm_cam_smmu_ife 0x0 0x0 0x0 0x100000>, + <&msm_cam_smmu_ife 0xf 0xfff00000 0x0 0x100000>; + }; ife_iova_mem_map: iova-mem-map { /* IO region is approximately 64 GB */ iova-mem-region-io { @@ -1366,13 +1370,17 @@ }; }; - msm_cam_smmu_jpeg { + msm_cam_smmu_jpeg: msm_cam_smmu_jpeg { compatible = "qcom,msm-cam-smmu-cb"; iommus = <&apps_smmu 0x18A0 0x00>; cam-smmu-label = "jpeg"; qcom,iommu-faults = "stall-disable", "non-fatal"; - qcom,iommu-dma-addr-pool = <0x0 0x100000 0x0 0xffe00000>; dma-coherent; + memory-region = <&cam_smmu_jpeg_resv_region>; + cam_smmu_jpeg_resv_region: cam_smmu_jpeg_resv_region { + iommu-addresses = <&msm_cam_smmu_jpeg 0x0 0x0 0x0 0x100000>, + <&msm_cam_smmu_jpeg 0x0 0xfff00000 0xf 0x00100000>; + }; jpeg_iova_mem_map: iova-mem-map { /* IO region is approximately 4.0 GB */ iova-mem-region-io { @@ -1389,7 +1397,7 @@ }; }; - msm_cam_smmu_icp { + msm_cam_smmu_icp: msm_cam_smmu_icp { compatible = "qcom,msm-cam-smmu-cb"; iommus = <&apps_smmu 0x1820 0x00>, <&apps_smmu 0x1800 0xC0>, @@ -1398,10 +1406,12 @@ multiple-client-devices; multiple-same-region-clients = "icp", "icp1"; qcom,iommu-faults = "stall-disable", "non-fatal"; - qcom,iommu-dma-addr-pool = <0x0 0xf1400000 0xf 0x0ec00000>; dma-coherent; + memory-region = <&cam_smmu_icp_resv_region>; + cam_smmu_icp_resv_region: cam_smmu_icp_resv_region { + iommu-addresses = <&msm_cam_smmu_icp 0x0 0x0 0x0 0xf1400000>; + }; icp_iova_mem_map: iova-mem-map { - iova-mem-region-shared1 { /* Shared region is ~900MB long */ iova-region-name = "shared"; @@ -1545,14 +1555,18 @@ }; }; - msm_cam_smmu_cdm { + msm_cam_smmu_cdm: msm_cam_smmu_cdm { compatible = "qcom,msm-cam-smmu-cb"; iommus = <&apps_smmu 0x1860 0x00>; cam-smmu-label = "rt-cdm"; qcom,iommu-faults = "stall-disable", "non-fatal"; - qcom,iommu-dma-addr-pool = <0x0 0x100000 0x0 0xffe00000>; dma-coherent; multiple-client-devices; + memory-region = <&cam_smmu_cdm_resv_region>; + cam_smmu_cdm_resv_region: cam_smmu_cdm_resv_region { + iommu-addresses = <&msm_cam_smmu_cdm 0x0 0x0 0x0 0x100000>, + <&msm_cam_smmu_cdm 0x0 0xfff00000 0xf 0x00100000>; + }; rt_cdm_iova_mem_map: iova-mem-map { iova-mem-region-io { iova-region-name = "io"; From a0ca2e3d690b2b2e6e099f368d38195ed15f8bb0 Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Wed, 17 Jan 2024 12:52:26 -0800 Subject: [PATCH 07/24] CAMX: Snap for drop 01/17/2023 mainline 1123 LA.VENDOR.14.3.0.AU383 56ec132 Merge 'ARM: dts: msm: replace existing use of iommu-dma-addr-pool with iommu-addresses' into camera-kernel.lnx.dev Change-Id: I8e7f2ad14aaadabde0d29b622ef1b5b9c911aedb Signed-off-by: Wasim Khan From 5b20977be3abcaf4db9b227617dcd9655b2fdff0 Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Thu, 18 Jan 2024 10:59:24 -0800 Subject: [PATCH 08/24] CAMX: Snap for drop 01/17/2023 mainline 1124 LA.VENDOR.14.3.0.AU383 Change-Id: I195d6fc5af8e414daa0bb309cd1a5281ea46e5bb Signed-off-by: Wasim Khan From 500aae6a753212e52231c479cf15b31208bb056f Mon Sep 17 00:00:00 2001 From: zhuo Date: Fri, 19 Jan 2024 11:45:40 -0800 Subject: [PATCH 09/24] ARM: dts: msm: Add cci gpio resources for vmrm Due to cci is using pinctrl, but it does not define gpio info and vmrm is checking the gpios parameter to get the device use gpio info, so need to add gpio for cci. And due to cci is using pinctrl, so there is not need to define gpio-req-tbl-num for cci, so cci just has gpios without gpio-req-tbl-num. This commit add gpio_for_vmrm_purpose to identify the scene and add gpio resources. CRs-Fixed: 3685452 Change-Id: I75450c252c62899c6b563745ef3322520595a8eb Signed-off-by: zhuo --- bindings/msm-cam-cci.txt | 10 ++++++++++ pineapple-camera.dtsi | 15 +++++++++++++++ trustedvm-pineapple-camera.dtsi | 15 +++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/bindings/msm-cam-cci.txt b/bindings/msm-cam-cci.txt index 93f4eb02..7865e3fe 100644 --- a/bindings/msm-cam-cci.txt +++ b/bindings/msm-cam-cci.txt @@ -132,6 +132,16 @@ First Level Node - CCI device Definition: should specify vmrm resource id list order is mem label, mem tag, irq1 label, irq2 label. +- gpios + Usage: required when enable vmrm + Value type: + Definition: should specify the gpios to be used for the cci. + +- gpio_for_vmrm_purpose + Usage: required when enable vmrm + Value type: + Definition: A boolean flag to indicate the gpios is only for vmrm. + ========================= CCI clock settings ========================= diff --git a/pineapple-camera.dtsi b/pineapple-camera.dtsi index 6ce7c0bc..4987d266 100644 --- a/pineapple-camera.dtsi +++ b/pineapple-camera.dtsi @@ -1106,6 +1106,11 @@ pinctrl-1 = <&cci_i2c_scl0_suspend &cci_i2c_sda0_suspend>; pinctrl-2 = <&cci_i2c_scl1_active &cci_i2c_sda1_active>; pinctrl-3 = <&cci_i2c_scl1_suspend &cci_i2c_sda1_suspend>; + gpios = <&tlmm 113 0>, + <&tlmm 114 0>, + <&tlmm 115 0>, + <&tlmm 116 0>; + gpio_for_vmrm_purpose; vmrm-resource-ids = <7 7 7>; status = "ok"; @@ -1195,6 +1200,11 @@ pinctrl-1 = <&cci_i2c_scl2_suspend &cci_i2c_sda2_suspend>; pinctrl-2 = <&cci_i2c_scl3_active &cci_i2c_sda3_active>; pinctrl-3 = <&cci_i2c_scl3_suspend &cci_i2c_sda3_suspend>; + gpios = <&tlmm 12 0>, + <&tlmm 13 0>, + <&tlmm 117 0>, + <&tlmm 118 0>; + gpio_for_vmrm_purpose; vmrm-resource-ids = <8 8 8>; status = "ok"; @@ -1284,6 +1294,11 @@ pinctrl-1 = <&cci_i2c_scl4_suspend &cci_i2c_sda4_suspend>; pinctrl-2 = <&cci_i2c_scl5_active &cci_i2c_sda5_active>; pinctrl-3 = <&cci_i2c_scl5_suspend &cci_i2c_sda5_suspend>; + gpios = <&tlmm 112 0>, + <&tlmm 153 0>, + <&tlmm 119 0>, + <&tlmm 120 0>; + gpio_for_vmrm_purpose; vmrm-resource-ids = <9 9 9>; status = "ok"; diff --git a/trustedvm-pineapple-camera.dtsi b/trustedvm-pineapple-camera.dtsi index 0818592c..0de83a2b 100644 --- a/trustedvm-pineapple-camera.dtsi +++ b/trustedvm-pineapple-camera.dtsi @@ -975,6 +975,11 @@ pinctrl-1 = <&cci_i2c_scl0_suspend &cci_i2c_sda0_suspend>; pinctrl-2 = <&cci_i2c_scl1_active &cci_i2c_sda1_active>; pinctrl-3 = <&cci_i2c_scl1_suspend &cci_i2c_sda1_suspend>; + gpios = <&tlmm 113 0>, + <&tlmm 114 0>, + <&tlmm 115 0>, + <&tlmm 116 0>; + gpio_for_vmrm_purpose; vmrm-resource-ids = <7 7 7>; status = "ok"; @@ -1056,6 +1061,11 @@ pinctrl-1 = <&cci_i2c_scl2_suspend &cci_i2c_sda2_suspend>; pinctrl-2 = <&cci_i2c_scl3_active &cci_i2c_sda3_active>; pinctrl-3 = <&cci_i2c_scl3_suspend &cci_i2c_sda3_suspend>; + gpios = <&tlmm 12 0>, + <&tlmm 13 0>, + <&tlmm 117 0>, + <&tlmm 118 0>; + gpio_for_vmrm_purpose; vmrm-resource-ids = <8 8 8>; status = "ok"; @@ -1137,6 +1147,11 @@ pinctrl-1 = <&cci_i2c_scl4_suspend &cci_i2c_sda4_suspend>; pinctrl-2 = <&cci_i2c_scl5_active &cci_i2c_sda5_active>; pinctrl-3 = <&cci_i2c_scl5_suspend &cci_i2c_sda5_suspend>; + gpios = <&tlmm 112 0>, + <&tlmm 153 0>, + <&tlmm 119 0>, + <&tlmm 120 0>; + gpio_for_vmrm_purpose; vmrm-resource-ids = <9 9 9>; status = "ok"; From 416c68e20c99e7196626137034ea50e8816289d9 Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Fri, 19 Jan 2024 11:45:43 -0800 Subject: [PATCH 10/24] CAMX: Snap for drop 01/19/2024 mainline 1125 LA.VENDOR.14.3.0.AU383 e5efbce Merge 'ARM: dts: msm: Add cci gpio resources for vmrm' into camera-kernel.lnx.dev Change-Id: Ie3211aaf2d4e5ff38f61ac732aac590974205c00 Signed-off-by: Wasim Khan From 6ad372930a1f364aa06cf541126ad881983d07c2 Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Mon, 22 Jan 2024 23:02:46 -0800 Subject: [PATCH 11/24] CAMX: Snap for drop 01/19/2024 mainline 1126 LA.VENDOR.14.3.0.AU383 Change-Id: I535e1d7ac6490a1e7b4692bcfd358860f456e8f6 Signed-off-by: Wasim Khan From 87c11766e6aa86f73fc76fa50c358276102c0d55 Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Mon, 22 Jan 2024 23:02:49 -0800 Subject: [PATCH 12/24] CAMX: Snap for drop 01/22/2024 mainline 1127 LA.VENDOR.14.3.0.AU383 Change-Id: I693534fe4b5e810f9a1ca68e85c73540c3c47484 Signed-off-by: Wasim Khan From 2e175888366b86605209a1fa91c2ee8d750999af Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Wed, 24 Jan 2024 16:22:55 -0800 Subject: [PATCH 13/24] CAMX: Snap for drop 01/23/2024 mainline 1128 LA.VENDOR.14.3.0.AU383 Change-Id: I07e304ed217598d824fe6cc7d94a4a2001603995 Signed-off-by: Wasim Khan From d3779834b748b9444e0a3f85bbfa675d34b3a228 Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Fri, 26 Jan 2024 20:27:40 -0800 Subject: [PATCH 14/24] CAMX: Snap for drop 01/24/2024 mainline 1129 LA.VENDOR.14.3.0.AU383 Change-Id: Ibe305cd70853f8bab416e58b4c43b834a9111b76 Signed-off-by: Wasim Khan From 1b76bb417a92466216a1c923ad43b2370ecd261d Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Fri, 26 Jan 2024 20:27:42 -0800 Subject: [PATCH 15/24] CAMX: Snap for drop 01/26/2024 mainline 1130 LA.VENDOR.14.3.0.AU383 Change-Id: I88e153b31b2352a3e03dad30a5a973bc5754716f Signed-off-by: Wasim Khan From 51741d2256b3fbc8f651fa2a4a0231c1235b574f Mon Sep 17 00:00:00 2001 From: Soumen Ghosh Date: Mon, 29 Jan 2024 22:42:29 -0800 Subject: [PATCH 16/24] ARM: dts: msm: adding the 2MB iova region for LLCC To make accessible LLCC register address space by ICP FW, we need to map the 2MB. LLCC register region in SMMU context bank. CRs-Fixed: 3701263 Change-Id: I2a95b918facef5fa9c9d47a7f04151f4779995c7 Signed-off-by: Soumen Ghosh --- sun-camera.dtsi | 46 ++++++++++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/sun-camera.dtsi b/sun-camera.dtsi index bd0431a4..d961853c 100644 --- a/sun-camera.dtsi +++ b/sun-camera.dtsi @@ -1409,14 +1409,14 @@ dma-coherent; memory-region = <&cam_smmu_icp_resv_region>; cam_smmu_icp_resv_region: cam_smmu_icp_resv_region { - iommu-addresses = <&msm_cam_smmu_icp 0x0 0x0 0x0 0xf1400000>; + iommu-addresses = <&msm_cam_smmu_icp 0x0 0x0 0x0 0xf1600000>; }; icp_iova_mem_map: iova-mem-map { iova-mem-region-shared1 { /* Shared region is ~900MB long */ iova-region-name = "shared"; - /* Start address: 0x80c00000 */ - iova-region-start = <0x0 0x80c00000>; + /* Start address: 0x80e00000 */ + iova-region-start = <0x0 0x80e00000>; /* Length: 0x38400000 */ iova-region-len = <0x0 0x38400000>; iova-region-id = <0x1>; @@ -1426,8 +1426,8 @@ iova-mem-region-shared2 { /* Shared region is ~900MB long */ iova-region-name = "shared"; - /* Start address: 0xb9000000 */ - iova-region-start = <0x0 0xb9000000>; + /* Start address: 0xb9200000 */ + iova-region-start = <0x0 0xb9200000>; /* Length: 0x38400000 */ iova-region-len = <0x0 0x38400000>; iova-region-id = <0x1>; @@ -1437,8 +1437,8 @@ iova-mem-region-fwuncached-region1 { /* FW uncached region is 5 MB long */ iova-region-name = "fw_uncached"; - /* Start address: 0x80200000 */ - iova-region-start = <0x0 0x80200000>; + /* Start address: 0x80400000 */ + iova-region-start = <0x0 0x80400000>; /* Length: 0x500000 */ iova-region-len = <0x0 0x500000>; iova-region-id = <0x6>; @@ -1448,7 +1448,7 @@ /* Used for HFI queues/sec heap */ iova-mem-region-generic-region { iova-region-name = "icp_hfi"; - iova-region-start = <0x0 0x80300000>; + iova-region-start = <0x0 0x80500000>; /* Length: 0x200000 */ iova-region-len = <0x0 0x200000>; iova-region-id = <0x0>; @@ -1457,7 +1457,7 @@ /* Global Sync Memory for IPC */ iova-mem-region-global-sync-region { iova-region-name = "global_sync"; - iova-region-start = <0x0 0x80200000>; + iova-region-start = <0x0 0x80400000>; /* Length: 0x100000 */ iova-region-len = <0x0 0x100000>; iova-region-id = <0x3>; @@ -1468,8 +1468,8 @@ iova-mem-region-fwuncached-region2 { /* FW uncached region is 5 MB long */ iova-region-name = "fw_uncached"; - /* Start address: 0x80700000 */ - iova-region-start = <0x0 0x80700000>; + /* Start address: 0x80900000 */ + iova-region-start = <0x0 0x80900000>; /* Length: 0x500000 */ iova-region-len = <0x0 0x500000>; iova-region-id = <0x6>; @@ -1479,7 +1479,7 @@ /* Used for HFI queues/sec heap */ iova-mem-region-generic-region { iova-region-name = "icp_hfi"; - iova-region-start = <0x0 0x80800000>; + iova-region-start = <0x0 0x80a00000>; /* Length: 0x200000 */ iova-region-len = <0x0 0x200000>; iova-region-id = <0x0>; @@ -1488,7 +1488,7 @@ /* Global Sync Memory for IPC */ iova-mem-region-global-sync-region { iova-region-name = "global_sync"; - iova-region-start = <0x0 0x80700000>; + iova-region-start = <0x0 0x80900000>; /* Length: 0x100000 */ iova-region-len = <0x0 0x100000>; iova-region-id = <0x3>; @@ -1500,7 +1500,7 @@ /* Device region is appropriate 1MB */ iova-region-name = "device"; iova-region-start = <0x0 0x80100000>; - iova-region-len = <0x0 0x100000>; + iova-region-len = <0x0 0x300000>; iova-region-id = <0x7>; subregion_support; status = "ok"; @@ -1528,15 +1528,22 @@ iova-region-id = <0x4>; phy-addr = <0xc220000>; }; + iova-mem-region-llcc-register { + iova-region-name = "llcc-register"; + iova-region-start = <0x0 0x80103000>; + iova-region-len = <0x0 0x200000>; + iova-region-id = <0x5>; + phy-addr = <0x26C00000>; + }; }; iova-mem-region-io { /* IO region is approximately 60 GB */ iova-region-name = "io"; - /* Start address: 0xf1400000 */ - iova-region-start = <0x0 0xf1400000>; - /* Length: 0xf0ec00000 */ - iova-region-len = <0xf 0x0ec00000>; + /* Start address: 0xf1600000 */ + iova-region-start = <0x0 0xf1600000>; + /* Length: 0xf0ea00000 */ + iova-region-len = <0xf 0x0ea00000>; iova-region-id = <0x3>; status = "ok"; }; @@ -1715,6 +1722,9 @@ "cam-cdm-intf0", "icp0", "icp1", "ofe0", "cre0", "jpeg-dma0", "jpeg-enc0", "jpeg-dma1", "jpeg-enc1", "tpg13", "tpg14", "tpg15"; + sys-cache-names = "ofe_ip", "ipe_rt_ip", "ipe_srt_ip", "ipe_rt_rf", "ipe_srt_rf"; + sys-cache-uids = <71 72 73 74 75>; + sys-cache-concur = <1 1 1 0 0>; enable-smart-qos; rt-wr-priority-min = <4>; rt-wr-priority-max = <5>; From 473eba5bb000eef6715ef86671b09d9f9f3c4730 Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Mon, 29 Jan 2024 22:42:31 -0800 Subject: [PATCH 17/24] CAMX: Snap for drop 01/29/2024 mainline 1131 LA.VENDOR.14.3.0.AU383 1e54ab9 Merge 'ARM: dts: msm: adding the 2MB iova region for LLCC' into camera-kernel.lnx.dev Change-Id: I1d7f28bfbcb173ffa43dc4072c8e2af6f851056d Signed-off-by: Wasim Khan From ce67122b983700995ec40a94f51e64a448423bf3 Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Tue, 30 Jan 2024 20:26:18 -0800 Subject: [PATCH 18/24] CAMX: Snap for drop 01/30/2024 mainline 1132 LA.VENDOR.15.4.0.AU225 Change-Id: I459746221e511431f386a93c52cb1877f7e6185f Signed-off-by: Wasim Khan From 429887648a1cfbc32e7f728952a3657f23c20520 Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Fri, 2 Feb 2024 11:31:40 -0800 Subject: [PATCH 19/24] CAMX: Snap for drop 01/31/2024 mainline 1133 LA.VENDOR.15.4.0.AU225 Change-Id: If6769637275efa5eed82c77394a8e0e66b249327 Signed-off-by: Wasim Khan From 2895a84af50766140e0f8f2a367087320afc6a1a Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Fri, 2 Feb 2024 11:31:43 -0800 Subject: [PATCH 20/24] CAMX: Snap for drop 02/02/2024 mainline 1134 LA.VENDOR.15.4.0.AU225 Change-Id: I4c78dc9358684a55fa8f9cd3cf4fe6581e29d64f Signed-off-by: Wasim Khan From c9a1485371ee78f980fb259f44ea2d92f1f670a2 Mon Sep 17 00:00:00 2001 From: zhuo Date: Tue, 6 Feb 2024 11:15:54 -0800 Subject: [PATCH 21/24] ARM: dts: msm: Add vmrm device in camera pvm and tvm Add vmrm device in camera pvm and tvm. Default enable in tvm and disable in pvm. Also add bypass register access in tvm boot up. CRs-Fixed: 3711691 Change-Id: Iadc1b8eb669d991b7f855d7ad5decdf22b3707bb Signed-off-by: zhuo --- pineapple-camera.dtsi | 6 ++++++ trustedvm-pineapple-camera.dtsi | 7 +++++++ 2 files changed, 13 insertions(+) diff --git a/pineapple-camera.dtsi b/pineapple-camera.dtsi index 4987d266..b2fc4393 100644 --- a/pineapple-camera.dtsi +++ b/pineapple-camera.dtsi @@ -877,6 +877,12 @@ status = "disabled"; }; + qcom,cam-vmrm { + compatible = "qcom,cam-vmrm"; + vmid = ; + status = "disabled"; + }; + cam_csiphy0: qcom,csiphy0@ace4000 { cell-index = <0>; compatible = "qcom,csiphy-v2.2.0", "qcom,csiphy"; diff --git a/trustedvm-pineapple-camera.dtsi b/trustedvm-pineapple-camera.dtsi index 0de83a2b..de791bd2 100644 --- a/trustedvm-pineapple-camera.dtsi +++ b/trustedvm-pineapple-camera.dtsi @@ -880,6 +880,13 @@ status = "disabled"; }; + qcom,cam-vmrm { + compatible = "qcom,cam-vmrm"; + vmid = ; + no_register_read_on_bind; + status = "ok"; + }; + cam_csiphy0: qcom,csiphy0@ace4000 { cell-index = <0>; compatible = "qcom,csiphy-v2.2.0", "qcom,csiphy"; From 6d4acda8ba5f35977062e44a2ae58fc601878296 Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Tue, 6 Feb 2024 11:15:56 -0800 Subject: [PATCH 22/24] CAMX: Snap for drop 02/05/2024 mainline 1135 LA.VENDOR.15.4.0.AU225 4f3fbf0 Merge 'ARM: dts: msm: Add vmrm device in camera pvm and tvm' into camera-kernel.lnx.dev Change-Id: I2140c362f4a0d14b171dee03651f3eac61c157ba Signed-off-by: Wasim Khan From fb42273515d8b5a88596f6ed4556fae6920461c1 Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Wed, 7 Feb 2024 11:00:02 -0800 Subject: [PATCH 23/24] CAMX: Snap for drop 02/06/2024 mainline 1136 LA.VENDOR.15.4.0.AU231 Change-Id: I86a9bdf616eb4ea10ee5dae23a512e391f0d412e Signed-off-by: Wasim Khan From 001e79b9eb7857747c9077ed87efe6640fb0c52f Mon Sep 17 00:00:00 2001 From: Wasim Khan Date: Thu, 8 Feb 2024 16:43:57 -0800 Subject: [PATCH 24/24] CAMX: Snap for drop 02/08/2024 mainline 1137 LA.VENDOR.15.4.0.AU231 Change-Id: I99e2e09451bf98081df1761d399b265d67e889fd Signed-off-by: Wasim Khan