Add the Offline Processing Engine (OPE) device tree node for the
Agatti platform (QCM2290). The node describes the five register
regions (top, bus_read, bus_write, pipeline, qos), clocks, interrupt,
interconnects, IOMMU mappings, and OPP table.

Signed-off-by: Loic Poulain <[email protected]>
---
 arch/arm64/boot/dts/qcom/agatti.dtsi | 71 ++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/agatti.dtsi 
b/arch/arm64/boot/dts/qcom/agatti.dtsi
index 
6a6ab3f15c49eb1e8150f57198ffe2515fa9ae52..e93da2c64044d1f0d49b3ea41faa39cda42e86d4
 100644
--- a/arch/arm64/boot/dts/qcom/agatti.dtsi
+++ b/arch/arm64/boot/dts/qcom/agatti.dtsi
@@ -1921,6 +1921,10 @@ &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
 
                        power-domains = <&gcc GCC_CAMSS_TOP_GDSC>;
 
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
                        status = "disabled";
 
                        ports {
@@ -1935,6 +1939,73 @@ port@1 {
                                        reg = <1>;
                                };
                        };
+
+                       camss_ope: isp@5c42400 {
+                               compatible = "qcom,qcm2290-camss-ope";
+
+                               reg = <0x0 0x5c42400 0x0 0x200>,
+                                     <0x0 0x5c42600 0x0 0x200>,
+                                     <0x0 0x5c42800 0x0 0x4400>,
+                                     <0x0 0x5c46c00 0x0 0x190>,
+                                     <0x0 0x5c46d90 0x0 0xa00>;
+                               reg-names = "top",
+                                           "qos",
+                                           "pipeline",
+                                           "bus_read",
+                                           "bus_write";
+
+                               clocks = <&gcc GCC_CAMSS_OPE_CLK>,
+                                        <&gcc GCC_CAMSS_OPE_AHB_CLK>,
+                                        <&gcc GCC_CAMSS_NRT_AXI_CLK>;
+                               clock-names = "core",
+                                             "iface",
+                                             "data";
+
+                               interrupts = <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>;
+
+                               interconnects = <&bimc MASTER_APPSS_PROC 
RPM_ACTIVE_TAG
+                                               &config_noc SLAVE_CAMERA_CFG 
RPM_ACTIVE_TAG>,
+                                               <&mmnrt_virt MASTER_CAMNOC_SF 
RPM_ALWAYS_TAG
+                                               &bimc SLAVE_EBI1 
RPM_ALWAYS_TAG>;
+                               interconnect-names = "config",
+                                                    "data";
+
+                               iommus = <&apps_smmu 0x820 0x0>,
+                                        <&apps_smmu 0x840 0x0>;
+
+                               operating-points-v2 = <&ope_opp_table>;
+                               power-domains = <&rpmpd QCM2290_VDDCX>;
+
+                               ope_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-19200000 {
+                                               opp-hz = /bits/ 64 <19200000>;
+                                               required-opps = 
<&rpmpd_opp_min_svs>;
+                                       };
+
+                                       opp-200000000 {
+                                               opp-hz = /bits/ 64 <200000000>;
+                                               required-opps = 
<&rpmpd_opp_svs>;
+                                       };
+
+                                       opp-266600000 {
+                                               opp-hz = /bits/ 64 <266600000>;
+                                               required-opps = 
<&rpmpd_opp_svs_plus>;
+                                       };
+
+                                       opp-465000000 {
+                                               opp-hz = /bits/ 64 <465000000>;
+                                               required-opps = 
<&rpmpd_opp_nom>;
+                                       };
+
+                                       opp-580000000 {
+                                               opp-hz = /bits/ 64 <580000000>;
+                                               required-opps = 
<&rpmpd_opp_turbo>;
+                                               turbo-mode;
+                                       };
+                               };
+                       };
                };
 
                mdss: display-subsystem@5e00000 {

-- 
2.34.1


Reply via email to