[PATCH 2/2] arm64: dts: qcom: milos: Add CPU-to-DDR BWMON support

From: Luca Weiss

Date: Fri Jul 17 2026 - 07:46:33 EST


Add a node for the CPU-to-DDR BWMON on the Milos SoC and the
corresponding OPP table.

Currently, the table is for DDR5, the values for DDR4 are put into a
TODO comment, until the kernel can differentiate between DDR variants.

Signed-off-by: Luca Weiss <luca.weiss@xxxxxxxxxxxxx>
---
arch/arm64/boot/dts/qcom/milos.dtsi | 49 +++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/milos.dtsi b/arch/arm64/boot/dts/qcom/milos.dtsi
index e91c0cf5e093..9b79e5bdfbfb 100644
--- a/arch/arm64/boot/dts/qcom/milos.dtsi
+++ b/arch/arm64/boot/dts/qcom/milos.dtsi
@@ -2940,6 +2940,55 @@ cpufreq_hw: cpufreq@17d91000 {
#clock-cells = <1>;
};

+ pmu@24091000 {
+ compatible = "qcom,milos-cpu-bwmon", "qcom,sc7280-llcc-bwmon";
+ reg = <0x0 0x24091000 0x0 0x1000>;
+
+ interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH 0>;
+
+ interconnects = <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ACTIVE_ONLY>;
+
+ operating-points-v2 = <&llcc_bwmon_opp_table>;
+
+ llcc_bwmon_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-0 {
+ opp-peak-kBps = <2086000>;
+ };
+
+ opp-1 {
+ opp-peak-kBps = <2929000>;
+ };
+
+ opp-2 {
+ /* TODO: ddr4 = 3879000 */
+ opp-peak-kBps = <5931000>;
+ };
+
+ opp-3 {
+ /* TODO: ddr4 = 5163000 */
+ opp-peak-kBps = <6515000>;
+ };
+
+ opp-4 {
+ /* TODO: ddr4 = 5931000 */
+ opp-peak-kBps = <7980000>;
+ };
+
+ opp-5 {
+ /* TODO: ddr4 = 6515000 */
+ opp-peak-kBps = <10437000>;
+ };
+
+ opp-6 {
+ /* TODO: ddr4 = 7980000 */
+ opp-peak-kBps = <12191000>;
+ };
+ };
+ };
+
gem_noc: interconnect@24100000 {
compatible = "qcom,milos-gem-noc";
reg = <0x0 0x24100000 0x0 0xff080>;

--
2.55.0