From nobody Fri Jun 12 17:26:17 2026 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9226C40F8ED for ; Wed, 13 May 2026 12:37:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778675840; cv=none; b=GGsi2OMFiMcBiwp1Y1Ris1ERIEyfPtkIhrG9VnGiWz7P+qjEMG+5xeAw9zdDP23uASjq5KKvG4Bcf2SakXWFiTC/WzTEVUGgJWiLxjFfC5Wk8yK6B6wXHiK7K46oOX4Q/2mXnvWg11lR369iklwFd2NmmC8fFNKPz8589fL1WcI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778675840; c=relaxed/simple; bh=RpRMvW5iYap9UdQ+48wHOpbTlFeKShOI8IiDuea9S2I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZGGnFThQk6z0f4x+suJkE+o+eBHvTHy7QO0eSpObvDk/79jbGHY+PPCgR2ZxYxwyH0he/W5lyfx13TaQZZVtufkBcdPd3ShLLAVo7qUo9NupJTdH81j3p7jtzvSQ6pBUMYtUGmd0KLryezX0uUs2NNvugCwHscYGAtTEbwyB53s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=bM3+w4oq; arc=none smtp.client-ip=209.85.221.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="bM3+w4oq" Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-44e1860558fso4324564f8f.0 for ; Wed, 13 May 2026 05:37:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778675837; x=1779280637; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=YX6ZPm2D502cqZx4/+zrPYcRnZ97EQtYMDg4SYAmRws=; b=bM3+w4oq+2ThTtN8g3SNT31ew8s/dmrwAoHtVvaarezk8/K8HSHIlMSgiEkEyaBm8K WVkdjVSTFuEk1AJXXDfDJfiG2ECGgiU3GgzR8FvSTTKw0l32+WURhEZkGgtveylGfB/n d9Xv3HgWrVB4aYO1GJ7DCV1DW48rFtUeg0dFZZDxutEzeG4g9e0kek0c1BWlbq169UKP 4VJqK0kH1qhwedwSjeheTeHvd4dFIJgS2Olv9OAPqK2KTpYqAplfJ/Z0bLRKDp/7OeCe k0NoOV8G+/8tPue12upxYsmJQ1NG/5hIB0eKq7YEwe/C0kVXQic+41s2hJ2spDVbf7kM 9BFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778675837; x=1779280637; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=YX6ZPm2D502cqZx4/+zrPYcRnZ97EQtYMDg4SYAmRws=; b=DJTle+4aTp94H2ZpcxDCzYEtMg/sQPcMZkEW83CPKV25qg9UXpxWfFs9dTqikmZqJx wqspkVe/1lE3cDEALYRzL1yTFJcxBW1CE6RZQNEf1M9QggY5980pS5QtiE4j0mP9V4FN rhuQA1E7nOFOGQYHiHKf4pU2lZ4bqrQ2BvuUaFZDsxk/aRGUOwTLH+kOd8Gi9/U5Bdl1 SwtuwL5lwFkakktZSHvVScsZodsphbeRMSOHdaNcQ1Tvo5pE9lLuvmM+2SNZWegHBBDj KAZrLW1CpSW+71d+pvwvfAKVjksvFLePA8c+arIwOf7boN9pPfreDUtF1wbqisU6aSuq j3hA== X-Forwarded-Encrypted: i=1; AFNElJ+LMnH8I8MZzQMhAnppVt2VI/B0SOl5sftfS02Rz7GTXwHIpFK6jCQcxNhl0B7UGS1rcWt8DA4p0Tefhn8=@vger.kernel.org X-Gm-Message-State: AOJu0Yw1+Fyz1w0ZFNAEHwkWmhERGTajWYdjBisdE/L04nP4s7K3l+hK iitSlfobxCWhAxqzBjBaq+4btMgCDXlvrV7bnc3h17vPWboJaSwRFjQE5kcuM/T4Oxw= X-Gm-Gg: Acq92OEKXAsD0wos1lQ41Oqfv8p0+Vyz8yxIG7PODNC2WyeZdWvkBNvpu9+2k9JyD48 AeHkHwFg66y5q6+UMKT1rb52wJZRcHpMzgzL/4BkqhX2PfxEhoJIvUcOzlK/4FfRBgWs4XG/C2o wRQ5bCyfbRKmFwpumUeOda068IV6t1ZBdRP5pJJEhjydZd1YoLzq4DSFuODmnH8m1lW45NC4Huw /haaBLLU1EjYyvVt22R/v06lldEtaCvZ5ypAfSYpdOXUzYYub5cYnKFtaaUevl0gLEPsDH8Z6Wk T7kNhtRywDXufrUBNFSXBTF7vb7ZQYL2CwdipYOInQy6I9ExcoxmulQ6QGyKxwQhciDgIueufvR Cu0xWCYIMkfWAYuEg4pf0q1MVZJXdgtjFyWAVqnHpKidLS01HuUaRcHKSrDHRGsJ05PJtYDEd3e 1SRJhfvEPnU/rhi9il9be9wrdVL5mHFOGw/PASrp18752bMs9EOA2mQtkfJWEWmuhjrAEmghmf7 HHSa3jXhERhtvFp X-Received: by 2002:a5d:5f82:0:b0:449:4079:4c39 with SMTP id ffacd0b85a97d-45c5a1a791bmr4966657f8f.29.1778675837045; Wed, 13 May 2026 05:37:17 -0700 (PDT) Received: from [127.0.1.1] ([94.4.195.193]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4548e4bb87bsm38899725f8f.2.2026.05.13.05.37.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 05:37:16 -0700 (PDT) From: Alexey Klimov Date: Wed, 13 May 2026 13:37:13 +0100 Subject: [PATCH v4 1/6] dt-bindings: soc: move,rename google,gs101-pmu-intr-gen and add exynos850 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: quoted-printable Message-Id: <20260513-exynos850-cpuhotplug-v4-1-54fec5f65362@linaro.org> References: <20260513-exynos850-cpuhotplug-v4-0-54fec5f65362@linaro.org> In-Reply-To: <20260513-exynos850-cpuhotplug-v4-0-54fec5f65362@linaro.org> To: Sam Protsenko , linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Peter Griffin , Conor Dooley , Alim Akhtar Cc: =?utf-8?q?Andr=C3=A9_Draszik?= , Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , Henrik Grimler , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.3 The PMU interrupt generation block introduced for the Google GS101 is actually a standard Samsung Exynos IP block found in older SoCs, such as the Exynos850, and is not exclusive to Google SoCs. To accurately reflect its origin, move the schema file to under soc/samsung/ directory and rename it. Concurrently, add the new "samsung,exynos850-pmu-intr-gen" compatible string to the bindings. Support for this block is required to enable power management features like CPU hotplug and idle states on Exynos850 platforms. Also, move this file under Exynos850 SoC in MAINTAINERS entry. Reviewed-by: Rob Herring (Arm) Signed-off-by: Alexey Klimov --- .../samsung,exynos850-pmu-intr-gen.yaml} | 8 ++++= +--- MAINTAINERS | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/soc/google/google,gs101-pmu-= intr-gen.yaml b/Documentation/devicetree/bindings/soc/samsung/samsung,exyno= s850-pmu-intr-gen.yaml similarity index 70% rename from Documentation/devicetree/bindings/soc/google/google,gs101-pmu-i= ntr-gen.yaml rename to Documentation/devicetree/bindings/soc/samsung/samsung,exynos850-p= mu-intr-gen.yaml index 2be022ca6a7d..df23467d0e0e 100644 --- a/Documentation/devicetree/bindings/soc/google/google,gs101-pmu-intr-ge= n.yaml +++ b/Documentation/devicetree/bindings/soc/samsung/samsung,exynos850-pmu-i= ntr-gen.yaml @@ -1,10 +1,10 @@ # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- -$id: http://devicetree.org/schemas/soc/google/google,gs101-pmu-intr-gen.ya= ml# +$id: http://devicetree.org/schemas/soc/samsung/samsung,exynos850-pmu-intr-= gen.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# =20 -title: Google Power Management Unit (PMU) Interrupt Generation +title: Samsung Power Management Unit (PMU) Interrupt Generation =20 description: | PMU interrupt generator for handshaking between PMU through interrupts. @@ -15,7 +15,9 @@ maintainers: properties: compatible: items: - - const: google,gs101-pmu-intr-gen + - enum: + - google,gs101-pmu-intr-gen + - samsung,exynos850-pmu-intr-gen - const: syscon =20 reg: diff --git a/MAINTAINERS b/MAINTAINERS index 86ca9297edab..498ca30a00c5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10952,7 +10952,6 @@ P: Documentation/process/maintainer-soc-clean-dts.r= st C: irc://irc.oftc.net/pixel6-kernel-dev F: Documentation/devicetree/bindings/clock/google,gs101-clock.yaml F: Documentation/devicetree/bindings/phy/google,lga-usb-phy.yaml -F: Documentation/devicetree/bindings/soc/google/google,gs101-pmu-intr-gen.= yaml F: Documentation/devicetree/bindings/usb/google,lga-dwc3.yaml F: arch/arm64/boot/dts/exynos/google/ F: drivers/clk/samsung/clk-gs101.c @@ -23652,6 +23651,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated = for non-subscribers) L: linux-samsung-soc@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/clock/samsung,exynos850-clock.yaml +F: Documentation/devicetree/bindings/soc/samsung/samsung,exynos850-pmu-int= r-gen.yaml F: arch/arm64/boot/dts/exynos/exynos850* F: drivers/clk/samsung/clk-exynos850.c F: include/dt-bindings/clock/exynos850.h --=20 2.51.0 From nobody Fri Jun 12 17:26:17 2026 Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E070D42316A for ; Wed, 13 May 2026 12:37:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778675841; cv=none; b=qeK/38cMKX5PwewyXmq2all5yA/vP12SqqIBFasHMqu8VaTnB9yBELh5zqEiPrCQuXl4rpLnOFJqZY+5A2UuWoa6XkzPZHk25Ex0yPXktq8fr/kRJ+cHx6PORw+9R0dmFk5/Ub3wc22XbpPkkKsN6zyzwv7vVchtzTNyb/arIM0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778675841; c=relaxed/simple; bh=DNx2DsjINuyPqrUb+Ejo7Pkkik27ZEapCFCzu2jeQ40=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=na+qTEw95ndkM7Ekl6Fs7niNKSA1+yfFfQF5gr0q+GZ36U/CpXicbMrJUaSNbT8T/LsFdOMiMX6MByItYwEq8NlxftUvvByA/9A0Yy9nTWO1IBeORBJ+93sujfSlYmswbI2EgRwbg0UVmY25eT8z0MlPB9GawneMrPOGGHsDPpc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=ELZ16azz; arc=none smtp.client-ip=209.85.221.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="ELZ16azz" Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-43d7645adbdso3674749f8f.1 for ; Wed, 13 May 2026 05:37:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778675838; x=1779280638; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=qzGCiTeCStiKkPzefQJeYM5JOvHm2x+evqxUb+M6NvM=; b=ELZ16azzJ9nVNNsB81aPCdCxV2WJbR/1XhHLsGqrxUT7tIj79S6xv7TH6FHI99NsCB 60WH5R59MJH67qoZ1UALc/mjQnlbg61ggnysCsR5P7EiExHJr+Qybbbi7MUjdiAK4DVb rZ/aPQFrkLXyVwwSjlRT88XimMtqxmxuQ7wbg9kjKxo7lgbeOgObGqsLMbHkO73O6ef1 bY/YPZCLAspY+t9CKYZPw3nqPZeX5wQACfH3QiWL4aGVI9I8ephp2e34FeQ4FDUus+3Y HtpkYEexF6cSz1TtswTg0Dgognlky9Ra5mxiuO4Kyvf56LNquKys3yNqZWF4S+lZOqc4 OHJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778675838; x=1779280638; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=qzGCiTeCStiKkPzefQJeYM5JOvHm2x+evqxUb+M6NvM=; b=Y5YmxPrpV6dhlBePTSBY//exFQ3Z4/ladQXtl/2E/mukhh+sNtfibXJ9a1JLA+CIt5 VbFXcPqJ7VQf6J2y+9X6+fnJAm++IubXq6Dcf1G7pvUSI0D40FsYgL26NbWPyoKBEoMQ pNf/3NucO6t+9TuySpd5wEprU9BAJK1QMoJGhL1MWklf33s9twn4gM6xS78399DB84e5 Ho8n2MmzxntPpfRDfT9+RYCzsbtHd4UNNaPXOUYLe9X2fOTDaqIz8qo4jzEft2lKryUz ZYGEkKaVbsIA0fRK/AXtWr4ZwSSGPLAbBbWJADUd9x3/i2JDTJk1Z7D7WuT4xGhRxMzI j9bQ== X-Forwarded-Encrypted: i=1; AFNElJ/oT8nzMhOhV6XVTFkjqFJ2p23cS85Gw0PlAHSVkfq/tOu7bpQ5dzVmWJAPmngEwlnX3PFCBIQDtxw2jTc=@vger.kernel.org X-Gm-Message-State: AOJu0YwAmaeZp6gMOTRmBuFuNAQvH4hDQOQ5cu/Sz8LDQKUeIn3rJdo6 U+bMtzNiug8YPl2z7Ub53c6AlDzd6qaf8/xiSrQOXx+pX6IBWpXbHi67pNaSz92ISpM= X-Gm-Gg: Acq92OG8zzF6yaj5ai37JkoOG3Gil2cq0xVhsTmZxwKRVn1UUcekodF/kiS/3GH9Mcn Vlg2IhA8JH5TOTU/1JzPVOvkX8pu6ZUFawwSFiEpLwJY3NKz56KUJDrEneRGpQ86nMD4brT21h7 BrYOe2EF2N0fvvz3pBYn57KNqBTPiZbnxINubyKpm/4iOAvaJkgBUcnUMxGUwYMRTTHqjRz08h0 wqv0l2NIWFHuX1uQQOSe2QKfTfNAAIu1bT9xJMNWE+lhd4Zf5JlpVt3MpMIMe/o1CHNwP260ZJq 51JsKCURqvDrMVZo9J8IuQNubVvTnaS+zf47XiOhcIUs9h8tkeJPzZCWStMc0laVeiaRUrAIE3P Twze//vXy40nzCfeL71gvScaGMLeDl/T+9b4iJHs2xOl5RZaUHXhUmbPYx5Tg/2+kau29pBbh7M dNGfJwnPw6Mmx1qXGf7hqXZLYfPmTOqyvfU9eyhL/k/jRykWr6pSL57k1W4woNsp9SkcvxmbJKb j2Pg6bKN+PZxvVe X-Received: by 2002:a05:6000:228a:b0:43d:70de:1c71 with SMTP id ffacd0b85a97d-45c58a70c86mr4450704f8f.11.1778675838428; Wed, 13 May 2026 05:37:18 -0700 (PDT) Received: from [127.0.1.1] ([94.4.195.193]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4548e4bb87bsm38899725f8f.2.2026.05.13.05.37.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 05:37:17 -0700 (PDT) From: Alexey Klimov Date: Wed, 13 May 2026 13:37:14 +0100 Subject: [PATCH v4 2/6] dt-bindings: soc: samsung: exynos-pmu: Require pmu-intr-gen-syscon for Exynos850 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: quoted-printable Message-Id: <20260513-exynos850-cpuhotplug-v4-2-54fec5f65362@linaro.org> References: <20260513-exynos850-cpuhotplug-v4-0-54fec5f65362@linaro.org> In-Reply-To: <20260513-exynos850-cpuhotplug-v4-0-54fec5f65362@linaro.org> To: Sam Protsenko , linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Peter Griffin , Conor Dooley , Alim Akhtar Cc: =?utf-8?q?Andr=C3=A9_Draszik?= , Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , Henrik Grimler , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.3 Update the Exynos PMU schema to mandate the 'google,pmu-intr-gen-syscon' property for the 'samsung,exynos850-pmu' compatible so the driver can obtain the necessary syscon regmap. The Exynos850 PMU relies on a separate system controller block to handle interrupts generation, similar to the hardware design of the GS101 SoC. To ensure the hardware is correctly described, this syscon phandle must be explicitly provided. Reviewed-by: Peter Griffin Acked-by: Rob Herring (Arm) Signed-off-by: Alexey Klimov --- Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml = b/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml index 76ce7e98c10f..6550c3736a3b 100644 --- a/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml +++ b/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml @@ -182,6 +182,7 @@ allOf: contains: enum: - google,gs101-pmu + - samsung,exynos850-pmu then: required: - google,pmu-intr-gen-syscon --=20 2.51.0 From nobody Fri Jun 12 17:26:17 2026 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7A7EE426D2D for ; Wed, 13 May 2026 12:37:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778675843; cv=none; b=cBnV1DpOKVs9M3jrqgAb8oEMW60rw9VhAvmbp0uaKvzy84PwkGPNhNoO61H2mQmbg66Knj6qMkyWXiQgnG2AwA1ODoENGnVlo66bzzeixGxlTedj/EH8GYyAFGN6vqsz3DlV3GdACRmfWjpGhfroUKeBa+XfudWRE9vI4TUjuF0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778675843; c=relaxed/simple; bh=y4Kk8JvUeUySRRvF52mUKuNQOMh+XpHbnjbUxWdgK9I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QJ5bhVaphGoy0N6OlqBbPGNQIbwTNCFXgtvrOE/0EbD75882PePQCoRtaT1ERxZkCuF1opbB4/5dTVzCcSRMI/06idvmQ4c8fgS8igngzJaLXMKspcnlv6AIjogxmyu8PYCyJ/9o9KyqSz4VdF3YiaCjjPXB5wKraoQPYfZ7i1w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=ib7WSzPs; arc=none smtp.client-ip=209.85.221.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="ib7WSzPs" Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-44dd5cb0f81so4970203f8f.0 for ; Wed, 13 May 2026 05:37:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778675840; x=1779280640; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ORf0xNsuYSx5Ar7WuCn/GYDzLydMHqr7jScLvDAqw9o=; b=ib7WSzPsZSh9y5vVu08T89D4NfOMKGp9G2YZTUcu2eyxB9kid6lb8jLPEY9CyNuBpY sAWoA7S8fJbLp4xTpflWN6+1mViU44c9VUQrMvfGhGnKtUwUcMu4Yq3KSG+pvui064Y6 CMmccTBYyumoxXuD4q+YmZ/oK/pDlPlO6sGNsxZRr2RnZRJpkv2VE5nPrgt7Z9yQh6Ed S+zs8//o6bKb6RTkzhZoIpVL7Mg0ImEkmWg7UqisHER8zRKsbuzGy3OVVduE5SeQGdkU Tir+s1TVWGYpixHwk1awI+x4PzTN9YtfHc0U7PsXR6vS9qrYzxUignxydpO9wiBc9X/J adew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778675840; x=1779280640; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=ORf0xNsuYSx5Ar7WuCn/GYDzLydMHqr7jScLvDAqw9o=; b=ldS5T/md3TzYigJr0+vDDA3WWfOUqenWXX4G/n6KUaXhCWfIZ/lRoV441BOe3nAyM2 nyOr0dmAIFRaIkBHc8JPrP3mk8x+JQ93lM15hDIvpenY6e4wCYiAYRdIny3Kg2MKFqXZ tC8C9yn9vgpeAlRC83CwPy6VWTZTvFQpEu8/rp00hIWF9Ks1b20peuV0Vmy7KI7TDmVQ MT2xjsSd2O0j6xBYD9fLyrHaSsDem82OuXUJtxd9wHuvv7xsWEqozcZ7G+/9EKI2ZxoB OqevNP8D7qo+u++txUin+e7TH3do3+8gkZwD8S+IIlXL7GCz6B+VKTj5noQGXEfu5TyS ziUA== X-Forwarded-Encrypted: i=1; AFNElJ9ddDKD2fbHf0oazvnoPMdpjtX+Fr/LInInu3M2VDdfaiJu1Fd71IPiCj2qBicdCYeW78006oAImcGYSQ8=@vger.kernel.org X-Gm-Message-State: AOJu0YzlyCE/KFrqV6Wsv+iti3F6w/CuY/4hdMxUJI0d8nVwvaV3X+Nu Z9z7RApyEZwgSOyT7GBVU/vVCUMik12yoG3+5ckYHoJOueStUGXv8Vmxe3vOs97wzOM= X-Gm-Gg: Acq92OG5PT2ZwfeC1j47koEg6mHNwiPoycQCscjwdD9OYEm/XJBWnu22DLH9p0kHlRd fvLb4xBDs0AWDAIVsR7m5lzcaN7BIea9jYMC+GyoeJC9jxKmD1XSg14oXU11fvWHW0QGLQ2vWO8 C40TWyQv2WUagX3CCFg/RqHUOocrQmCniPqyW7YicGmI8OfRVcbVyfiJVWe415a79EPcBMzKB2k q2vjof4U9p+kwmb9yvc82DEYO9RW3g3Ygf1ZseDgIoxnw92ZhV15/MyjXvTCe8ZK7IaYC87ANOU MMnTD+MW0SxoiGrhoqM91Sfw+Iuf564Adutaew02cnDY0XoxhIksMCmvExxkWu6SnhZ6KlqT0iu ZRF1X8tKfsc6EeLtM+1ZIjvexu2vnln330+Qz9uskXnfcczf0WHVbA/cE2RrGANYFz6zCAbqeHi cVJs0pb6AEfeuIpXdJAF6cqsHyFWTALdqjrp3i8G8v/O6cvB1TuTCdh4lw6AehQCYUXL7sKOqGv Nlotuxtx/JvPFa4 X-Received: by 2002:a5d:5887:0:b0:455:51cf:9f92 with SMTP id ffacd0b85a97d-45c46e02119mr5634588f8f.18.1778675839768; Wed, 13 May 2026 05:37:19 -0700 (PDT) Received: from [127.0.1.1] ([94.4.195.193]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4548e4bb87bsm38899725f8f.2.2026.05.13.05.37.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 05:37:19 -0700 (PDT) From: Alexey Klimov Date: Wed, 13 May 2026 13:37:15 +0100 Subject: [PATCH v4 3/6] soc: samsung: exynos-pmu: generalise gs101-specific cpu{idle,hotplug} for Exynos SoCs 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: quoted-printable Message-Id: <20260513-exynos850-cpuhotplug-v4-3-54fec5f65362@linaro.org> References: <20260513-exynos850-cpuhotplug-v4-0-54fec5f65362@linaro.org> In-Reply-To: <20260513-exynos850-cpuhotplug-v4-0-54fec5f65362@linaro.org> To: Sam Protsenko , linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Peter Griffin , Conor Dooley , Alim Akhtar Cc: =?utf-8?q?Andr=C3=A9_Draszik?= , Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , Henrik Grimler , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.3 The cpuhotplug and cpuidle support for GS101-based SoCs which utilizes GS101 PMU interrupts generation block can be generalised to be (re)used for other Exynos-based SoCs. Also, the GS101 PMU interrupts generation block is not exclusive to Google GS101 SoCs and should be made more Exynos-generic. Specifically, apply the following changes: - rename gs101-specific calls, structs, names to be exynos-prefixed; - move exynos_pmu_context and CPU_INFORM_* defines into exynos-pmu.h; - introduce cpu_pmu_{offline,online} callbacks in driver-specific exynos_pmu_data which can be used to hold PMU and PMU intr gen update routines for different platforms and update cpuidle and cpuhotplug support to use them; - add checks for the presense of cpu_pmu_{offline,online} callbacks; - move and rename gs101-specific cpu{offline,online} PMU updates routines into gs101-pmu.c file, also removing underscore prefix; - update gs101_pmu_data to use newly introduced callbacks; - rename PMU interrupts generation GS101_INTR_* regs to EXYNOS_INTR_*. This allows other platforms to add cpuhotplug and cpuidle support in a similar manner, using their own platform-specific PMU and PMU intr gen update routines. Reviewed-by: Peter Griffin Tested-by: Peter Griffin Signed-off-by: Alexey Klimov --- drivers/soc/samsung/exynos-pmu.c | 118 ++++++------------------= ---- drivers/soc/samsung/exynos-pmu.h | 31 ++++++++ drivers/soc/samsung/gs101-pmu.c | 57 ++++++++++++++ include/linux/soc/samsung/exynos-regs-pmu.h | 10 +-- 4 files changed, 115 insertions(+), 101 deletions(-) diff --git a/drivers/soc/samsung/exynos-pmu.c b/drivers/soc/samsung/exynos-= pmu.c index d58376c38179..660416c0db43 100644 --- a/drivers/soc/samsung/exynos-pmu.c +++ b/drivers/soc/samsung/exynos-pmu.c @@ -24,22 +24,6 @@ =20 #include "exynos-pmu.h" =20 -struct exynos_pmu_context { - struct device *dev; - const struct exynos_pmu_data *pmu_data; - struct regmap *pmureg; - struct regmap *pmuintrgen; - /* - * Serialization lock for CPU hot plug and cpuidle ACPM hint - * programming. Also protects in_cpuhp, sys_insuspend & sys_inreboot - * flags. - */ - raw_spinlock_t cpupm_lock; - unsigned long *in_cpuhp; - bool sys_insuspend; - bool sys_inreboot; -}; - void __iomem *pmu_base_addr; static struct exynos_pmu_context *pmu_context; /* forward declaration */ @@ -219,44 +203,8 @@ struct regmap *exynos_get_pmu_regmap_by_phandle(struct= device_node *np, } EXPORT_SYMBOL_GPL(exynos_get_pmu_regmap_by_phandle); =20 -/* - * CPU_INFORM register "hint" values are required to be programmed in addi= tion to - * the standard PSCI calls to have functional CPU hotplug and CPU idle sta= tes. - * This is required to workaround limitations in the el3mon/ACPM firmware. - */ -#define CPU_INFORM_CLEAR 0 -#define CPU_INFORM_C2 1 - -/* - * __gs101_cpu_pmu_ prefix functions are common code shared by CPU PM noti= fiers - * (CPUIdle) and CPU hotplug callbacks. Functions should be called with IR= Qs - * disabled and cpupm_lock held. - */ -static int __gs101_cpu_pmu_online(unsigned int cpu) - __must_hold(&pmu_context->cpupm_lock) -{ - unsigned int cpuhint =3D smp_processor_id(); - u32 reg, mask; - - /* clear cpu inform hint */ - regmap_write(pmu_context->pmureg, GS101_CPU_INFORM(cpuhint), - CPU_INFORM_CLEAR); - - mask =3D BIT(cpu); - - regmap_update_bits(pmu_context->pmuintrgen, GS101_GRP2_INTR_BID_ENABLE, - mask, (0 << cpu)); - - regmap_read(pmu_context->pmuintrgen, GS101_GRP2_INTR_BID_UPEND, ®); - - regmap_write(pmu_context->pmuintrgen, GS101_GRP2_INTR_BID_CLEAR, - reg & mask); - - return 0; -} - /* Called from CPU PM notifier (CPUIdle code path) with IRQs disabled */ -static int gs101_cpu_pmu_online(void) +static int exynos_cpu_pmu_online(void) { int cpu; =20 @@ -268,20 +216,20 @@ static int gs101_cpu_pmu_online(void) } =20 cpu =3D smp_processor_id(); - __gs101_cpu_pmu_online(cpu); + pmu_context->pmu_data->cpu_pmu_online(pmu_context, cpu); raw_spin_unlock(&pmu_context->cpupm_lock); =20 return NOTIFY_OK; } =20 /* Called from CPU hot plug callback with IRQs enabled */ -static int gs101_cpuhp_pmu_online(unsigned int cpu) +static int exynos_cpuhp_pmu_online(unsigned int cpu) { unsigned long flags; =20 raw_spin_lock_irqsave(&pmu_context->cpupm_lock, flags); =20 - __gs101_cpu_pmu_online(cpu); + pmu_context->pmu_data->cpu_pmu_online(pmu_context, cpu); /* * Mark this CPU as having finished the hotplug. * This means this CPU can now enter C2 idle state. @@ -292,35 +240,8 @@ static int gs101_cpuhp_pmu_online(unsigned int cpu) return 0; } =20 -/* Common function shared by both CPU hot plug and CPUIdle */ -static int __gs101_cpu_pmu_offline(unsigned int cpu) - __must_hold(&pmu_context->cpupm_lock) -{ - unsigned int cpuhint =3D smp_processor_id(); - u32 reg, mask; - - /* set cpu inform hint */ - regmap_write(pmu_context->pmureg, GS101_CPU_INFORM(cpuhint), - CPU_INFORM_C2); - - mask =3D BIT(cpu); - regmap_update_bits(pmu_context->pmuintrgen, GS101_GRP2_INTR_BID_ENABLE, - mask, BIT(cpu)); - - regmap_read(pmu_context->pmuintrgen, GS101_GRP1_INTR_BID_UPEND, ®); - regmap_write(pmu_context->pmuintrgen, GS101_GRP1_INTR_BID_CLEAR, - reg & mask); - - mask =3D (BIT(cpu + 8)); - regmap_read(pmu_context->pmuintrgen, GS101_GRP1_INTR_BID_UPEND, ®); - regmap_write(pmu_context->pmuintrgen, GS101_GRP1_INTR_BID_CLEAR, - reg & mask); - - return 0; -} - /* Called from CPU PM notifier (CPUIdle code path) with IRQs disabled */ -static int gs101_cpu_pmu_offline(void) +static int exynos_cpu_pmu_offline(void) { int cpu; =20 @@ -338,14 +259,14 @@ static int gs101_cpu_pmu_offline(void) return NOTIFY_OK; } =20 - __gs101_cpu_pmu_offline(cpu); + pmu_context->pmu_data->cpu_pmu_offline(pmu_context, cpu); raw_spin_unlock(&pmu_context->cpupm_lock); =20 return NOTIFY_OK; } =20 /* Called from CPU hot plug callback with IRQs enabled */ -static int gs101_cpuhp_pmu_offline(unsigned int cpu) +static int exynos_cpuhp_pmu_offline(unsigned int cpu) { unsigned long flags; =20 @@ -355,29 +276,29 @@ static int gs101_cpuhp_pmu_offline(unsigned int cpu) * ACPM the CPU entering hotplug should not enter C2 idle state. */ set_bit(cpu, pmu_context->in_cpuhp); - __gs101_cpu_pmu_offline(cpu); + pmu_context->pmu_data->cpu_pmu_offline(pmu_context, cpu); =20 raw_spin_unlock_irqrestore(&pmu_context->cpupm_lock, flags); =20 return 0; } =20 -static int gs101_cpu_pm_notify_callback(struct notifier_block *self, +static int exynos_cpu_pm_notify_callback(struct notifier_block *self, unsigned long action, void *v) { switch (action) { case CPU_PM_ENTER: - return gs101_cpu_pmu_offline(); + return exynos_cpu_pmu_offline(); =20 case CPU_PM_EXIT: - return gs101_cpu_pmu_online(); + return exynos_cpu_pmu_online(); } =20 return NOTIFY_OK; } =20 -static struct notifier_block gs101_cpu_pm_notifier =3D { - .notifier_call =3D gs101_cpu_pm_notify_callback, +static struct notifier_block exynos_cpu_pm_notifier =3D { + .notifier_call =3D exynos_cpu_pm_notify_callback, /* * We want to be called first, as the ACPM hint and handshake is what * puts the CPU into C2. @@ -425,6 +346,11 @@ static int setup_cpuhp_and_cpuidle(struct device *dev) return 0; } =20 + if (!pmu_context->pmu_data->cpu_pmu_offline || !pmu_context->pmu_data->cp= u_pmu_online) { + dev_err(dev, "PMU write/read sequence is not present for cpuhotplug and = cpuidle\n"); + return -ENODEV; + } + /* * To avoid lockdep issues (CPU PM notifiers use raw spinlocks) create * a mmio regmap for pmu-intr-gen that uses raw spinlocks instead of @@ -458,17 +384,17 @@ static int setup_cpuhp_and_cpuidle(struct device *dev) =20 /* set PMU to power on */ for_each_online_cpu(cpu) - gs101_cpuhp_pmu_online(cpu); + exynos_cpuhp_pmu_online(cpu); =20 /* register CPU hotplug callbacks */ cpuhp_setup_state(CPUHP_BP_PREPARE_DYN, "soc/exynos-pmu:prepare", - gs101_cpuhp_pmu_online, NULL); + exynos_cpuhp_pmu_online, NULL); =20 cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "soc/exynos-pmu:online", - NULL, gs101_cpuhp_pmu_offline); + NULL, exynos_cpuhp_pmu_offline); =20 /* register CPU PM notifiers for cpuidle */ - cpu_pm_register_notifier(&gs101_cpu_pm_notifier); + cpu_pm_register_notifier(&exynos_cpu_pm_notifier); register_reboot_notifier(&exynos_cpupm_reboot_nb); return 0; } diff --git a/drivers/soc/samsung/exynos-pmu.h b/drivers/soc/samsung/exynos-= pmu.h index fbe381e2a2e1..186299a049a8 100644 --- a/drivers/soc/samsung/exynos-pmu.h +++ b/drivers/soc/samsung/exynos-pmu.h @@ -13,6 +13,14 @@ =20 #define PMU_TABLE_END (-1U) =20 +/* + * CPU_INFORM register "hint" values are required to be programmed in addi= tion to + * the standard PSCI calls to have functional CPU hotplug and CPU idle sta= tes. + * This is required to workaround limitations in the el3mon/ACPM firmware. + */ +#define CPU_INFORM_CLEAR 0 +#define CPU_INFORM_C2 1 + struct regmap_access_table; =20 struct exynos_pmu_conf { @@ -20,6 +28,22 @@ struct exynos_pmu_conf { u8 val[NUM_SYS_POWERDOWN]; }; =20 +struct exynos_pmu_context { + struct device *dev; + const struct exynos_pmu_data *pmu_data; + struct regmap *pmureg; + struct regmap *pmuintrgen; + /* + * Serialization lock for CPU hot plug and cpuidle ACPM hint + * programming. Also protects in_cpuhp, sys_insuspend & sys_inreboot + * flags. + */ + raw_spinlock_t cpupm_lock; + unsigned long *in_cpuhp; + bool sys_insuspend; + bool sys_inreboot; +}; + /** * struct exynos_pmu_data - of_device_id (match) data * @@ -44,6 +68,10 @@ struct exynos_pmu_conf { * used (i.e. when @pmu_secure is @true). * @wr_table: A table of writable register ranges in case a custom regmap = is * used (i.e. when @pmu_secure is @true). + * @cpu_pmu_offline: Optional callback to be called before entering CPU of= fline + * or idle state. Only valid when pmu_cpuhp set to true. + * @cpu_pmu_online: Optional callback to be called after CPU onlined or af= ter + * exiting idle state. Only valid when pmu_cpuhp set to t= rue. */ struct exynos_pmu_data { const struct exynos_pmu_conf *pmu_config; @@ -57,6 +85,9 @@ struct exynos_pmu_data { =20 const struct regmap_access_table *rd_table; const struct regmap_access_table *wr_table; + + int (*cpu_pmu_offline)(struct exynos_pmu_context *pmu_context, unsigned i= nt cpu); + int (*cpu_pmu_online)(struct exynos_pmu_context *pmu_context, unsigned in= t cpu); }; =20 extern void __iomem *pmu_base_addr; diff --git a/drivers/soc/samsung/gs101-pmu.c b/drivers/soc/samsung/gs101-pm= u.c index 17dadc1b9c6e..5f2a59924144 100644 --- a/drivers/soc/samsung/gs101-pmu.c +++ b/drivers/soc/samsung/gs101-pmu.c @@ -322,11 +322,68 @@ static const struct regmap_access_table gs101_pmu_wr_= table =3D { .n_no_ranges =3D ARRAY_SIZE(gs101_pmu_ro_registers), }; =20 +/* + * gs101_cpu_pmu_ prefix functions are common code shared by CPU PM notifi= ers + * (CPUIdle) and CPU hotplug callbacks. Functions should be called with IR= Qs + * disabled and cpupm_lock held. + */ +static int gs101_cpu_pmu_online(struct exynos_pmu_context *pmu_context, un= signed int cpu) + __must_hold(&pmu_context->cpupm_lock) +{ + unsigned int cpuhint =3D smp_processor_id(); + u32 reg, mask; + + /* clear cpu inform hint */ + regmap_write(pmu_context->pmureg, GS101_CPU_INFORM(cpuhint), + CPU_INFORM_CLEAR); + + mask =3D BIT(cpu); + + regmap_update_bits(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_ENABLE, + mask, (0 << cpu)); + + regmap_read(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_UPEND, ®); + + regmap_write(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_CLEAR, + reg & mask); + + return 0; +} + +/* Common function shared by both CPU hot plug and CPUIdle */ +static int gs101_cpu_pmu_offline(struct exynos_pmu_context *pmu_context, u= nsigned int cpu) + __must_hold(&pmu_context->cpupm_lock) +{ + unsigned int cpuhint =3D smp_processor_id(); + u32 reg, mask; + + /* set cpu inform hint */ + regmap_write(pmu_context->pmureg, GS101_CPU_INFORM(cpuhint), + CPU_INFORM_C2); + + mask =3D BIT(cpu); + regmap_update_bits(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_ENABLE, + mask, BIT(cpu)); + + regmap_read(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_UPEND, ®); + regmap_write(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_CLEAR, + reg & mask); + + mask =3D (BIT(cpu + 8)); + regmap_read(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_UPEND, ®); + regmap_write(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_CLEAR, + reg & mask); + + return 0; +} + const struct exynos_pmu_data gs101_pmu_data =3D { .pmu_secure =3D true, .pmu_cpuhp =3D true, .rd_table =3D &gs101_pmu_rd_table, .wr_table =3D &gs101_pmu_wr_table, + .cpu_pmu_offline =3D gs101_cpu_pmu_offline, + .cpu_pmu_online =3D gs101_cpu_pmu_online, }; =20 /* diff --git a/include/linux/soc/samsung/exynos-regs-pmu.h b/include/linux/so= c/samsung/exynos-regs-pmu.h index db8a7ca81080..9c4d3da41dbf 100644 --- a/include/linux/soc/samsung/exynos-regs-pmu.h +++ b/include/linux/soc/samsung/exynos-regs-pmu.h @@ -1009,11 +1009,11 @@ #define GS101_PHY_CTRL_UFS 0x3ec8 =20 /* PMU INTR GEN */ -#define GS101_GRP1_INTR_BID_UPEND (0x0108) -#define GS101_GRP1_INTR_BID_CLEAR (0x010c) -#define GS101_GRP2_INTR_BID_ENABLE (0x0200) -#define GS101_GRP2_INTR_BID_UPEND (0x0208) -#define GS101_GRP2_INTR_BID_CLEAR (0x020c) +#define EXYNOS_GRP1_INTR_BID_UPEND (0x0108) +#define EXYNOS_GRP1_INTR_BID_CLEAR (0x010c) +#define EXYNOS_GRP2_INTR_BID_ENABLE (0x0200) +#define EXYNOS_GRP2_INTR_BID_UPEND (0x0208) +#define EXYNOS_GRP2_INTR_BID_CLEAR (0x020c) =20 /* exynosautov920 */ #define EXYNOSAUTOV920_PHY_CTRL_USB20 (0x0710) --=20 2.51.0 From nobody Fri Jun 12 17:26:17 2026 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 62C97427A13 for ; Wed, 13 May 2026 12:37:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778675844; cv=none; b=tXAo0q7PB8d/RqUmfgRKmwC80YXOGaoubDKd4Q/W3ysnJUYVBp8vCA60eH91XLiWeba3/MES9pnT/FMECNqtzYdGhHtAeDkOaTX6iTTot9e5oaNIG+3F4jBOTfepDFE305frxhC9NpPXUaFxNguXU0Bra7slEgRtDUcOlvMWEkg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778675844; c=relaxed/simple; bh=ZOkz/SuJo4lfLAshmePLEVcQ7hKfdcSq3ewd28ZNhPU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=kMLK9zOlp9HVsHIX9+1ukl3ekBjOqFbWRVJTxs1sehs4eNVU8xS4Y75k2PKRjx0jsHDSQRHMpKWWGMvqnR2isK+2GeXc5BvL3ccKPCd5n+ysKvJ0iCfHo/BxBTWFL9H11vv+9l290356h74yRjuew+YQlzO2RCAVdOMALhTdmeU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=n0aJPZJi; arc=none smtp.client-ip=209.85.221.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="n0aJPZJi" Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-43d75312379so5118275f8f.1 for ; Wed, 13 May 2026 05:37:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778675841; x=1779280641; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=5cGBjJfBJG5I6RESNuj+5kCZ2a1mSHz4+Qo3Ma26MXw=; b=n0aJPZJiscNpTjDtEghslz/HMNE+qfqguyRQYngdCyXdnNFdVx+BUyQRKYbQ3jJ8/g VgpyVUhQEZ5CJniy24KhmISr4uL8Y4WO63I3n82E6QMfeBb+lHryUqIfRNUEEE8j3wxF jfjdFkRotVYTjGHdPV+44T2icR3Z9k1FXzPi96OyANFhs/Q/oVntbIErk5gStuXqtg3W /H4JUaE4k8ItDCDvGCTm4CkkUT2QtJ4ex6QfnQiFPaUGIaEHH6kQ7/jb9q/Z0WMQcNST 2iKpbn94T/f/hfP0mIPt12tSLGoXtn4W4TnqqL51MvrZI+s4xFphnwVsh6400NBit0z2 gB0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778675841; x=1779280641; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=5cGBjJfBJG5I6RESNuj+5kCZ2a1mSHz4+Qo3Ma26MXw=; b=s95kokgNIPDsk1hAJHAqI3ajLqNu9jNbWtETjUqYzaKpAgpgD/g+Xb38BK1YyQ/wFj 0KT/fNc9/tJfeKQuxG8Pi5UnzEnrLzwW1BSQSkbrkvtaYiEyyyWPGmFdVyiuDq9zEthp 6qBNa3vvVK5x1DBpkIdPklp0eoQsZH8cfhn094k/44S9GM27vnPJq2GUFcqT98PQQ8iI Te3rrCvB5YLl7epyD2+c39rUqdrWvfRWv5tb7hiLXoBxgPRQzBa+1swxq+lrc1NIiyXm y0fiLXeSa6SX2xpn472xSTaAiDpVYSSBfre5ZnKds3qD8KUCjwq04CynnaUffCfh59wz nyVA== X-Forwarded-Encrypted: i=1; AFNElJ/CJ1kghHnvP/7oZ3BKF3mTHEIX7XKoLER3J/lYuvKOMNhhQ75bbx3LnlP/+jOshteCU6Mk83n5HcYT6hU=@vger.kernel.org X-Gm-Message-State: AOJu0YwGCDPV3xsAZaXLfmAtJPEQ9rbIKA5b1Q+6XTzhqIVN0IHMVN1o N/02nHBdCyX9jYmhALmLGD4t3RmnF+wGshPHl9icRwdzl/W/6Dd3gdPUGTyn4CtFvbcaVFVORra OYbdk2mQ= X-Gm-Gg: Acq92OEboSZkCsIqcTtObrNLaJB9tM2rWzuISYQTzcJJ4I4Gjfau+xH0VyAZchdi6rg bN50Hke8azJSignbyoUC9HTkPSNqnoBLR7bNfB1kmSY93S1rtRU2z423KshEJysJxRxVSITu8lE 6vLnNZJxzPQyX6JQP4vnIPcu1SkxBbpJD/naq+qj5MXB466im9m9xFV20fZMZ1keou5DE2jpg7k 488Km0edZSAYK2g77nQoq4V+0VV902E+Xf3CDpMeOYTP+TD5TnW+dW8iEHMTsAQVjckdScVM+nK 6xpFH4+jYDht/4uFzFh3nAEu4Uso3LiQ4eVspRw2sEIISsaa4rbr1ftKMHxgdUkctppOt5zQ0bY c88zq5MGYC/wMXM96o9mZngq+suNccDMBlzA70C0psb+D/MXBmjle5Vucp6IqEB5zEsOlJ2Cf1G oVhOfs31NHDlvSlxPzuPQWsuj27Yjq7QMZ+qynevsE8tNbOCdMk/caDSvMpJCpTvEgtV3qhX5MX vqASyBrK8D/vmO4xJGvKuR9hcA= X-Received: by 2002:a5d:6992:0:b0:44b:5a37:36c4 with SMTP id ffacd0b85a97d-45ac397cb7bmr9453319f8f.26.1778675840954; Wed, 13 May 2026 05:37:20 -0700 (PDT) Received: from [127.0.1.1] ([94.4.195.193]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4548e4bb87bsm38899725f8f.2.2026.05.13.05.37.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 05:37:20 -0700 (PDT) From: Alexey Klimov Date: Wed, 13 May 2026 13:37:16 +0100 Subject: [PATCH v4 4/6] soc: samsung: exynos-pmu: add Exynos850 CPU hotplug support 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: quoted-printable Message-Id: <20260513-exynos850-cpuhotplug-v4-4-54fec5f65362@linaro.org> References: <20260513-exynos850-cpuhotplug-v4-0-54fec5f65362@linaro.org> In-Reply-To: <20260513-exynos850-cpuhotplug-v4-0-54fec5f65362@linaro.org> To: Sam Protsenko , linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Peter Griffin , Conor Dooley , Alim Akhtar Cc: =?utf-8?q?Andr=C3=A9_Draszik?= , Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , Henrik Grimler , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.3 Add cpuhotplug support for Exynos850 platforms. This SoC requires its own specific set of writes/updates to PMU and PMU interrupts generation block in order to put a CPU or a group of CPUs into a different sleep states or prepare these entities for a CPU_OFF or wake-up out of idle state or after CPU online. Without these writes/updates the CPU(s) wake-up or online fails. While at this, also add description of Exynos850 PMU registers. Signed-off-by: Alexey Klimov --- drivers/soc/samsung/Makefile | 2 +- drivers/soc/samsung/exynos-pmu.c | 1 + drivers/soc/samsung/exynos-pmu.h | 1 + drivers/soc/samsung/exynos850-pmu.c | 78 +++++++++++++++++++++++++= ++++ include/linux/soc/samsung/exynos-regs-pmu.h | 5 ++ 5 files changed, 86 insertions(+), 1 deletion(-) diff --git a/drivers/soc/samsung/Makefile b/drivers/soc/samsung/Makefile index 636a762608c9..7f544e3c1fcc 100644 --- a/drivers/soc/samsung/Makefile +++ b/drivers/soc/samsung/Makefile @@ -7,7 +7,7 @@ exynos_chipid-y +=3D exynos-chipid.o exynos-asv.o obj-$(CONFIG_EXYNOS_USI) +=3D exynos-usi.o =20 obj-$(CONFIG_EXYNOS_PMU) +=3D exynos_pmu.o -exynos_pmu-y +=3D exynos-pmu.o gs101-pmu.o +exynos_pmu-y +=3D exynos-pmu.o gs101-pmu.o exynos850-pmu.o =20 obj-$(CONFIG_EXYNOS_PMU_ARM_DRIVERS) +=3D exynos3250-pmu.o exynos4-pmu.o \ exynos5250-pmu.o exynos5420-pmu.o diff --git a/drivers/soc/samsung/exynos-pmu.c b/drivers/soc/samsung/exynos-= pmu.c index 660416c0db43..9dddf4759ab5 100644 --- a/drivers/soc/samsung/exynos-pmu.c +++ b/drivers/soc/samsung/exynos-pmu.c @@ -133,6 +133,7 @@ static const struct of_device_id exynos_pmu_of_device_i= ds[] =3D { .compatible =3D "samsung,exynos7-pmu", }, { .compatible =3D "samsung,exynos850-pmu", + .data =3D &exynos850_pmu_data, }, { /*sentinel*/ }, }; diff --git a/drivers/soc/samsung/exynos-pmu.h b/drivers/soc/samsung/exynos-= pmu.h index 186299a049a8..4202d3cd94c9 100644 --- a/drivers/soc/samsung/exynos-pmu.h +++ b/drivers/soc/samsung/exynos-pmu.h @@ -102,6 +102,7 @@ extern const struct exynos_pmu_data exynos5250_pmu_data; extern const struct exynos_pmu_data exynos5420_pmu_data; #endif extern const struct exynos_pmu_data gs101_pmu_data; +extern const struct exynos_pmu_data exynos850_pmu_data; =20 extern void pmu_raw_writel(u32 val, u32 offset); extern u32 pmu_raw_readl(u32 offset); diff --git a/drivers/soc/samsung/exynos850-pmu.c b/drivers/soc/samsung/exyn= os850-pmu.c new file mode 100644 index 000000000000..40df15881923 --- /dev/null +++ b/drivers/soc/samsung/exynos850-pmu.c @@ -0,0 +1,78 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright 2026 Linaro Ltd. + * + * Exynos850 PMU support + */ + +#include +#include +#include +#include + +#include "exynos-pmu.h" + +static int exynos850_cpu_pmu_offline(struct exynos_pmu_context *pmu_contex= t, unsigned int cpu) + __must_hold(&pmu_context->cpupm_lock) +{ + u32 this_cluster =3D MPIDR_AFFINITY_LEVEL(read_cpuid_mpidr(), 2); + u32 cluster_cpu =3D MPIDR_AFFINITY_LEVEL(read_cpuid_mpidr(), 1); + unsigned int cpuhint =3D smp_processor_id(); + u32 reg, mask; + + /* set cpu inform hint */ + regmap_write(pmu_context->pmureg, EXYNOS850_CPU_INFORM(cpuhint), + CPU_INFORM_C2); + + mask =3D BIT(cpu); + regmap_update_bits(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_ENABLE, + mask, BIT(cpu)); + + regmap_read(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_UPEND, ®); + regmap_write(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_CLEAR, + reg & mask); + + mask =3D (BIT(cpu + 8)); + regmap_read(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_UPEND, ®); + regmap_write(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_CLEAR, + reg & mask); + + regmap_update_bits(pmu_context->pmureg, + EXYNOS850_CLUSTER_CPU_INT_EN(this_cluster, cluster_cpu), + 1 << 3, 1 << 3); + return 0; +} + +static int exynos850_cpu_pmu_online(struct exynos_pmu_context *pmu_context= , unsigned int cpu) + __must_hold(&pmu_context->cpupm_lock) +{ + u32 this_cluster =3D MPIDR_AFFINITY_LEVEL(read_cpuid_mpidr(), 2); + u32 cluster_cpu =3D MPIDR_AFFINITY_LEVEL(read_cpuid_mpidr(), 1); + unsigned int cpuhint =3D smp_processor_id(); + u32 reg, mask; + + /* clear cpu inform hint */ + regmap_write(pmu_context->pmureg, EXYNOS850_CPU_INFORM(cpuhint), + CPU_INFORM_CLEAR); + + mask =3D BIT(cpu); + + regmap_update_bits(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_ENABLE, + mask, (0 << cpu)); + + regmap_read(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_UPEND, ®); + + regmap_write(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_CLEAR, + reg & mask); + + regmap_update_bits(pmu_context->pmureg, + EXYNOS850_CLUSTER_CPU_INT_EN(this_cluster, cluster_cpu), + 1 << 3, 0 << 3); + return 0; +} + +const struct exynos_pmu_data exynos850_pmu_data =3D { + .pmu_cpuhp =3D true, + .cpu_pmu_offline =3D exynos850_cpu_pmu_offline, + .cpu_pmu_online =3D exynos850_cpu_pmu_online, +}; diff --git a/include/linux/soc/samsung/exynos-regs-pmu.h b/include/linux/so= c/samsung/exynos-regs-pmu.h index 9c4d3da41dbf..93c4d724c8ea 100644 --- a/include/linux/soc/samsung/exynos-regs-pmu.h +++ b/include/linux/soc/samsung/exynos-regs-pmu.h @@ -1015,6 +1015,11 @@ #define EXYNOS_GRP2_INTR_BID_UPEND (0x0208) #define EXYNOS_GRP2_INTR_BID_CLEAR (0x020c) =20 +/* Exynos850 PMU Alive */ +#define EXYNOS850_CPU_INFORM(cpu) (0x0860 + ((cpu) & 7) * 4) +#define EXYNOS850_CLUSTER_CPU_OFFSET(cl, cpu) (0x1000 + ((cl * 0x400) + ((= cpu) * 0x80))) +#define EXYNOS850_CLUSTER_CPU_INT_EN(cl, cpu) (EXYNOS850_CLUSTER_CPU_OFFSE= T(cl, cpu) + 0x44) + /* exynosautov920 */ #define EXYNOSAUTOV920_PHY_CTRL_USB20 (0x0710) #define EXYNOSAUTOV920_PHY_CTRL_USB31 (0x0714) --=20 2.51.0 From nobody Fri Jun 12 17:26:17 2026 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C1B35413240 for ; Wed, 13 May 2026 12:37:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778675845; cv=none; b=o4LBmw/Omd2bgt+6UkrVlfBRrINQ8CuedXVMnwpi2Ls3PABqCjRpJrYsUrrATrmbtaHGvUVJKh0oXAoBkFKPdQKpTc0eeKETmMau1NUv9GEa86MmODrKQ7cvXBh4pigqVXQdiexYJuuWcP2Cv2mmBI9uzUz/kc6yg/lr0vp43oo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778675845; c=relaxed/simple; bh=2Hl09FruWGr6pjACeuq5DjMb5si4CPaD6fjJlZmzP28=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FGE4dlUGlP3ZzsWQ0uMojt9yJ2hSgh6GgW8srIqA9TarekPfQRcLN9VuKI7g7yJZqWoGrq65Ekr1LpngUZjsRJMD+3UUtY05w6jOAvibkIAeclWMtHm/xSnY+T4ONWWWWbyq9dLvjpyIodmkxNWeLs5pGJ8ycG0zc9lScs/0v30= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=sHCKKF+C; arc=none smtp.client-ip=209.85.221.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="sHCKKF+C" Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-44c4cc7c1cfso5530103f8f.0 for ; Wed, 13 May 2026 05:37:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778675842; x=1779280642; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=fYtiwDmtrVbl/hGmqfQch4eP6KggQ9xHSeI/NuJ3fwM=; b=sHCKKF+CnBeOZU4CM4myHpo3qOcyrTUnKID4fu9N8Fs9OosM0tLLyRZAmOrEr0Yurd +n2q4ZQ8Fw79aDTDymyZXM6ihIbVsINGOWw5vnSLipjPBlSxpZrfH0E5hhAVs0Au1c/2 NIhmMi5gR2974Ig+07p8yTflS87Xt6GEHGLSkDHVozJiFjPrrvaBOHHKXpViSXd3lfqF 6A/BUP2vAtQhjvnNesfpnTP1NVlS2Aj7BJbKEZzDxgpjYw61Lr3x9iaTkQku/yXinqoo C1n0DW51CalgKSA7TjgcHhemWl3m6+JsA5Ac94LeWxanlFK9V1DfbcT0ZTftYYd6rGdV +71w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778675842; x=1779280642; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=fYtiwDmtrVbl/hGmqfQch4eP6KggQ9xHSeI/NuJ3fwM=; b=tDK/MuY8ErZpCvGjcfrRPzlmUueoRSQxLo68ICCuGcy2sE+lA0vOZYv+2RyTtrBl4b ufNstxSlcWNNPUEBwsenU/mVjaOzvJ+CWNjC3SMBJJ17jgxMSAwJqqGOmwTcv6r3oU1u POw+vdbDap25BhGMvDAi211ztvHDiZa7xeMDKbkRUH88cqGmAC1Mj1Cz7H5UugIPx1F5 TM4np0jT/otjZJDNOOA6OWninobvqqlOV423/eyd9RwE2Ll1GXTNAQJpDL2sZ6HIDTXj gVETLRy/zJCoXwrcNqVe1UymELd3qAIWYymRuiTWsNqUwqQaWr7gjxcX9DB41CRet9XL AMLg== X-Forwarded-Encrypted: i=1; AFNElJ9B/qaz15Uhobn0/jeswhC1QyxmgkuLhGKpL01xm9Vj0jTdPICZTbuPVYMnhpVFCM+SEXbFHnDKzq9/5i4=@vger.kernel.org X-Gm-Message-State: AOJu0YxGFjhuZmW9MsX009PhcmdSPy8wzGq/NXnJz267peKL3vi0R1ix F1dC4F6/8lGSicz8IyKCDk3ieyIWnxc4YEe6Npdeb9HGZQq2nMOMNJ5uIxgX04qmcEw= X-Gm-Gg: Acq92OHJ2kdZ7f5pmApBYGdjzvNcm35N1ON8p+1ye7RXYVpELzlLVH7qTPNr6Yfrmz6 Jj9mMvcmf4D9LDLxfnjaaNUe4vhEyOzTK3w8RKPBlFtQOD3w15fWqiAxLWxnoqoJHALT6rf+0bi h4lxlhxE6JU2+lKIRIXAvLreO889+aomeh/ImiuVIAH6lVxWjAUyqxBuAsIy0IzPVZ8KJ/7s6Us YijuwdS2iihXhvLg1l6Xezz/qoicC8fITAWj5ABhZdEuU0HmUQe8DIrRSwKM8X8zZK1fdVeG5sN oqLnJHu5tROia9EXZelVtlbbuMwrSWAaaduwG6wedW4c901qpI4W2UQ/f44mtcxorO8P2xyNzRX WtWGnZqe83Aaq0+jCgh8CjTSy8QK7WGdJD6G9J9VHT+pPNv1p4nnt93zvOh1ZigPmo30Rn+19S5 GYrKZVXC61VJvFj+hi5fMLQ2PFbfj1iyqp/ITtJCMqW86rdRZ5WWC78ogyUhzV3XaCY1wo8O1oa L5pHDIQAWhOuvMh X-Received: by 2002:a5d:5f90:0:b0:43f:e94a:e773 with SMTP id ffacd0b85a97d-45c79f297e9mr4410874f8f.27.1778675842151; Wed, 13 May 2026 05:37:22 -0700 (PDT) Received: from [127.0.1.1] ([94.4.195.193]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4548e4bb87bsm38899725f8f.2.2026.05.13.05.37.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 05:37:21 -0700 (PDT) From: Alexey Klimov Date: Wed, 13 May 2026 13:37:17 +0100 Subject: [PATCH v4 5/6] MAINTAINERS: add Exynos850 PMU entry 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: quoted-printable Message-Id: <20260513-exynos850-cpuhotplug-v4-5-54fec5f65362@linaro.org> References: <20260513-exynos850-cpuhotplug-v4-0-54fec5f65362@linaro.org> In-Reply-To: <20260513-exynos850-cpuhotplug-v4-0-54fec5f65362@linaro.org> To: Sam Protsenko , linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Peter Griffin , Conor Dooley , Alim Akhtar Cc: =?utf-8?q?Andr=C3=A9_Draszik?= , Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , Henrik Grimler , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.3 Add Exynos850 PMU entry describing new file drivers/soc/samsung/exynos850-pmu.c. Add myself as M there since I contributed Exynos850 PMU support and intend to maintain that. Signed-off-by: Alexey Klimov --- MAINTAINERS | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 498ca30a00c5..60c25fed8ffa 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -23645,6 +23645,13 @@ F: arch/arm64/boot/dts/exynos/exynos2200* F: drivers/clk/samsung/clk-exynos2200.c F: include/dt-bindings/clock/samsung,exynos2200-cmu.h =20 +SAMSUNG EXYNOS850 PMU SUPPORT +M: Alexey Klimov +L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) +L: linux-samsung-soc@vger.kernel.org +S: Maintained +F: drivers/soc/samsung/exynos850-pmu.c + SAMSUNG EXYNOS850 SoC SUPPORT M: Sam Protsenko L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) --=20 2.51.0 From nobody Fri Jun 12 17:26:17 2026 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0DFDD428858 for ; Wed, 13 May 2026 12:37:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778675846; cv=none; b=V39y6ygha4/zvrj9+USVNngjah3l3zgXMXEp8fUttzRtWGJuP6SlnG7QyJZ0cbkH9vRS5zmxJkxLDeU/9h0OlXYIYHR+G2z92NBvO3Kz4dJ5lbcoST+CB8GmiBlxf4ndv3xFyYIQ+WvR9jxF+OO/zGniWFNW5yZ7dkljG3yZN9k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778675846; c=relaxed/simple; bh=o4lBBDo9eAjT/ZPpvEx+fz0ZaY5RNu9o+ne5xMIM/Xw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IunZa2Jm9W4GQsLpxkFvvMkw5RN26FsM/Mo9JPWpf9JynnblJZiTAOjviCK6BsWRcMAAlBjlzdDWjaGDijYVM5FvQdwVJ8b4Q9cFz+krdmKtJCQVRIE2RgnFfno111yiXZov7UcAhn3yQUWOmHFqAaOuPMfVXLJctGLjk29xwFk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=TL4Qkhcj; arc=none smtp.client-ip=209.85.221.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="TL4Qkhcj" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-4585a116a4aso2668873f8f.3 for ; Wed, 13 May 2026 05:37:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1778675843; x=1779280643; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=LO818/ID+4f5iFNHp7OoRCd/tE5378VXxX0IuTr0NL0=; b=TL4Qkhcj6viuZzD40MbFb+ZFpagp6gVjqZtvHLOYDKmguHnDbSgNNmSBjYtXhd28gf 6JH7/UNJHVcdiIvB/GrO4RAhr31dVdI7ZTkDohXElSp5KYAvTZuARSWGa/dmH3D7Dul2 EdXnC4Qd1bQZywsBEmcbQkAcGdWBBjYJs+39r3MEPnkruVtxi7nsOZ19D7BYl5kZaJHF FotCWjVdMKBKy6vDY7+DgMZqv7UxgHMJNKH1AN0SB2O31zHnUf7AdQSNcYIwU51YEvGG R/GLipBiAywLpwR1ZRtfOCbMaMRpTXPqW/BTIzw4/yofwJIwbm7J8YZ5qojwa7jzChRt nv7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778675843; x=1779280643; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=LO818/ID+4f5iFNHp7OoRCd/tE5378VXxX0IuTr0NL0=; b=XUb7Pp/YW7YYRlgBF5hEAmHaOg4aiQk3mRWT0Dcz7wIjLK7bs2pYhTGN7eXL3vPRMe CyL9u7mgJy4A4mZJwsoVGhhNJVQTKVJq185TPdKBL3bAyG8BE52vDP4uMRj/ELrLp1ej PDm8L3V/qB8ne3I0OW1t6OAV20Su0HRYQN7cfzIIHz69QJ0xNnkMWbroD58UBn0lXyv/ dxxi0E58LoTc5SFNvCj4s4JocV8rlCn7kbCD9t4oFHh9zXmN+RlTizEZO5+dGbo/laHz YCOwJdmd7H6N+YRCwiZKuA/ELrXtgof56cZayDTKZeipdT6BVZcxAnsaCOyUT8r7TQw8 Fs5A== X-Forwarded-Encrypted: i=1; AFNElJ+SsGaa68YgalmAkVOunkTwsQN51oe8Ydn+oIJqYaqwvBAXVu3c5RFDSIo5Ooo4mfDfxA8ZDjBe0pufoyE=@vger.kernel.org X-Gm-Message-State: AOJu0YwtRY9HSBT6Vl+aaoTCllGWiO+sD8ZRamjlfkeO0SnYDJdqCzvq FUJA+VM/IVweqaxHt3gI+9C7GqTy2QbfPrBva1ScFGmwZLlYOeLTIoOlmX13i5DMyws= X-Gm-Gg: Acq92OGmvpOA4FoATZLiQ3DSQsVcW3hM1aVNiOpuYQWf63qe/jHAfeEGnK8trJK///K v6pGn5GcChkicktSsur52M9lAwjvdwk9T7zxPZLVXh3UTC8Bl2JxhrdFSpU6s5sRI84leS4VK6N nWXm4AdKgAqcFUHz8qJzxCRE4fqTEpYwEJ4Iiap2rxM70whKHQdei+DlwqLDKlDQ0ZuerhvIuqW SSAdhk80u0HbW3tvjMQC4QSTvo7alrAznSNaeaF535fLF4w4opPRm4Ht5eChQEoonKeCqr/Q5KY o/sx7PXqRUpVEaECNnGt75sZps0p4BH0fzd0ky8+Obq7XdTOm/dA8A4fAN/E0Tdje9ynI67UVaw PDsoKjQA6hADy1E4GAt4XlwqYHZVnkfQfvvR0cT7N9hRR+c5Sktm4twk6u9u38c/KdICRYtbdaf 2oIk6y/2rLAUIVxiqMHHBU0HT/lby/DEoJf0kBc5vaHH0FIhyC2/MGlJCvNIvx0qM+nl/Gh6BBG ZkyVkLEniiTl/51kNkPNFmrfRc= X-Received: by 2002:a05:6000:1787:b0:45b:d891:56bb with SMTP id ffacd0b85a97d-45c7b769981mr4290870f8f.38.1778675843450; Wed, 13 May 2026 05:37:23 -0700 (PDT) Received: from [127.0.1.1] ([94.4.195.193]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4548e4bb87bsm38899725f8f.2.2026.05.13.05.37.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2026 05:37:22 -0700 (PDT) From: Alexey Klimov Date: Wed, 13 May 2026 13:37:18 +0100 Subject: [PATCH v4 6/6] arm64: dts: exynos850: add PMU interrupt generation node 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: quoted-printable Message-Id: <20260513-exynos850-cpuhotplug-v4-6-54fec5f65362@linaro.org> References: <20260513-exynos850-cpuhotplug-v4-0-54fec5f65362@linaro.org> In-Reply-To: <20260513-exynos850-cpuhotplug-v4-0-54fec5f65362@linaro.org> To: Sam Protsenko , linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Peter Griffin , Conor Dooley , Alim Akhtar Cc: =?utf-8?q?Andr=C3=A9_Draszik?= , Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , Henrik Grimler , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.3 Add pmu_intr_gen node for Exynos850. This hw block is required for different power management routines like CPU hotplug and different sleep and idle states. Also reference this node from main PMU node. Reviewed-by: Peter Griffin Signed-off-by: Alexey Klimov --- arch/arm64/boot/dts/exynos/exynos850.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm64/boot/dts/exynos/exynos850.dtsi b/arch/arm64/boot/dt= s/exynos/exynos850.dtsi index 3881f573ec08..04662b1c5458 100644 --- a/arch/arm64/boot/dts/exynos/exynos850.dtsi +++ b/arch/arm64/boot/dts/exynos/exynos850.dtsi @@ -214,6 +214,7 @@ gic: interrupt-controller@12a01000 { pmu_system_controller: system-controller@11860000 { compatible =3D "samsung,exynos850-pmu", "syscon"; reg =3D <0x11860000 0x10000>; + google,pmu-intr-gen-syscon =3D <&pmu_intr_gen>; =20 poweroff: syscon-poweroff { compatible =3D "syscon-poweroff"; @@ -231,6 +232,11 @@ reboot: syscon-reboot { }; }; =20 + pmu_intr_gen: syscon@11870000 { + compatible =3D "samsung,exynos850-pmu-intr-gen", "syscon"; + reg =3D <0x11870000 0x10000>; + }; + watchdog_cl0: watchdog@10050000 { compatible =3D "samsung,exynos850-wdt"; reg =3D <0x10050000 0x100>; --=20 2.51.0