[PATCH v2 14/14] arm64: dts: qcom: agatti: Add OPE node

Loic Poulain
2026-04-27T12:47:02Z

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 <loic.poulain@oss.qualcomm.com>
---
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 f9b46cf1c6462a89784429565e1636ce2ba68d73..ee0fe1832248eed8405968bf05d4c73dd6e8d13d 100644
--- a/arch/arm64/boot/dts/qcom/agatti.dtsi
+++ b/arch/arm64/boot/dts/qcom/agatti.dtsi
@@ -1919,6 +1919,10 @@ &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,

power-domains = <&gcc GCC_CAMSS_TOP_GDSC>;

+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
status = "disabled";

ports {
@@ -1933,6 +1937,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