From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 39E76330B30 for ; Fri, 19 Jun 2026 20:39:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781901568; cv=none; b=WlFy4NYPHegOvgPMM3l4XgDT/ljVETx6+1h5wZ6QmsR/PBpVxmgUut++E8fKTgF60hZ7Q45sM7EPTADHUN/fYaP7tLaL43h4HYDNkjxf2qopdni+UKyCZ/xhTxUZP8XoeIFGhadNs7IDx1dDiSfHNAI3gh9rynP4l0Xp/mgr75E= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781901568; c=relaxed/simple; bh=mzAivGquTuxKJRNPNyBa88Cm3gzCu0h5ZhS95ueAnpQ=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=nnX5AzgdizopMfr0m1LeL2Tr/hTWhx6CP07Zj2dObQK/2fVlfQzT9xB/o3RP3BFL3k1hli3jdQ6ExzbB1ezkWESJyklDdzu6+t7gQlrVs6uwTomVYV8o1o3vU9Lm85ettfBxpvhmokrcA2HK1xrJUQHw7e+7EWzd9lYbWWZLN7I= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=SXvc9/4G; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=JFneWPWq; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="SXvc9/4G"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="JFneWPWq" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65JIw5S6925865 for ; Fri, 19 Jun 2026 20:39:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=1LGsZZQGHjPFgChcl2b+wr rmhmSGdGUPrKtAPR68/hA=; b=SXvc9/4G06P1rvR5AKZ/HM6mwLZceIQFPMxbif 093N7oZCdd3kRgdtNsddI/Uph0FFq6NayCvRiJQbU3T3jTgPD3YSqfraWghXQVN0 mc4/6M6l846Cjoq3lZ94iWcfGw3dY919ts2D2aT3zdILzA5GL8wrSPh4Hxj/3mt2 JR3V8EcDTtu+90WEyTYV1/xvU7biuNeXJRyoW1Q24d2euSx5y13BL7bzQYcXRH/x TzJbmB70imCHzAivuxBzvxR2Je6aQOBDGCIzKa/IXZ349xt5leos6raG7LVSLhhv 9v22eK2o/eJYb1dLj1oYWdmet5WmaSzwtnS8Mm57IgBjsJJg== Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ewbgp89e5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 19 Jun 2026 20:39:26 +0000 (GMT) Received: by mail-pf1-f200.google.com with SMTP id d2e1a72fcca58-84240683a82so1815905b3a.1 for ; Fri, 19 Jun 2026 13:39:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1781901566; x=1782506366; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:from:to:cc:subject:date:message-id:reply-to; bh=1LGsZZQGHjPFgChcl2b+wrrmhmSGdGUPrKtAPR68/hA=; b=JFneWPWqIKwt76JaoySf4N3j2s3OjJC8ejBlvRF7HYQWUyfSiavnp6rnCbcDStzfxd SnJ2a94Uzq/suEEjF8c8wnv3ULLLC3BKYYGhyQGP0kk31wM6tQ76X7Cqht08cv5CU46t R8fPD67jyXw7RNZTiykQ3AY6JsCxS+UMiI1JxSuVfA5Sv9I5CI5FNXgVNLbILQ5zoFKD R3MybJDGJyGLtyjT1Q05ornLMu7prC/zeMaUKkdghVPNSgTh8ybbBIoMQxKKj6IvKZDZ VzhVZy7zG3VqxVyMLqDnRd9BR/rSrZubDmME3rQGkxV/9VMV7DnEIjLDxcRo0WzSXRXW KFyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781901566; x=1782506366; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=1LGsZZQGHjPFgChcl2b+wrrmhmSGdGUPrKtAPR68/hA=; b=M/OBmahF5Id1mReQiJU8Q5SqO8I8mJv9x+UT2VY9XhBw963WTGgF6P4u/EaCcPGg/U XkwuKscQwoZg/9qGVsQizChjY64mrA7oGow8FslxgTCPq5B92kjJT8YfuUnXwaP9Jthh EZ+RspnbdiewIRQzy2K1veDfkK8N9xHZNM/WEESI4slQ+GNzdEYDCXvI9ORz5ewyFk87 RtNZUyOa0ilFL/+XZMY7lFkUcBDgxwRY8ohy2/GXJs/N3dHqAlW/FDIdb8O5m42pdMjJ UVe0VfQRL/CcNGbaijslCGETVIoF1dVJWO3awM06swEHYvB/M6rmSTBo9DRq/U7391XY RRpA== X-Forwarded-Encrypted: i=1; AFNElJ/RzOCvYC22TinYhJ6IHCXWCBzFjhCiNofn+rI/BTO27MqZh7ZXAFwKm8nSjzEeIpv0sspRWMhTA/nbre0=@vger.kernel.org X-Gm-Message-State: AOJu0YzwnGNE+IcrN2XCyKdB8OyW34DJF3PNPWQYSaR5UodQuOTd4zxk RzCSeNau6ArjSELLccnhfUZXU+ta3hjiJoZJrMvLvp7dkGieWDh8VhsFSME+3TalMx4G8RpKMYB 4ogJkTIo50FT2nEsbG8vrQjsRDWgMiCy81b106SkBfdLUcKVWW0UkEgQt4YuaxPYdcXk= X-Gm-Gg: AfdE7cmfkS+ZaHlRgEDjvqCKUHf3+GZjBnoPM4O4goRphK7bXknlgAYAMU44TOB2eIE mnqzEdpx148Vq9kLQMlXX7SSEVLySpEwT40tvlMqNrykBLR06AytyOW0hfLOg7Hhhg8tEm2+MZv r4po0ggfEJL9UEV3SZf4cA3mDkYpV/rLARFqo1TD8w120GAOlzxyZ/j7q8fhIiTergWH4hj1hr3 RwVbefrpFiazLE86y3j1chGZhpbKPzyfB/tCVUbAlcIZCoZDipOIQ2iiAzLa6uZ2oQzCPAChEsX u74IGaDj3Azwvs9cQEUKnDIknU85LszN6egdJeStap3RzufrOm3zxSEMsfVtdedHo+0YKOg+sBX lJ4tu6O4Em+rW4e5Ft6L0N3+Qv01cTmdDb6ydQ+qaKGODgg== X-Received: by 2002:a05:6a00:9a7:b0:837:8342:abe5 with SMTP id d2e1a72fcca58-8455023798fmr4319448b3a.18.1781901565698; Fri, 19 Jun 2026 13:39:25 -0700 (PDT) X-Received: by 2002:a05:6a00:9a7:b0:837:8342:abe5 with SMTP id d2e1a72fcca58-8455023798fmr4319427b3a.18.1781901565110; Fri, 19 Jun 2026 13:39:25 -0700 (PDT) Received: from hu-manafm-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84564ecd779sm94190b3a.53.2026.06.19.13.39.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jun 2026 13:39:24 -0700 (PDT) From: Manaf Meethalavalappu Pallikunhi Subject: [PATCH v2 0/3] Add Qualcomm SPEL powercap driver Date: Sat, 20 Jun 2026 02:09:07 +0530 Message-Id: <20260620-qcom_spel_driver_upstream-v2-0-a3ee6837c18f@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAOuoNWoC/43NQQ6CMBAF0KuQri3pVFvAlfcwhkA7SBOh0EKjI dzdwsaNMW4m+T/5bxbi0Rn05JwsxGEw3tg+Bn5IiGqr/o7U6JgJZ1wyAQUdle1KP+Cj1M4EdOU 8+Mlh1VEAbHSucoESSdwPDhvz3O3rLebW+Mm61/4qwNb+owagjGbiKKSGOmuK08V6n45z9YiTL o2HbHjgH1BC9gvkGyhloQEkU7X8Aq7r+gZlLNwBGgEAAA== X-Change-ID: 20260519-qcom_spel_driver_upstream-11efd8c85e6e To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , "Rafael J. Wysocki" , Bjorn Andersson , Konrad Dybcio , Daniel Lezcano Cc: Gaurav Kohli , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, Manaf Meethalavalappu Pallikunhi X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1781901560; l=2710; i=manaf.pallikunhi@oss.qualcomm.com; s=20260206; h=from:subject:message-id; bh=mzAivGquTuxKJRNPNyBa88Cm3gzCu0h5ZhS95ueAnpQ=; b=wZNSWCLWJySoGaPwV0dKLloCPK6whcIsD4RLJBATv4QwY1VfvwTagxlXN/RrcMCjd0cUcZoJM v87SaWd/HGKAIc2b2VlebU+np/iNYBkJ6E6vIqnnS4RhcOVqeC58Ncu X-Developer-Key: i=manaf.pallikunhi@oss.qualcomm.com; a=ed25519; pk=oZ3x9jh+FDyPwxHmCbyzEMQHMzKqrH6hUbbL7dEBe2g= X-Proofpoint-ORIG-GUID: EnMRdSEjdo7PF1B-gjb-JYpmM1COKUZH X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjE5MDE5OCBTYWx0ZWRfX5EDW80w1ntuC sdVqBKTlooq23PrZKneS1OAilBlB4j/dI9jmltWeyBE1g3uzxTb7SDzZyQ9dJn7uZUHV7jEkOn+ MvY1ejqVwjRWu5YWsFu+zB8Ftr2ZOAqkkd2VeCjRJnavXXAf1/rHDG3pzpGkB1FiMIBcmO/FDIt vi0uFsG66AngyTnVkr+0LyINz3M1S2OdJuJM6Kzo8tU6UEW/Xrq7bbnEa+AGqJn0Vi8oN299i3F R+7OBDRz4j12DZYznxZXOjFrv2z6dNfZDKd9EPqvoCNCYxIArqTQQDvap+0IQjn/4QXYbMY4wDv kLCA7dJo2NGLbdcsxay5pF4EmNgXrpuE4dmJ9Igs56gkva3SyrmXPKfJMb6TQ1vO2Tx4i6IP4p/ kmYvkTQzxHk/pAeFje/LypVGZ9bf/Nz0l2fJ5Q1auPiRgsAkv4V/5SQk/ozWX5apZOocf7Y7k+G TTf/piP24bk91xbfD7A== X-Proofpoint-GUID: EnMRdSEjdo7PF1B-gjb-JYpmM1COKUZH X-Proofpoint-Spam-Info: AW1haW4tMjYwNjE5MDE5OCBTYWx0ZWRfX4y8IFNmePK8A MlfAySdcSYc/jLEPfoqX+I2NmerxYdyulE57JqIoqPTO6UaoL7CN9aBehoswOkxa0cGnYtJ5xD3 g6+eWR5ZHrA0hRDsWN7wc8cCzWuB5EU= X-Authority-Analysis: v=2.4 cv=d8vFDxjE c=1 sm=1 tr=0 ts=6a35a8fe cx=c_pps a=mDZGXZTwRPZaeRUbqKGCBw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=tfgfb8oKCnp2c5w_Q-EA:9 a=QEXdDO2ut3YA:10 a=zc0IvFSfCIW2DFIPzwfm:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-19_04,2026-06-18_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 malwarescore=0 spamscore=0 phishscore=0 impostorscore=0 suspectscore=0 clxscore=1015 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606190198 This patch series introduces support for Qualcomm's SPEL (SoC Power and Electrical Limits) hardware, which provides power monitoring and limiting capabilities for various power domains in Qualcomm SoCs. The SPEL hardware enables: - Real-time energy consumption monitoring across multiple power domains - Hardware-enforced power limits with configurable time windows - Support for up to 4 power limits (PL1-PL4) per domain - Hierarchical power domain organization (SYS -> SOC -> subsystems) The driver integrates with the Linux powercap framework, exposing SPEL capabilities through standard sysfs interfaces. This allows userspace applications and thermal management daemons to monitor energy consumption and configure power limits for optimal power/performance balance. Signed-off-by: Manaf Meethalavalappu Pallikunhi --- Changes in v2: - Fixed DT issues: corrected unit-address mismatch and made compatible platform-specific.(Konrad/Krzysztof) - Cleaned up bitfield handling: switched to GENMASK, FIELD_* macros.(Konrad) - Converted hex values to lowercase and simplified array definitions.(Konrad) - used devm_platform_ioremap_resource_byname().(Konrad) - Refactored data structures: merged domain data into spel_domain_info and removed hardcoded limits using ARRAY_SIZE().(Daniel) - Added bounds checks (TIME_WINDOW_MAX) and fixed time window RMW handling (preserving reserved bits + firmware notify).(Sashiko) - Resolved use-after-free, replaced allocation strategy, and added proper cleanup in .release().(Sashiko) - Updated time window calculation logic. - Removed cyclic dependency, improved validation logic, and aligned naming consistency.(Daniel) - Link to v1: https://lore.kernel.org/r/20260519-qcom_spel_driver_upstream-v1-0-75356d1b7f94@oss.qualcomm.com --- Manaf Meethalavalappu Pallikunhi (3): dt-bindings: power: limits: Describe Qualcomm SPEL hardware powercap: qcom: Add SPEL powercap driver arm64: dts: qcom: glymur: Enable SPEL powercap driver .../bindings/power/limits/qcom,spel.yaml | 47 ++ MAINTAINERS | 7 + arch/arm64/boot/dts/qcom/glymur.dtsi | 10 + drivers/powercap/Kconfig | 13 + drivers/powercap/Makefile | 1 + drivers/powercap/qcom_spel.c | 776 +++++++++++++++++++++ 6 files changed, 854 insertions(+) --- base-commit: 80dd246accce631c328ea43294e53b2b2dd2aa32 change-id: 20260519-qcom_spel_driver_upstream-11efd8c85e6e Best regards, -- Manaf Meethalavalappu Pallikunhi